Cross-Chain Token (CCT) — Canton

Connect a Canton instrument to CCIP by deploying a token pool, registering on the Token Admin Registry (TAR), and enabling a cross-chain lane.

Choose your guide

GuideWhen to use
Registry Issuer GuideIssue a new token via Digital Asset Registry and connect CCIP end to end
BurnMint Token Pool DeploymentExisting CIP-56 instrument with burn/mint authority
LockRelease Token Pool DeploymentFixed-supply instrument with transfer pre-approvals

Starter kit (cct:* scripts)

The ccip-starter-kit-canton automates pool deployment and TAR registration on Canton testnet. Each BurnMint and LockRelease guide includes Starter kit and Manual paths for those steps.

Setup

  1. Clone and install:

    Terminal
    git clone https://github.com/smartcontractkit/ccip-starter-kit-canton.git
    cd ccip-starter-kit-canton
    npm install
    
  2. Configure environment — follow Canton as Source prerequisites for .env, canton-config.json, and ledger auth.

  3. In config/canton-config.json, set party (pool owner/admin) and transferInstructionUrl (your validator API) — see Canton as Source prerequisites.

Scripts

ScriptCommandWhat it does
Deploy BurnMint poolnpm run cct:deploy-burn-mintCreates a BurnMintTokenPool on-ledger
Deploy LockRelease poolnpm run cct:deploy-lock-releaseCreates a LockReleaseTokenPool on-ledger
Register on TARnpm run cct:set-tokenRuns ProposeAdministratorAcceptAdminRoleSetPool on the Token Admin Registry

Typical flow (BurnMint)

Terminal
# 1. Deploy pool
npm run cct:deploy-burn-mint -- \
  --instanceId acme-eur-bm-pool \
  --instrument 'yourParty::1220…::token-id'

# 2. Register on TAR (poolOwner defaults to party in canton-config.json)
npm run cct:set-token -- \
  --instrument 'yourParty::1220…::token-id' \
  --poolInstanceId acme-eur-bm-pool

# 3. Enable lane — manual Ledger API (see guide Step 3)

On-ledger checklist (all guides)

Every CCT deployment ends with the same verification path:

  1. Pool deployed at {instanceId}@{poolOwner} with the correct InstrumentId.
  2. TAR maps the instrument to your pool; your party is token admin.
  3. Lane enabled — three rate limiters plus ApplyChainUpdates on the pool.
  4. Explicit Disclosure Service running for your pool operator.
  5. Test transfers — see CCIP on Canton — Overview and CCIP Explorer.

Cross-chain send and receive are validated by Chainlink operations once your token is registered and lanes are configured.

Prerequisites (all CCT guides)

What's next

Get the latest Chainlink content straight to your inbox.