Fees breakdown
Each spend can include the following fees:| Fee | When it applies | Amount | Recipient |
|---|---|---|---|
| Custom spend fee | Conditionally. When you implement custom spend fees. | You define (carved from the spend amount). | 90% to your fee recipient; 10% to Arc |
| Gateway protocol fee | Conditionally. On spends where the source and destination differ (crosschain). | 0.5 basis points (0.005%) of the spend amount from the Unified Balance at spend time; 0 if same blockchain. | Circle Gateway (protocol underlying Unified Balance) |
| Gas | Always. On spends that execute burn intents on source blockchains. | Varies by source blockchain and network conditions; incurred per burn intent on source. | Source blockchain |
| Forwarding Service fee | Conditionally. When you use the Forwarding Service for the destination mint. | Per Forwarding Service fees. Deducted from amount minted on destination. | Circle |
Total balance and funds flow
The following example shows what happens when a user spends 500 USDC from a Unified Balance of 1,000 USDC (previously deposited), you collect a 5 USDC custom fee on that spend, and the Forwarding Service is enabled:User deposits into the Unified Balance
The user previously deposited 1,000 USDC from their wallet on the source
blockchain into the Unified Balance.
User requests the spend on the destination blockchain
The user requests to spend 500 USDC on the destination blockchain.
User signs burn intents on the source chains
The user’s source wallet signs three burn intents that move:
- 495 USDC (the spend amount minus the 5 USDC custom fee) toward the destination mint.
- 0.50 USDC (10% of the custom fee) to Arc.
- 4.50 USDC (90% of the custom fee) to your fee recipient.
Circle Gateway applies the cross-chain transfer fee
Circle Gateway deducts a 0.025 USDC transfer fee from the Unified Balance
(0.005% of 500 USDC). For a same-chain spend, this fee is 0.
Source chains deduct gas for the burn intents
The source blockchains deduct 0.03 USDC from the Unified Balance as gas for the
three burn intents.
Forwarding Service deducts the destination mint fee
The Forwarding Service deducts its fee (0.20 USDC in this example) from the
amount to be minted on the destination blockchain.
Recipient receives funds on the destination blockchain
The recipient’s destination wallet receives 494.80 USDC on the destination
blockchain:
- 495 USDC minted.
- Deduct 0.20 USDC Forwarding Service fee.
- Net received: 494.80 USDC.
Best practices for custom fees
Follow these best practices when implementing custom fees:- Use a fee recipient address on the source blockchain. Do not use an address on the destination.
- Before the user confirms a spend, show:
- Unified Balance summary: starting balance, each deduction (spend amount, Gateway transfer fee when applicable, gas), and remaining balance.
- Spend summary: requested spend amount, fee breakdown (custom fee and Forwarding Service fee when applicable), and net amount credited on the destination.
- Return human-readable decimal strings. For example, return
"10"rather than"10000000"for 10 USDC. App Kit handles base-unit conversion internally. - Validate that the user’s Unified Balance can cover the spend amount, the Gateway protocol fee, and gas. For gas and fee estimates, see estimate spend fees. Example check:
TypeScript