# CCIP Tutorials: Canton to Remote Chain
Source: https://docs.chain.link/ccip/tutorials/canton/source
Last Updated: 2026-06-27

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

**Source** tutorials cover sending from Canton — Canton is the source chain, a remote CCIP-supported chain is the destination.

> **NOTE: Coming soon**
>
> Step-by-step guides will use a minimal starter kit on [`ccip-tools-ts`](https://github.com/smartcontractkit/ccip-tools-ts).

## Tutorials by use case

| Tutorial                                                                                   | Description                                    |
| :----------------------------------------------------------------------------------------- | :--------------------------------------------- |
| [Token Transfers](/ccip/tutorials/canton/source/token-transfers)                           | Bridge tokens from Canton to a remote chain    |
| [Arbitrary Messaging](/ccip/tutorials/canton/source/arbitrary-messaging)                   | Send a data-only message from Canton           |
| [Programmable Token Transfers](/ccip/tutorials/canton/source/programmable-token-transfers) | Send tokens plus calldata to a remote receiver |

## Common flow (all source tutorials)

1. Fetch explicit disclosures from Global CCIP EDS (and token pool operator EDS for token messages)
2. Create or reuse `CCIPSender` and `PerPartyRouter` on Canton
3. Submit via `PerPartyRouter_CCIPSend` with CommitteeVerifier tickets (and token pool tickets when applicable)
4. Track delivery in [CCIP Explorer](/ccip/tools-resources/ccip-explorer)

See [Canton → remote chain](/ccip/concepts/canton/overview#canton--evm) in the overview for the full on-ledger and off-ledger flow.

## Prerequisites

- Token pool registered on TAR (for token transfers and PTT) — see [CCT guides](/ccip/tutorials/canton/cross-chain-tokens)
- CCIP CLI or SDK configured with OAuth credentials and `can_act_as` rights for your ledger party
- [Explicit Disclosure API](/ccip/concepts/canton/explicit-disclosure) endpoints reachable