MCPInstall

ccip

Chainlink CCIP Cross-Chain Tokens on Hedera. Use when bridging burn-and-mint CCT between Hedera and EVM, registering TokenAdminRegistry / pools, calling ccipSend with chain selectors, or wiring HTS-backed wrappers (HtsBurnMintERC20) vs vanilla BurnMintERC20. Not for Chainlink Data Feeds / price oracles.

Installs
457
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/hedera-dev/hedera-skills --skill ccip
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads ccip automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Chainlink CCIP (Hedera)

CCT burn-and-mint pattern: deploy a burn-mint token + token pool on each chain, register the token with CCIP, wire remote pools with chain selectors, then ccipSend paying native fees.

BurnMint token + TokenPool (source)
        → Router.ccipSend(destSelector, message)
             → TokenPool lockOrBurn / releaseOrMint (dest)

On Hedera you can use a vanilla ERC-20 CCT or an HTS-backed wrapper. CCIP always registers the ERC-20 the pool sees — for HTS that is the wrapper, while users hold the native HTS token.

This skill is cross-chain tokens/messages, not Chainlink Data Feeds.

Quick Reference

PieceRole
RoutergetFee + ccipSend{value}
Chain selectoruint64 CCIP id — not EVM chain ID
Token + poolBurn-mint ERC-20 + BurnMintTokenPool (or Hedera HTS variants)
Admin registryRegistryModuleOwnerCustom → TokenAdminRegistry.acceptAdminRole → setPool
Lane configTokenPool.applyChainUpdates both directions
FeeNative gas (feeToken = address(0)); attach msg.value
Receiverabi.encode(address) in EVM2AnyMessage.receiver

See references/hedera-ccip.md for where to source selectors and registry addresses. See references/examples.md for register / wire / send sketches.

Critical: Selectors, Not Chain IDs

ccipSend and pool remoteChainSelector take CCIP chain selectors. Hedera testnet (296) and Sepolia (11155111) have different selector values than their EVM chain IDs. Look them up in the CCIP directory; do not pass 296 as a selector.

Do not reuse Axelar GMP names or LayerZero EIDs here.

Critical: Register Then Wire Both Lanes

Incomplete registry/pool config bricks the token. Per chain:

  1. Deploy token + pool
  2. Grant the pool mint/burn roles on the token
  3. registerAdminViaGetCCIPAdmin(token) then acceptAdminRole(token)
  4. TokenAdminRegistry.setPool(token, pool)
  5. After both chains have token+pool addresses: applyChainUpdates on each pool (remote selector, remote pool, remote token)

Then send a small test amount and track it on CCIP Explorer.

Critical: Hedera HTS-Backed CCT

Vanilla path: BurnMintERC20 + BurnMintTokenPool on Hedera EVM, same as Sepolia.

HTS-backed path:

  • Users hold a native HTS token created via precompile 0x167
  • CCIP registers the wrapper (HtsBurnMintERC20), not the HTS token id/address users see in wallets
  • Pool (HtsBurnMintTokenPool) must associate itself with the native HTS token and approve the wrapper
  • Hedera → remote send needs two approvals: HTS → wrapper, wrapper → Router
  • Receiver accounts must associate the native HTS token before inbound mints
  • Mint/burn/transfer amounts must fit HTS int64

Do not mix Axelar or LayerZero token addresses into CCIP env/config.

Send Flow (native fee)

Client.EVM2AnyMessage memory message = Client.EVM2AnyMessage({
    receiver: abi.encode(receiver),
    data: "",
    tokenAmounts: tokenAmounts, // token is the CCIP-registered ERC-20 / wrapper
    feeToken: address(0),
    extraArgs: Client._argsToBytes(
        Client.EVMExtraArgsV2({ gasLimit: 0, allowOutOfOrderExecution: true })
    )
});

uint256 fee = IRouterClient(router).getFee(destinationChainSelector, message);
IERC20(tokenToSend).approve(router, amount);
IRouterClient(router).ccipSend{ value: fee }(destinationChainSelector, message);

Checklist

  • Chain selectors from the CCIP directory (not EVM chain IDs, Axelar names, or LZ EIDs)
  • Token admin registered and pool set on both chains
  • applyChainUpdates wired both directions before sending
  • Native fee attached to ccipSend (feeToken = address(0))
  • HTS path: wrapper registered with CCIP; users hold native HTS; dual approve + associate
  • Amounts fit int64 when touching HTS mint/burn
  • CCIP token/pool addresses not copied from Axelar/LayerZero configs

References

FAQ

What does the ccip skill do?

Chainlink CCIP Cross-Chain Tokens on Hedera. Use when bridging burn-and-mint CCT between Hedera and EVM, registering TokenAdminRegistry / pools, calling ccipSend with chain selectors, or wiring HTS-backed wrappers (HtsBurnMintERC20) vs vanilla BurnMintERC20. Not for Chainlink Data Feeds / price oracles.

How do I install ccip?

Run npx skills add https://github.com/hedera-dev/hedera-skills --skill ccip in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/ccip/ (personal) or .claude/skills/ccip/ (project).

Which AI agents can use ccip?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is ccip safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains ccip?

It is published by hedera-dev in hedera-dev/hedera-skills. It has 457 recorded installs.

More from hedera-dev/hedera-skills

View all →

This skill should be used when the user wants to validate, review, or score their Hedera hackathon submission before submitting. Triggered by phrases like "validate hackathon submission", "review my hackathon project", "hackathon scorecard", "check submission readiness", "score my hackathon", "submission review", "judge my project", "hackathon submission quality", or "improve hackathon score".

hedera hackathon prd

hedera-dev/hedera-skills

This skill should be used when the user wants to plan a Hedera hackathon project, create a PRD, write a project spec, brainstorm a hackathon idea, or structure their hackathon submission. Triggered by phrases like "hackathon project plan", "hackathon PRD", "plan my hackathon project", "hedera hackathon idea", "write a hackathon spec", "hackathon project structure", "prepare for hackathon", or "build for hackathon".

hedera-token-service

hedera-dev/hedera-skills

How to create, manage, and transfer tokens on Hedera using the Hiero JavaScript SDK (@hiero-ledger/sdk). Use this skill whenever the user wants to work with fungible tokens, NFTs, token creation, minting, burning, transfers, token association, custom fees (fixed, fractional, royalty), airdrops, KYC/freeze/wipe/pause operations, or any HTS (Hedera Token Service) operation in JavaScript or TypeScript. Also trigger when users mention @hashgraph/sdk token operations, ERC-20/ERC-721 equivalents on Hedera, or tokenization on the Hedera network.

hedera-consensus-service

hedera-dev/hedera-skills

How to create topics, submit messages, and subscribe to real-time message streams on Hedera using the Hiero JavaScript SDK (@hiero-ledger/sdk). Use this skill whenever the user wants to work with Hedera Consensus Service (HCS), including topic creation, message submission, pub/sub messaging, mirror node subscriptions, chunked large messages, topic fees, or any consensus-related operation in JavaScript or TypeScript. Also trigger when users mention @hashgraph/sdk topic operations, event logging on Hedera, decentralized messaging, audit trails, or ordered message streams.

DevOps & Cloud551 installs

project scaffolding

hedera-dev/hedera-skills

This skill should be used when the user wants to set up Claude for a project, create a CLAUDE.md file, scaffold the .claude directory, initialize an AI workflow, configure a project for Claude, set up dev intelligence, initialize a new project, or do a new project setup. Triggered by phrases like "set up claude for this project", "create CLAUDE.md", "scaffold .claude directory", "init AI workflow", "configure project for claude", "set up dev intelligence", "initialize project", "new project setup".

session management

hedera-dev/hedera-skills

This skill should be used when the user wants to resume previous work, continue from a last session, check what was being worked on, track completed work, log session activity, manage tech debt, review pending items, view session history, or maintain a work log. Triggered by phrases like "resume work", "continue from last session", "what was I working on", "track this work", "log what we did", "tech debt", "what's pending", "session history", "work log".

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs