Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions src/content/ccip/concepts/canton/manual-execution.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,9 @@ Passing the **source transaction / update ID** builds the OffRamp and proofs loc

## Tooling

| Tool | Execute command (starter kit) |
| :-------------------------- | :--------------------------------------------------------------------------------------- |
| Data-only message | `npm run any2canton:manual-exec -- <sepoliaTxHash \| messageId>` after `any2canton:data` |
| Token transfer | Same after `any2canton:token` |
| Programmable token transfer | Same after `any2canton:data-and-token` |
| Tool | Execute command (starter kit) |
| :---------------- | :--------------------------------------------------------------------------------------- |
| Data-only message | `npm run any2canton:manual-exec -- <sepoliaTxHash \| messageId>` after `any2canton:data` |

Scripts use `@chainlink/ccip-sdk` with `canton-config.json` and ledger auth — the same model as `ccip-cli` without `--wallet`.

Expand All @@ -117,7 +115,5 @@ Scripts use `@chainlink/ccip-sdk` with `canton-config.json` and ledger auth —
Step-by-step walkthroughs:

- [Arbitrary Messaging (destination)](/ccip/tutorials/canton/destination/arbitrary-messaging)
- [Token Transfers (destination)](/ccip/tutorials/canton/destination/token-transfers)
- [Programmable Token Transfers (destination)](/ccip/tutorials/canton/destination/programmable-token-transfers)

Complete [Canton as Destination prerequisites](/ccip/tutorials/canton/destination/prerequisites) before running them.
6 changes: 3 additions & 3 deletions src/content/ccip/getting-started/canton.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ The starter kit uses the same SDK and ledger submit model as `ccip-cli` with `ca

## Fees (summary)

- **Sending from Canton:** CCIP fees are paid on-ledger in **Amulet** by default, or **LINK** with `--feeToken link`. See [Key Concepts — Fees](/ccip/concepts/canton/key-concepts#fees-on-canton).
- **Sending from Canton:** CCIP fees are paid on-ledger in **Amulet**. See [Key Concepts — Fees](/ccip/concepts/canton/key-concepts#fees-on-canton).
- **Sending to Canton:** Fees are paid on the **source** chain (Sepolia ETH or LINK in the starter kit).

Fund your party before running tutorials — `npm run check-balance` in the starter kit.
Expand All @@ -73,8 +73,8 @@ Fund your party before running tutorials — `npm run check-balance` in the star
1. Read [Key Concepts](/ccip/concepts/canton/key-concepts) (parties, privacy, manual execution, fees).
2. Clone and configure the [starter kit](/ccip/tutorials/canton/source/prerequisites) (`party`, ledger URL, validator user, `transferInstructionUrl`).
3. Pick a direction and tutorial:
- **Canton → Sepolia:** [Arbitrary Messaging](/ccip/tutorials/canton/source/arbitrary-messaging), [Token Transfers](/ccip/tutorials/canton/source/token-transfers), or [Programmable Token Transfers](/ccip/tutorials/canton/source/programmable-token-transfers)
- **Sepolia → Canton:** [Arbitrary Messaging](/ccip/tutorials/canton/destination/arbitrary-messaging), [Token Transfers](/ccip/tutorials/canton/destination/token-transfers), or [Programmable Token Transfers](/ccip/tutorials/canton/destination/programmable-token-transfers) — each ends with `any2canton:manual-exec`
- **Canton → Sepolia:** [Arbitrary Messaging](/ccip/tutorials/canton/source/arbitrary-messaging)
- **Sepolia → Canton:** [Arbitrary Messaging](/ccip/tutorials/canton/destination/arbitrary-messaging) ends with `any2canton:manual-exec`

## Before you begin

Expand Down
586 changes: 20 additions & 566 deletions src/content/ccip/llms-full.txt

Large diffs are not rendered by default.

15 changes: 5 additions & 10 deletions src/content/ccip/tutorials/canton/destination/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,14 @@ section: ccip
date: Last Modified
title: "CCIP Tutorials: Canton as Destination"
metadata:
description: "Send from Ethereum Sepolia and execute incoming cross-chain messages and token transfers on Canton using the CCIP Canton Starter Kit."
description: "Send from Ethereum Sepolia and execute incoming cross-chain messages on Canton using the CCIP Canton Starter Kit."
excerpt: "CCIP Canton destination, any2canton, execute on Canton, manual execution, CCIPReceiver"
datePublished: "2026-06-27"
lastModified: "2026-07-06"
difficulty: "intermediate"
isIndex: true
whatsnext:
"Prerequisites": "/ccip/tutorials/canton/destination/prerequisites"
"Token Transfers": "/ccip/tutorials/canton/destination/token-transfers"
"Cross-chain overview": "/ccip/concepts/canton/overview"
---

Expand Down Expand Up @@ -43,19 +42,16 @@ Tutorials use the [`ccip-starter-kit-canton`](https://github.com/smartcontractki

## Tutorials by Use Case

| Tutorial | Scripts | Description |
| :---------------------------------------------------------------------------------------------- | :------------------------------------------ | :------------------------------------------- |
| [Arbitrary Messaging](/ccip/tutorials/canton/destination/arbitrary-messaging) | `any2canton:data` + `manual-exec` | Execute an incoming data message on Canton |
| [Token Transfers](/ccip/tutorials/canton/destination/token-transfers) | `any2canton:token` + `manual-exec` | Execute an incoming token transfer on Canton |
| [Programmable Token Transfers](/ccip/tutorials/canton/destination/programmable-token-transfers) | `any2canton:data-and-token` + `manual-exec` | Execute an incoming PTT on Canton |
| Tutorial | Scripts | Description |
| :---------------------------------------------------------------------------- | :-------------------------------- | :----------------------------------------- |
| [Arbitrary Messaging](/ccip/tutorials/canton/destination/arbitrary-messaging) | `any2canton:data` + `manual-exec` | Execute an incoming data message on Canton |

## Common Flow (all any2canton tutorials)

1. Send from Sepolia with an `any2canton:*` script
2. Poll message status via the CCIP API or [CCIP Explorer](/ccip/tools-resources/ccip-explorer)
3. Run `any2canton:manual-exec` — the SDK **finds or creates** a compatible `CCIPReceiver` for message finality
4. Fetch proofs from the indexer and disclosures from Global CCIP EDS (+ token pool operator EDS for token messages)
5. For token messages: accept the `TransferInstruction` to receive LINK on-ledger

<Aside type="tip">

Expand All @@ -66,8 +62,7 @@ No separate receiver deployment tutorial is needed for the default path. Pass a
## Prerequisites

- [Starter kit setup](/ccip/tutorials/canton/destination/prerequisites)
- Funded Sepolia account with ETH (or LINK for fees) and TEST for token tutorials
- Funded Sepolia account with ETH (or LINK for fees)
- Canton ledger access for manual execution
- Token pool registered for the instrument — see [CCT guides](/ccip/tutorials/canton/cross-chain-tokens)

<CcipCommon callout="educationalDisclaimer" />

This file was deleted.

141 changes: 0 additions & 141 deletions src/content/ccip/tutorials/canton/destination/token-transfers.mdx

This file was deleted.

Loading
Loading