cctp.constants
Documentation for eth_defi.cctp.constants Python module.
Circle CCTP V2 constants.
Cross-Chain Transfer Protocol V2 deployment addresses and domain mappings.
CCTP enables burn-and-mint USDC transfers across chains:
Source chain: call
depositForBurn()on TokenMessengerV2 to burn USDCCircle’s Iris attestation service signs the burn event
Destination chain: call
receiveMessage()on MessageTransmitterV2 to mint USDC
The burnToken parameter is always the source chain’s native USDC address.
On the destination chain, TokenMinterV2 uses a remoteTokensToLocalTokens
mapping (managed by Circle’s TokenController) to resolve which local token
to mint. The caller does not need to specify the destination USDC address.
All CCTP V2 contracts share the same address across all EVM chains (deployed via CREATE2).
Module Attributes
CCTP V2 TokenMessengerV2 - entry point for cross-chain USDC transfers. |
|
CCTP V2 MessageTransmitterV2 - handles message passing and attestation verification. |
|
CCTP V2 TokenMinterV2 - executes burning/minting of USDC. |
|
CCTP domain ID for Ethereum mainnet |
|
CCTP domain ID for Arbitrum One |
|
CCTP domain ID for Base |
|
CCTP domain ID for Polygon PoS |
|
Mapping from EVM chain ID to CCTP domain ID. |
|
Reverse mapping from CCTP domain to EVM chain ID. |
|
Mapping from CCTP domain ID to human-readable chain name. |
|
Circle Iris attestation API base URL (mainnet). |
|
Circle Iris attestation API base URL (testnet/sandbox). |
|
Minimum finality threshold for standard (finalized) transfers. |
|
Minimum finality threshold for fast (confirmed) transfers. |
|
CCTP V2 TokenMessengerV2 on Sepolia testnets. |
|
CCTP V2 MessageTransmitterV2 on Sepolia testnets. |
|
CCTP V2 TokenMinterV2 on Sepolia testnets. |
|
Sepolia testnet chain IDs that use CCTP testnet contracts. |
|
Sepolia chain IDs share the same CCTP domain IDs as their mainnet counterparts. |
- TOKEN_MESSENGER_V2: eth_typing.evm.HexAddress = '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d'
CCTP V2 TokenMessengerV2 - entry point for cross-chain USDC transfers. Same address on all EVM chains via CREATE2.
- MESSAGE_TRANSMITTER_V2: eth_typing.evm.HexAddress = '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64'
CCTP V2 MessageTransmitterV2 - handles message passing and attestation verification. Same address on all EVM chains via CREATE2.
- TOKEN_MINTER_V2: eth_typing.evm.HexAddress = '0xfd78EE919681417d192449715b2594ab58f5D002'
CCTP V2 TokenMinterV2 - executes burning/minting of USDC. Same address on all EVM chains via CREATE2.
- CCTP_DOMAIN_ETHEREUM = 0
CCTP domain ID for Ethereum mainnet
- CCTP_DOMAIN_ARBITRUM = 3
CCTP domain ID for Arbitrum One
- CCTP_DOMAIN_BASE = 6
CCTP domain ID for Base
- CCTP_DOMAIN_POLYGON = 7
CCTP domain ID for Polygon PoS
- CHAIN_ID_TO_CCTP_DOMAIN: dict[int, int] = {1: 0, 137: 7, 8453: 6, 42161: 3}
Mapping from EVM chain ID to CCTP domain ID.
CCTP uses its own domain identifiers, not EVM chain IDs.
- CCTP_DOMAIN_TO_CHAIN_ID: dict[int, int] = {0: 1, 3: 42161, 6: 8453, 7: 137}
Reverse mapping from CCTP domain to EVM chain ID.
- CCTP_DOMAIN_NAMES: dict[int, str] = {0: 'Ethereum', 3: 'Arbitrum', 6: 'Base', 7: 'Polygon'}
Mapping from CCTP domain ID to human-readable chain name.
- IRIS_API_BASE_URL = 'https://iris-api.circle.com'
Circle Iris attestation API base URL (mainnet).
- IRIS_API_SANDBOX_URL = 'https://iris-api-sandbox.circle.com'
Circle Iris attestation API base URL (testnet/sandbox).
- FINALITY_THRESHOLD_STANDARD = 2000
Minimum finality threshold for standard (finalized) transfers.
- FINALITY_THRESHOLD_FAST = 1000
Minimum finality threshold for fast (confirmed) transfers. Uses lower block confirmation, may incur fees.
- TESTNET_TOKEN_MESSENGER_V2: eth_typing.evm.HexAddress = '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA'
CCTP V2 TokenMessengerV2 on Sepolia testnets. Different from mainnet, but identical across all Sepolia chains via CREATE2.
- TESTNET_MESSAGE_TRANSMITTER_V2: eth_typing.evm.HexAddress = '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275'
CCTP V2 MessageTransmitterV2 on Sepolia testnets.
- TESTNET_TOKEN_MINTER_V2: eth_typing.evm.HexAddress = '0xb43db544E2c27092c107639Ad201b3dEfAbcF192'
CCTP V2 TokenMinterV2 on Sepolia testnets.