Search

Search for projects by name or address

CCTP v1 logo
CCTP v1

About

This is the first version cross-chain transfer protocol by Circle. Mainly used for USDC burn-mint transfers, it coexists with the v2 protocol and can also be used for arbitrary message passing.


    Last 24h volume
    $54.51 M
    Last 24h transfer count
    864
    Last 24h top path
    solanaethereum$19.05 M

    Last 24h avg. transfer time
    28m 31s
    Last 24h avg. transfer value
    $63.09 K
    Tokens by volume
    USDC

    Transfer size
    Under $100
    $100-$1K
    $1K-$10K
    $10K-$100K
    Over $100K

    Transfer type distribution
    Burn & Mint

    About

    This is the first version cross-chain transfer protocol by Circle. Mainly used for USDC burn-mint transfers, it coexists with the v2 protocol and can also be used for arbitrary message passing.

    Top token

    Volume
    $54.51 M
    Transaction count
    864

    This is the first version cross-chain transfer protocol by Circle. Mainly used for USDC burn-mint transfers, it coexists with the v2 protocol and can also be used for arbitrary message passing.

    Architecture

    Circle’s Cross-Chain Transfer Protocol (CCTP) is a centralized burn-and-mint bridge for USDC and, underneath it, a generalized message-passing protocol. A source-chain TokenMessenger burns USDC through the local TokenMinter and asks the MessageTransmitter to emit a message for the destination domain. Circle’s offchain Iris attestation service observes the source transaction and acts as the oracle / attester at the destination. Anyone with the message and attestation can call receiveMessage on the destination MessageTransmitter; the contract verifies the attester signatures, prevents nonce replay, dispatches the message to the destination TokenMessenger, and mints the same amount of native USDC to the requested recipient.

    CCTP v1 and v2

    CCTP v1 and v2 use the same high-level flow and both can carry arbitrary message bodies. In the Ethereum discovery, v1’s MessageTransmitter and TokenMessenger are immutable contracts. CCTP v1 only supports ‘Standard Transfer’: Circle waits for a certain amount of block confirmations on the source chain before attesting.

    CCTP v2 uses MessageTransmitterV2 and TokenMessengerV2, adds finality thresholds, destination mint fees, and optional hook data. The new ‘Fast Transfer’ feature lets Iris attest much faster as long as Circle’s global ‘Fast Transfer’ allowance is available. Hooks are metadata passed with the burn message and are interpreted by app-level integrators rather than executed by CCTP core.

    Crosschain oracle and validation

    CCTP does not validate source-chain state on the destination chain. The destination MessageTransmitter verifies signatures from Circle-controlled attesters, so security depends on Circle’s offchain attestation service signing only valid source messages and protecting its signing keys. CCTP v1 is configured with a 2/2 attester threshold, while v2 is configured with a 2/2 threshold. The attester manager can change enabled attesters and thresholds, and the owner can change the attester manager.

    Upgradeability

    The v1 Ethereum contracts in discovery are immutable, but critical permissions like ownership, minters, pausing, rescuer, token-controller, and attester-manager roles govern protocol operation. V2 introduces proxied contracts; their proxy admins can replace implementations with no onchain delay. CCTP is deployed per Circle domain, so a complete risk assessment must include the corresponding contracts, signer configuration, and permissions on every supported source and destination chain.

    Symbol
    Last 24h Volume
    Last 24h transfer count
    Last 24h avg. transfer time
    Last 24h avg. transfer value
    From
    To
    Timestamp
    Tokens
    Value
    Transfer time
    Chains

    Ethereum

    Actors:

    • Can interact with USD Coin Token
      • mint the token in the bounds of a preset minting allowance
    • Can interact with TokenMinter
      • set the local TokenMessenger, token controller, pauser, rescuer, and transfer ownership
    • Can interact with TokenMessengerV2
      • transfer any ERC-20 tokens out of the contract
    • Can interact with USD Coin Token
      • blacklist addresses, freezing any interactions with the USDC token for them
    • Can interact with GatewayWallet
      • allowlist or disallowlist contract signers for Gateway burn intents
    • Can interact with TokenMessengerV2
      • configure remote TokenMessengers, the local minter, V2 fee recipient and denylister, rescuer, and transfer ownership
    • Can upgrade with no delay
      • GatewayWallet
    • Can interact with GatewayWallet
      • configure supported tokens, withdrawal delay, burn signers, batch signers, fee recipient, pauser, denylister, contract signer allowlister, and transfer ownership
    • Can interact with USD Coin Token
      • mint the token in the bounds of a preset minting allowance
    • Can interact with MessageTransmitter
      • enable or disable attesters and set the attestation signature threshold
    • Can interact with MessageTransmitterV2
      • pause and unpause message transmission and receiving
    • Can upgrade with no delay
      • GatewayMinter
    • Can interact with GatewayMinter
      • configure supported tokens, mint authorities, attestation signers, pauser, denylister, and transfer ownership
    • Can interact with USD Coin Token
      • pause the USDC token (no transfers, mints, burns)
    • Can interact with MessageTransmitter
      • set the attester manager, pauser, rescuer, maximum message body size, and transfer ownership
    • Can interact with TokenMinterV2
      • pause and unpause minting and burning through this TokenMinter
    • Can interact with USD Coin Token
      • mint the token in the bounds of a preset minting allowance
    • Can interact with MessageTransmitterV2
      • transfer any ERC-20 tokens out of the contract
    • Can interact with TokenMessenger
      • transfer any ERC-20 tokens out of the contract
    • Can interact with TokenMessenger
      • configure remote TokenMessengers, the local minter, V2 fee recipient and denylister, rescuer, and transfer ownership
    • Can interact with GatewayMinter
      • pause and unpause Gateway minting
    • Can interact with MessageTransmitter
      • transfer any ERC-20 tokens out of the contract
    • Can interact with GatewayWallet
      • denylist addresses, preventing them from interacting with the GatewayWallet
    • Can interact with TokenMinterV2
      • link or unlink remote tokens and configure per-message burn limits
    • Can interact with TokenMinterV2
      • set the local TokenMessenger, token controller, pauser, rescuer, and transfer ownership
    • Can interact with GatewayMinter
      • denylist addresses, preventing them from interacting with the GatewayMinter
    • Can upgrade with no delay
      • USD Coin Token
    • Can interact with TokenMinter
      • pause and unpause minting and burning through this TokenMinter
    • Can interact with TokenMinter
      • link or unlink remote tokens and configure per-message burn limits
    • Can interact with TokenMinter
      • transfer any ERC-20 tokens out of the contract
    • Can interact with GatewayWallet
      • pause and unpause deposits, burns, and withdrawals
    • Can upgrade with no delay
      • TokenMessengerV2
    • Can interact with USD Coin Token
      • mint the token in the bounds of a preset minting allowance
    • Can interact with MessageTransmitterV2
      • set the attester manager, pauser, rescuer, maximum message body size, and transfer ownership
    • Can interact with USD Coin Token
      • mint the token in the bounds of a preset minting allowance
    • Can upgrade with no delay
      • MessageTransmitterV2
    • Can interact with TokenMessengerV2
      • denylist addresses, preventing them from interacting with this TokenMessenger
    • Can interact with MessageTransmitterV2
      • enable or disable attesters and set the attestation signature threshold
    • Can interact with MessageTransmitter
      • pause and unpause message transmission and receiving
    • Can interact with TokenMinterV2
      • transfer any ERC-20 tokens out of the contract
    • Can interact with USD Coin Token
      • manage all critical roles like pausers, blacklisters, minters, rescuer
    A diagram of the smart contract architecture
    A diagram of the smart contract architecture

    Ethereum

    MessageTransmitter0x0a99…8F81

    Part of CCTP

    • Roles:
      • attesterManager: EOA 23
      • getEnabledAttester: EOA 73, EOA 88
      • owner: EOA 33
      • pauser: EOA 81
      • rescuer: EOA 43

    Entrypoint or minter of USDC on this chain for the Gateway protocol.

    • Roles:
      • admin: EOA 27
      • attestationSigners: EOA 21
      • denylister: EOA 53
      • owner: EOA 27
      • pauser: EOA 42
    Can be upgraded by:

    Part of CCTP

    • Roles:
      • admin: EOA 70
      • denylister: EOA 77
      • localMessageTransmitter: MessageTransmitterV2
      • owner: EOA 16
      • rescuer: EOA 3
    Can be upgraded by:

    Exit point or burner of USDC on this chain for the Gateway protocol.

    • Roles:
      • admin: EOA 18
      • attestationSigners: EOA 75
      • contractSignersAllowlister: EOA 9
      • denylister: EOA 45
      • owner: EOA 18
      • pauser: EOA 66
    Can be upgraded by:

    Part of CCTP

    • Roles:
      • admin: EOA 76
      • attesterManager: EOA 78
      • getEnabledAttester: EOA 35, EOA 44
      • owner: EOA 74
      • pauser: EOA 24
      • rescuer: EOA 36
    Can be upgraded by:
    • Roles:
      • admin: EOA 55
      • blacklister: EOA 6
      • masterMinter: MasterMinter; ultimately EOA 10, EOA 12, EOA 22, EOA 25, EOA 26, EOA 28, EOA 30, EOA 39, EOA 47, EOA 48, EOA 5, EOA 50, EOA 51, EOA 54, EOA 60, EOA 62, EOA 63, EOA 64, EOA 67, EOA 7, EOA 71, EOA 72, EOA 79, EOA 80, EOA 82, EOA 83, EOA 84, EOA 85, EOA 86, EOA 89, EOA 91, EOA 92, EOA 94, EOA 97
      • minters: EOA 1, EOA 11, EOA 13, EOA 14, EOA 15, EOA 17, EOA 19, EOA 20, EOA 29, EOA 31, EOA 37, EOA 38, EOA 4, EOA 49, EOA 57, EOA 58, EOA 61, EOA 68, EOA 69, EOA 8, EOA 90, EOA 93, EOA 95, GatewayMinter, GatewayWallet, TokenMinter, TokenMinterV2; ultimately EOA 21, EOA 35, EOA 44, EOA 73, EOA 75, EOA 88
      • owner: EOA 96
      • pauser: EOA 32
    Can be upgraded by:
    TokenMessenger0xBd3f…3155

    Part of CCTP

    • Roles:
      • localMessageTransmitter: MessageTransmitter
      • owner: EOA 41
      • rescuer: EOA 40
    TokenMinter0xc492…e907

    Part of CCTP: Used for automated access control for minting.

    • Roles:
      • localTokenMessenger: TokenMessenger
      • owner: EOA 2
      • pauser: EOA 56
      • rescuer: EOA 65
      • tokenController: EOA 59
    MasterMinter0xE982…de17
    • Roles:
      • controllers: EOA 10, EOA 12, EOA 22, EOA 25, EOA 26, EOA 28, EOA 30, EOA 39, EOA 47, EOA 48, EOA 5, EOA 50, EOA 51, EOA 54, EOA 60, EOA 62, EOA 63, EOA 64, EOA 67, EOA 7, EOA 71, EOA 72, EOA 80, EOA 82, EOA 83, EOA 84, EOA 85, EOA 86, EOA 89, EOA 91, EOA 92, EOA 94, EOA 97
      • owner: EOA 79
    TokenMinterV20xfd78…D002

    Part of CCTP: Used for automated access control for minting.

    • Roles:
      • localTokenMessenger: TokenMessengerV2
      • owner: EOA 52
      • pauser: EOA 34
      • rescuer: EOA 87
      • tokenController: EOA 46

    The current deployment carries some associated risks:

    • Funds can be stolen if a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL).