CCIP starter kit examples map
The CCIP starter kits (Foundry and Hardhat 3) teach CCIP 2.0 through examples Example01-Example10 plus two legacy examples, each with a chapter in the kit's own book and a test that runs against Chainlink Local. This page maps every example to what it teaches, its kit book chapter, and the docs.chain.link page that covers the same topic, so you can find where each feature is documented.
The kits pin Chainlink Local v0.3.1, @chainlink/contracts-ccip 2.0.0 and solc 0.8.26 with evm_version = cancun. Examples 01-10 use Ethereum Sepolia → Polygon Amoy as their primary CCIP 2.0 lane.
Local mode examples (Example01-Example05)
These tests run against the no-fork CCIPLocalSimulator: no RPC URLs needed, messages delivered synchronously inside ccipSend, with the CCIP 2.0 OnRamp and OffRamp message rules applied. Read CCIP 2.0 behavior in local mode for what is enforced.
| Example | What it teaches | Chainlink Local guide | Related CCIP docs |
|---|---|---|---|
| 01 - Token Transfer + Fast Transfers | Token-only transfer to an EOA with ExtraArgsV3 and non-zero block confirmations | Foundry · Hardhat | Transfer tokens from a contract |
02 - Hello World to BasicMessageReceiverWithCCVs | Data-only message to a receiver with CCV config; the receiver's minBlockDepth gates Fast Transfers | Foundry · Hardhat | Send arbitrary data |
| 03 - Programmable Token Transfer (Fast Transfers) | Data + tokens in one message to a contract receiver, with the receiver finality gate | Kit book chapter | Programmable token transfers |
| 04 - Programmable Token Transfer (sender contract) | Same transfer through a BasicMessageSender contract with default finality | Kit book chapter | Programmable token transfers |
| 05 - ExtraArgsV3 no-execution tag | The NO_EXECUTION_ADDRESS executor for the manual execution path | Kit book chapter | Manual execution |
Local mode does not model executors or manual execution: NO_EXECUTION_ADDRESS messages are executed immediately, so Example 05's test only verifies what the script sends. Whether the message stays pending until manually executed can only be observed on a real lane or a fork.
Fork mode examples (Example06-Example10)
These tests run against pinned forks of Ethereum Sepolia and Polygon Amoy through CCIPLocalSimulatorFork (Foundry) or the Hardhat 3 JavaScript fork helper. They need archive-capable RPC URLs and, in Foundry, FOUNDRY_PROFILE=fork. Read CCIP 2.0 behavior in fork mode for what is simulated.
| Example | What it teaches | Chainlink Local guide | Related CCIP docs |
|---|---|---|---|
| 06 - CCT Burn and Mint | CrossChainToken + BurnMint pool deployment, TokenAdminRegistry registration, lane linking, pool finality config | CCT burn and mint tutorial · fork guide | Register a Burn and Mint token from an EOA |
| 07 - CCT Lock and Release | CrossChainToken + ERC20LockBox + LockRelease pool, destination lock box liquidity | CCT lock and release tutorial | Register a Lock and Mint token from an EOA |
08 - CCT Burn and Mint with AdvancedPoolHooks | Attaching a pool hook with a sender allowlist and CCV threshold | Kit book chapter | Configure a sender allowlist |
09 - Pool-based CCVs on AdvancedPoolHooks | Pool-required CCVs consulted outbound by the OnRamp and verified inbound by the OffRamp; threshold CCVs | Pool-based CCVs tutorial | CCV starter kit |
10 - Policy engine on AdvancedPoolHooks | An ACE policy engine attached to the hook, capping transfer amounts | Kit book chapter | Enforce ACE policies |
Pool-required CCVs (Example 09) are the one CCIP 2.0 feature local mode cannot exercise: local mode has no token pools, so pool-required CCVs are not enforced there. Only the fork tests run them against the real OnRamp and OffRamp.
Legacy examples
| Example | What it teaches | Related CCIP docs |
|---|---|---|
| Legacy 01 - ExtraArgsV1 token transfer | The v1.x EVMExtraArgsV1 format on an older lane | Using extraArgs |
| Legacy 02 - ExtraArgsV2 token transfer | The GenericExtraArgsV2 format; allowOutOfOrderExecution is deprecated in CCIP 2.0 | Using extraArgs |
Kit books and tools
Each kit ships an mdBook with one chapter per example, including the exact script and task commands for live-testnet runs:
The books also cover the CCIP API, the CCIP SDK (ccip-send, ccip-track) and the CCIP CLI, which are not Chainlink Local features.