Note: Circle keeps 10% of the custom fee you collect from your end users.
Fees breakdown
Every transfer can incur the following fees:- Your custom fee: The extra amount you charge on top of the transfer. Circle keeps 10% of this amount. The remaining 90% goes to the fee recipient you configure on the source blockchain.
- CCTP protocol fee: For Fast Transfers only, CCTP collects ~1 bps of the
transfer amount before forwarding the remaining funds to the destination.
Standard Transfers (
SLOWspeed) do not incur this fee. For how to configure the transfer speed, seeConfigure Transfer Speed and Maximum Cost.
Funds flow
The following example shows what happens when a user initiates a 1,000 USDC Fast Transfer with a 1% custom fee:- The user initiates a 1000 USDC transfer on the source blockchain.
- You add a 10 USDC (1%) custom fee.
- The source wallet signs a transaction for 1,010 USDC (transfer amount + custom fee).
-
The 10 USDC custom fee is split on the source blockchain:
- Circle receives 1 USDC (10%) .
- Your fee recipient receives 9 USDC (remaining 90%).
- The 1000 USDC transfer amount is forwarded to CCTP.
- CCTP takes a 0.10 USDC (1 bps on the transfer amount) protocol fee for a Fast Transfer.
- The destination wallet receives 999.90 USDC on the destination blockchain.
Best practices
Follow these best practices when implementing custom fees:- Treat the custom fee as an amount added on top of the transfer. Do not subtract it from the transfer amount.
- Validate that the user’s wallet balance covers both the transfer and the custom fee. The following code shows an example balance check:
TypeScript
- Use a fee recipient address on the source blockchain. Do not use an address on the destination.
- In your UI, display the following to the user before they confirm the
transaction:
- The total source wallet debit: transfer amount + custom fee
- The full fee breakdown: transfer amount, custom fee, CCTP Fast Transfer fee (if applicable)
- Return human-readable decimal strings. For example,
10rather than10000000for 10 USDC. Bridge Kit handles base-unit conversion internally.