{"templateId":"markdown","versions":[{"version":"v1.43","label":"v1.43 LTS","link":"/products/custody/accounts-and-assets/blockchains/canton","default":true,"active":true,"folderId":"c15a2701"},{"version":"v1.42","label":"v1.42 STS","link":"/products/custody/v1.42/accounts-and-assets/blockchains/canton","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.41","label":"v1.41 STS","link":"/products/custody/v1.41/accounts-and-assets/blockchains/canton","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/accounts-and-assets/blockchains/canton","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/accounts-and-assets/blockchains/canton","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/accounts-and-assets/blockchains/canton","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/accounts-and-assets/blockchains/canton","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Canton Network","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"canton-network","__idx":0},"children":["Canton Network"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Executive summary"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Ripple Custody"," custodies Canton Coin and CIP-56 tokens on the Canton Network, on a validator that you or your node provider operate."]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You hold and transfer Canton Coin (Amulet) and CIP-56 tokens issued through the Digital Asset (DA) Registry."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ripple Custody"," holds each account's signing key in your vault's HSM or KMS backend, and checks every transaction against its approved intent before it signs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You bring your own validator (BYOV). ","Ripple Custody"," connects to it and acts as the party manager for your accounts."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Transfer pre-approvals let your accounts receive assets without signing each incoming transfer, which makes Canton compatible with cold vaults and long approval flows."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Canton support is available from version 1.43, for on-premises deployments and, through the hybrid model, for SaaS."]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"success","name":"Why this matters"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Canton is the public Layer 1 network that many regulated institutions use for tokenization, settlement, and repo. With Canton support, you keep your Canton assets in the same custody platform, policy engine, and audit trail that you use for your other ledgers, instead of in a separate custodian."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["For architects and operators"]},": Canton works differently from other ledgers. Accounts are ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["parties"]}," hosted on a validator, balances are sets of ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Holdings"]},", and an account must complete a one-time setup before it can send or receive. Read ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/concepts"},"children":["Canton concepts"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/architecture-and-responsibilities"},"children":["Architecture and responsibilities"]}," before you plan your rollout."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-you-can-do","__idx":1},"children":["What you can do"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Capability"},"children":["Capability"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Custody Canton accounts"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create accounts whose Canton parties your validator hosts. ","Ripple Custody"," holds the party's signing key in your vault."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Hold Canton Coin and CIP-56 tokens"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Hold Canton Coin and any CIP-56 token that the DA Registry publishes. Each account can hold several instruments."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Receive without per-transfer signing"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Set up transfer pre-approvals once per account, so incoming transfers settle directly into the account."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Send transfers"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Send Canton Coin and CIP-56 tokens to any Canton party, subject to your ","Ripple Custody"," policies."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Manage two-step transfers"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Accept or reject an incoming transfer offer, or withdraw an outgoing offer that the receiver hasn't acted on."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["View balances and history"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["View real-time balances and indexed transaction history through the standard ","Ripple Custody"," API operations."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use DevNet, TestNet, and MainNet"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Register each Canton network as a separate ledger in the same ","Ripple Custody"," installation."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In this release, you manage Canton through the ","Ripple Custody"," API."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"whats-not-supported","__idx":2},"children":["What's not supported"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Canton-native applications. You can't sign arbitrary Daml commands or deploy contracts."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["CIP-56 Allocation and delivery versus payment (DvP) workflows."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Token registries other than the Validator API registry for Canton Coin and the DA Registry for other CIP-56 tokens."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A validator operated by Ripple. You provide the validator yourself or through a node provider."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"frequently-asked-questions","__idx":3},"children":["Frequently asked questions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Do you support CIP-56 tokens beyond Canton Coin?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Yes. ","Ripple Custody"," indexes and transfers Canton Coin and every CIP-56 token that the DA Registry publishes. You register each token as a ticker. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/connect-your-validator#register-canton-coin-and-cip-56-tokens"},"children":["Register Canton tokens"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Can we bring our own validator and create accounts on it?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Yes. BYOV is the only hosting model. You or your node provider operate the validator, and you create each ","Ripple Custody"," account's party on that validator with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CreateParty"]}," transaction order. Each Canton network that you register points to one validator. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/architecture-and-responsibilities"},"children":["Architecture and responsibilities"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["How do we activate an account on the validator?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You create the account, then submit three one-time setup orders: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CreateParty"]}," allocates the party on your validator, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CreateNativeTransferPreapproval"]}," enables Canton Coin receipts, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CreateTokenTransferPreapproval"]}," enables receipts of each CIP-56 token. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/set-up-accounts-api"},"children":["Set up Canton accounts with the API"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Do you support transfer offers, and can we accept or reject them?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Yes. When a sender transfers to an account that has no pre-approval for the asset, Canton creates a two-step transfer offer. You accept or reject it with an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Accept"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Reject"]}," order. As a sender, you can withdraw an offer that the receiver hasn't acted on. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/send-and-receive-api#accept-or-reject-an-incoming-transfer-offer"},"children":["Accept or reject an incoming transfer offer"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Do you support automatic acceptance of incoming transfers?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Yes, through transfer pre-approvals. After an account has a pre-approval for an asset, incoming transfers of that asset settle directly into the account, without a signature from you. Like incoming transfers on every other ledger, they then enter quarantine until your quarantine release policies release them. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/send-and-receive-api#receive-assets"},"children":["Receive assets"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Do transfers expire?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A two-step transfer offer expires at the deadline that the sender sets in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["executeBefore"]},". If the sender doesn't set a deadline, ","Ripple Custody"," applies 30 days. A transfer that settles directly through a pre-approval doesn't expire, because it completes as soon as the network commits it. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/send-and-receive-api#transfer-deadlines"},"children":["Transfer deadlines"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Is there a maximum number of Holdings (UTXOs) per account?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody"," doesn't limit how many Holdings an account holds. A single transfer can spend at most 100 Holdings. The network enforces this limit for Canton Coin, and ","Ripple Custody"," applies it to other CIP-56 tokens. Treat it as an upper bound, because the effective limit can be lower. For how the limit works, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/concepts#holdings"},"children":["Holdings"]},". To merge small Holdings, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/send-and-receive-api#manage-holdings"},"children":["Manage Holdings"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Who receives validator rewards?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Canton Network pays validator rewards to your validator's own service party, not to a ","Ripple Custody"," account. To move rewards into custody, transfer them from the validator party to a ","Ripple Custody"," account. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/concepts#validator-rewards"},"children":["Validator rewards"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get-started","__idx":4},"children":["Get started"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Task"},"children":["Task"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Page"},"children":["Page"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Learn the Canton concepts that affect custody"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/concepts"},"children":["Canton concepts"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Understand who operates what"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/architecture-and-responsibilities"},"children":["Architecture and responsibilities"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Connect your validator and register the network and tokens"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/connect-your-validator"},"children":["Connect your validator"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create an account, its party, and its pre-approvals"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/set-up-accounts-api"},"children":["Set up Canton accounts with the API"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Send, receive, and manage transfers and Holdings"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/send-and-receive-api"},"children":["Send and receive Canton assets with the API"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Look up payload fields, identifiers, and errors"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/reference"},"children":["Canton reference"]}]}]}]}]}]}]},"headings":[{"value":"Canton Network","id":"canton-network","depth":1},{"value":"What you can do","id":"what-you-can-do","depth":2},{"value":"What's not supported","id":"whats-not-supported","depth":2},{"value":"Frequently asked questions","id":"frequently-asked-questions","depth":2},{"value":"Get started","id":"get-started","depth":2}],"frontmatter":{"seo":{"title":"Canton Network"}},"lastModified":"2026-10-05T13:21:49.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/accounts-and-assets/blockchains/canton","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}