Branded types prevent accidentally passing a contract id where a party id was expected at compile time. At runtime they remain plain strings; validation is non-empty for guards/converters unless you opt into unsafe*.
Core
ContractId,PartyId,OcfId,SecurityId- Guards:
isContractId,isPartyId,isOcfId,isSecurityId - Validated:**
toContractId,toPartyId,toOcfId,toSecurityId— throwErrorif empty - Unsafe casts:**
unsafeToContractId,unsafeToPartyId,unsafeToOcfId,unsafeToSecurityId
Example
import { toContractId, toPartyId } from '@open-captable-protocol/canton';
const cid = toContractId(RAW_CONTRACT_ID);
const issuer = toPartyId(RAW_PARTY_ID);
See also
- common types —
GetByContractIdParamsuses rawstringtoday; brands interoperate as strings.