Skip to main content
CCTP charges fees on Fast Transfers only. Standard Transfers are free. Fast Transfer enables USDC transfers at faster-than-finality speeds by leveraging Circle’s Fast Transfer allowance. These transfers incur a fee that varies by route.
  • Fee range: 0-13 basis points depending on source blockchain, for example $0–$1.30 per $1,000 transferred
  • When and how the fee is collected: The fee is deducted from the transferred amount when USDC is minted on the destination blockchain

Get the current fee

To retrieve the current Fast Transfer fee for your route, call the GET /v2/burn/USDC/fees endpoint. For more details, see Get the fee for your transfer.

Maximum fee parameter

When calling depositForBurn, you specify a maxFee parameter that sets the maximum fee you’re willing to pay:
TypeScript
If the actual fee exceeds your specified maxFee, the transaction will revert on the source blockchain, and no USDC will be burned. To avoid transaction failures:
  1. Retrieve the current fee before initiating a transfer
  2. Add a small buffer (for example, 10-20%) to account for potential fee fluctuations
  3. Set maxFee to this buffered amount
Example:
TypeScript

Fee tables

The following tables show the current fee rates by source blockchain for Fast and Standard Transfers. Fees are subject to change at any time.
Do not hardcode fee values. Fees can change at any time. Always retrieve the current fee by calling the fee API at least once per week. Hardcoding fees can cause:
  • Insufficient fees: If fees increase, your Fast Transfers may be degraded to Standard Transfers when the provided maxFee is below the required threshold.
  • Overstated fees: If fees decrease, users may see higher fees than necessary in your UI, even though the excess is refunded during minting.
Blockchains without Fast Transfer feesSome blockchains don’t appear in the Fast Transfer fee table because their standard attestation times are already fast enough. Consequently, Fast Transfer is not applicable when these blockchains are used as the source blockchain for burns. For affected blockchains, see CCTP supported blockchains.

Standard Transfer fee switch

Some blockchains support a Standard Transfer fee switch, which enables enforcing a minimum fee during a CCTP 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 blockchains.
  • 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.
Important: Calling getMinFeeAmount on a blockchain that uses an older TokenMessengerV2 contract (without fee switch support) results in an error. Refer to the tables below to determine which contract version is deployed on each EVM blockchain.

TokenMessenger contracts without fee switch support

TokenMessenger contracts with fee switch support

Fee optimization strategies

To minimize fees while maximizing transfer speed:
  • Choose the right method: Use Fast Transfer when speed is critical and Standard Transfer when cost optimization is the priority.
  • Monitor allowance: For high-volume applications, monitor the Fast Transfer allowance and switch to Standard Transfer when it’s low.
  • Batch transfers: If you’re making multiple transfers, consider batching them during periods when Fast Transfer allowance is high.
  • Set appropriate maxFee: Always retrieve the current fee before initiating a transfer and set maxFee with a buffer to account for minor fluctuations.

Charging your own application fee

The fees described on this page are protocol fees collected by Circle. The CCTP protocol has no built-in mechanism for adding a custom application or marketplace fee to a transfer. To collect a fee from your users on top of the protocol fee, either use Bridge Kit’s custom fee support or implement the fee yourself in a smart contract or backend alongside the CCTP call (for example, by wrapping depositForBurn in a contract that also transfers a fee to your treasury).