Protocol Contracts

Each chain has two primary CCTP contracts: MessageTransmitter and TokenMessenger. These contracts are responsible for the following:

  • 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

TokenMessenger: Testnet

MessageTransmitter: Testnet

TokenMinter: Testnet

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

What’s Next