Overview¶
This guide aims to help you integrate your exchange with Canton for the purpose of trading Canton Coin (CC) and Canton Network (CN) tokens.
What to develop in what order?¶
This material is comprehensive guidance for integrating with the Canton Network. You may need to review it several times to become familiar with Canton’s UTXO-based chain, smart contract language, and its privacy model.
The guide is intentionally structured such that you can use a learning-by-doing approach that delivers your integration in a series of incremental milestones:
Canton Coin (CC) with 1-step withdrawal only.
Support for all CN Tokens, not just CC.
Earning additional application rewards for all CN tokens.
The following dependency diagrams shows the work items for each milestone.

CC with 1-step withdrawal only: this milestone allows you to support deposits and withdrawals of CC. It includes earning app rewards for all CC deposits. The workflows build on the Canton Network Token Standard which is the foundation for supporting all CN tokens in the next milestone. We consider it an intermediate milestone, as it does not support:
all CN tokens
CC users that prefer to control the receipt of transfers, and thus do not want to setup preapprovals
earning app rewards for all deposits and withdrawals
See the following sections for details on the work items it depends on.
MVP for all CN Tokens: this milestone allows you to support deposits and withdrawals of all CN tokens. It comes with the limitation that application rewards are only earned on deposits of CC, but not on deposits of other CN tokens. It depends on the MVP for CC and the following additional work items:
Multi-Step Withdrawal Workflow, which resolves the limitation that users must setup a CC transfer preapproval to receive withdrawals.
Earn app rewards for all CN tokens: is a milestone that improves the profitability of the integration by implementing changes so the exchange earns application rewards on both withdrawals and deposits of all CN tokens. Sharing application rewards is an optional steps.
Integration support code¶
Use the following support code to simplify your integration development for:
JavaScript/TypeScript: use the functions from the Wallet SDK to simplify building your integration.
Java/JVM: use the sample code from the https://github.com/digital-asset/ex-java-json-api-bindings repository as a starting point.
Other languages: use the code from the Wallet SDK or the Java sample code as a blueprint.