Protocol Contracts

Learn about the two primary CCTP contracts on each chain and see the role played by each.

Cross-Chain Transfer Protocol (CCTP) is a permissionless on-chain utility that can burn native USDC on a source chain and mint native USDC of the same amount on a destination chain. This is made possible by two primary CCTP contracts found on each chain, MessageTransmitter and TokenMessenger.

Contract responsibilities

  • TokenMessenger: Entrypoint for cross-chain USDC transfer. Routes messages to burn USDC on source chain, and mint USDC on destination chain.
  • MessageTransmitter: Generic message passing. Sends all messages on the source chain, and receives all messages on the destination chain.
  • TokenMinter: Responsible for minting and burning USDC. Contains chain-specific settings used by minters and burners.

*Full contract source code is available at https://github.com/circlefin/evm-cctp-contracts

Mainnet contract addresses

TokenMessenger: Mainnet

MessageTransmitter: Mainnet

TokenMinter: Mainnet

Testnet contract addresses

TokenMessenger: Testnet

MessageTransmitter: Testnet

TokenMinter: Testnet

The relationship between these contracts is outlined in the diagram below:


What’s Next