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 https://github.com/circlefin/evm-cctp-contracts
TokenMessenger: Testnet
Chain | Domain | Address |
---|---|---|
Ethereum | 0 | 0xd0c3da58f55358142b8d3e06c1c30c5c6114efe8 |
Avalanche | 1 | 0xeb08f243e5d3fcff26a9e38ae5520a669f4019d0 |
MessageTransmitter: Testnet
Chain | Domain | Address |
---|---|---|
Ethereum | 0 | 0x26413e8157cd32011e726065a5462e97dd4d03d9 |
Avalanche | 1 | 0xa9fb1b3009dcb79e2fe346c16a604b8fa8ae0a79 |
TokenMinter: Testnet
Chain | Domain | Address |
---|---|---|
Ethereum | 0 | 0xca6b4c00831ffb77afe22e734a6101b268b7fcbe |
Avalanche | 1 | 0x4ed8867f9947a5fe140c9dc1c6f207f3489f501e |
The relationship between these contracts is outlined in the diagram below:
Updated about 2 months ago