Integrating with the Canton Network¶
When integrating with the Canton Network, we recommend that wallet providers support the necessary features outlined below to optimal user experience. Additionally, there are optional features that can further enhance the integration and provide additional value to users.
Necessary Features¶
The following features are required for wallet providers to integrate with the Canton Network:
Support the CIP-0056 token standard to enable the holding and transferring of assets on the Canton Network. Documentation and guidance on how to implement this with the Wallet SDK is in the Token Standard section of this guide.
Provide support specifically for Canton Coin and USDCx. The Canton Coin package of Amulet is preinstalled with all validators and USDCx is issued with the Digital Asset Registry and that dars for that application can be found in the DAR Package Versions of the Utilities documentation.
Memo tag support to allow deposits to be sent to exchanges
UTXO management to reduce the number of UTXOs
Optional Features¶
While optional for wallet providers, the following features are strongly recommended to ensure full support for the Canton Network and maximize user adoption:
Canton Coin pre-approvals. Documentation on how to implement pre-approvals with the Wallet SDK are in the 2-step transfer vs 1-step transfer section of this guide.
dApp support by conforming to CIP-0103, the standard for wallet and dApp integration.
The requirement to hold and transfer USDCx is included in the Necessary Features section above, however there are additional levels of support for USDCx for wallet providers to support such as supporting xReserves deposits and withdrawals and integrating the xReserve UI into the wallet directly. The options and instructions are laid out in the USDCx Support for Wallets section of this guide.
How to install the Wallet SDK¶
The Wallet SDK is available as a package on the NPM registry. You can install it using your preferred package manager.
npm install @canton-network/wallet-sdk
yarn add @canton-network/wallet-sdk
pnpm add @canton-network/wallet-sdk
Alternatively, to do dApp development only, the dApp SDK can be used which has a smaller bundle size and is optimized for browser usage. The dApp SDK can be installed with:
npm install @canton-network/dapp-sdk
yarn add @canton-network/dapp-sdk
pnpm add @canton-network/dapp-sdk
Both SDKs use the same underlying core packages and where only partial code is needed (like for transaction visualization or hash verification) those packages can be used independently.
Hosting a Validator¶
As stated in the Implications for Wallet Providers section here, it’s important for wallet providers to have a validator to host their users’ parties. It’s also strongly advised to operate a node in all three network environments so that you can test and verify your applications and integration as the Canton Network evolves.
Links to the node deployment docs are below depending on the deployment choice and environment. The guidance differs very little based on the environment - different URLs and arguments etc.:
The Wallet integration guide is tailored to work with a LocalNet setup (https://docs.dev.sync.global/app_dev/testing/localnet.html) to make testing and verification easy.
Connecting to a Synchronizer¶
For onboarding a validator with the global synchronizer it is recommended to read the Splice documentation here: https://docs.dev.sync.global/validator_operator/validator_onboarding.html
Supporting Tokens and Applications¶
To integrate and support tokens, it is recommended to use the Splice documentation here: https://docs.sync.global/validator_operator/validator_onboarding.html
If you are interested in building your own application, a good first place would be to utilize the CN quickstart: https://github.com/digital-asset/cn-quickstart