# CCIP Tutorials (Canton)
Source: https://docs.chain.link/ccip/tutorials/canton
Last Updated: 2026-07-06

> For the complete documentation index, see [llms.txt](/llms.txt).

These tutorials cover the primary integration paths for CCIP on Canton.

> **NOTE: Testnet only**
>
> These tutorials demonstrate CCIP flows on **Canton testnet** and **Ethereum Sepolia** only. The [`ccip-starter-kit-canton`](https://github.com/smartcontractkit/ccip-starter-kit-canton) ships with addresses, chain selectors, and deployment fields pre-configured for the Canton CCIP testnet lane.

## Cross-Chain Token (CCT)

Connect a Canton instrument to CCIP so it can move across supported chains. Pool deployment and TAR registration use [`ccip-starter-kit-canton`](https://github.com/smartcontractkit/ccip-starter-kit-canton) `cct:*` scripts on testnet — see the [CCT overview](/ccip/tutorials/canton/cross-chain-tokens#starter-kit-cct-scripts).

| Guide                                                                                                  | When to use                                                              |
| :----------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------- |
| [Registry Issuer Guide](/ccip/tutorials/canton/cross-chain-tokens/registry-issuer-guide)               | Issue a new token via Digital Asset Registry and connect CCIP end to end |
| [BurnMint Token Pool Deployment](/ccip/tutorials/canton/cross-chain-tokens/burn-mint-token-pool)       | Existing CIP-56 instrument with burn/mint authority                      |
| [LockRelease Token Pool Deployment](/ccip/tutorials/canton/cross-chain-tokens/lock-release-token-pool) | Fixed-supply instrument with transfer pre-approvals                      |

## Application Integration

Organized by direction. Tutorials use the [`ccip-starter-kit-canton`](https://github.com/smartcontractkit/ccip-starter-kit-canton).

|                                  | [Canton as Source](/ccip/tutorials/canton/source) (`canton2any`)     | [Canton as Destination](/ccip/tutorials/canton/destination) (`any2canton`)     |
| :------------------------------- | :------------------------------------------------------------------- | :----------------------------------------------------------------------------- |
| **Prerequisites**                | [Source](/ccip/tutorials/canton/source/prerequisites)                | [Destination](/ccip/tutorials/canton/destination/prerequisites)                |
| **Token Transfers**              | [Source](/ccip/tutorials/canton/source/token-transfers)              | [Destination](/ccip/tutorials/canton/destination/token-transfers)              |
| **Arbitrary Messaging**          | [Source](/ccip/tutorials/canton/source/arbitrary-messaging)          | [Destination](/ccip/tutorials/canton/destination/arbitrary-messaging)          |
| **Programmable Token Transfers** | [Source](/ccip/tutorials/canton/source/programmable-token-transfers) | [Destination](/ccip/tutorials/canton/destination/programmable-token-transfers) |

Destination flows use the SDK's find-or-create `CCIPReceiver` behavior — no separate receiver deployment page.

## Prerequisites (all CCT guides)

- [Starter kit setup](/ccip/tutorials/canton/source/prerequisites) for `cct:*` scripts (`.env`, `canton-config.json`, JWT)
- CCIP DAR packages on your participant ([`contracts/dars/v2_0_0`](https://github.com/smartcontractkit/chainlink-canton/tree/main/contracts/dars/v2_0_0))
- CCIP contract references from Chainlink ops (owner party, TAR, RMNRemote, FeeQuoter)
- OAuth client with `can_act_as` rights for your ledger parties
- Understanding of [token pools](/ccip/concepts/canton/token-pools) and [explicit disclosure](/ccip/concepts/canton/explicit-disclosure)

> **CAUTION: Educational Example Disclaimer**
>
> This page includes an educational example to use a Chainlink system, product, or service and is provided to
> demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This
> template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be
> missing key checks or error handling to make the usage of the system, product or service more clear. Do not use the
> code in this example in a production environment without completing your own audits and application of best practices.
> Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs
> that are generated due to errors in code.