CCTP

Finality Thresholds and Fees

In CCTP V2, finality thresholds allow integrators to specify the level of confirmation required before an attestation is issued.

CCTP V2 introduces the concept of a finality threshold, which provides a chain-agnostic representation of the confirmation level for a given attestation.

In CCTP V2, each message specifies a minFinalityThreshold. This threshold indicates the minimum level of confirmation required for Circle's attestation service (Iris) to attest to the message. Iris will not attest to a message at a confirmation level below the specified minimum threshold. This allows applications to enforce a desired level of finality before acting on an attestation on the destination chain.

CCTP V2 defines the following finality thresholds:

Finality ThresholdValue
Confirmed1000
Finalized2000
  • Messages with a minFinalityThreshold of 1000 or lower are considered Fast messages. These messages are eligible for fast attestation at the confirmed level by Iris.
  • Messages with a minFinalityThreshold of 2000 are considered Standard messages. These messages are attested to at the finalized level by Iris.

For CCTP V2 transfers, a fee is collected onchain at the time of USDC minting. Retrieve the applicable fee by calling the API every time before executing a transaction. Fees are subject to change with advance notice. See the table below for rates.

  • The maxFee parameter in depositForBurn specifies the maximum fee that can be charged during minting.
    • If maxFee is less than the minimum Standard Transfer fee, the burn reverts onchain.
    • If maxFee is equal to or greater than the minimum Fast Transfer fee, and minFinalityThreshold is 1000 or lower, the attestation is eligible for Fast Transfer. In this case, the Fast Transfer fee (which varies by chain) is charged onchain at minting.
  • If the attestation results in a Standard Transfer—for example, because maxFee is below the Fast Transfer fee or minFinalityThreshold is greater than 1000—the Standard Transfer fee (currently 0) is charged onchain at minting.
  • CCTP V2 Fast Transfer Fee
  • CCTP V2 Standard Transfer Fee
Source chainFee
Arbitrum1 bps (0.01%)
Base1 bps (0.01%)
Codex2 bps (0.02%)
Ethereum1 bps (0.01%)
Linea14 bps (0.14%)
OP Mainnet1 bps (0.01%)
Polygon PoS1 bps (0.01%)
Solana1 bps (0.01%)
Unichain1 bps (0.01%)
World Chain1 bps (0.01%)

Some chains support a Standard Transfer fee switch, which enables enforcing a minimum fee during a CCTP V2 Standard Transfer.

  • Some deployments of the TokenMessengerV2 contract include a fee switch that enforces a minimum onchain fee. This fee is collected during USDC minting in a Standard Transfer. See tables below for supported chains.
  • TokenMessengerV2 contracts with fee switch support include the getMinFeeAmount function, which calculates and returns the minimum fee required for a given burn amount, in units of the burnToken.

CCTP V2 TokenMessenger Contracts (No Standard Transfer Fee Switch support)

Source ChainContract Source Code
Arbitrum7d70310
Avalanche7d70310
Base7d70310
Codex7d70310
Ethereum7d70310
Linea7d70310
OP Mainnet7d70310
Polygon POS7d70310
Sonic7d70310
Unichain7d70310
World Chain7d70310

CCTP V2 TokenMessenger Contracts (with Standard Transfer Fee Switch support)

Source ChainContract Source Code
Sei2f9a2ba
Did this page help you?
© 2023-2025 Circle Technology Services, LLC. All rights reserved.