Skip to main content
The Circle Forwarding Service is a service for Gateway that simplifies integration by removing the need for you to run multichain infrastructure. This can improve user experience for crosschain transfers by ensuring reliability and eliminating the need to handle destination chain gas fees.

How it works

A Gateway transfer without the Forwarding Service is a three-step process (assuming funds already deposited):
  1. Create burn intents to burn USDC on the source chain.
  2. Use the burn intents to request an attestation from the Circle API.
  3. Submit the attestation to the destination minter contract to mint USDC.
This process requires you to have a wallet that can sign transactions on the source and destination chains, and native tokens for paying the transaction gas fee on both chains. By enabling the forwarding service, you can pay for all the costs (base fee, transfer fee, forwarding fee) when the funds are burned on the source chain.

Enabling the Forwarding Service

To enable the Forwarding Service, add the enableForwarder=true query parameter to the /transfer endpoint:
POST /v1/transfer?enableForwarder=true
When this parameter is set to true, Gateway will handle the destination chain minting automatically, eliminating the need for managing destination chain wallets or gas fees.

Fees and execution

The Forwarding Fee includes two parts:
  • Forwarding Service fee
  • Forwarding Gas Fee
The Forwarding Service fee for each transfer:
Destination chainService fee (USDC)
Ethereum$1.25
All other chains$0.20
The Forwarding Gas fee is the amount needed to execute the mint attestation. This cost is roughly the same gas costs as the burn fees.
Solana is currently not supported for forwarding when specified as the destination chain.
The burn intent max fee will need to account for the forwarding fee.
maxFee ≥ gas fee + forwarding fee + (transfer amount * 0.00005)
For example, transferring 1,000 USDC from Base:
  • Gas fee: $0.01
  • forwarding fee: $0.21 (forwarding service and gas fee)
  • Transfer fee: 1,000 * 0.00005 = $0.05
  • Minimum maxFee: $0.27 (270,000 in USDC subunits)

Estimate fowarding fee

The /estimation endpoint can be utilized by passing in the query parameter enableForwarder=true
POST /v1/estimate?enableForwarder=true
Note that the forwardingFee includes the forwarding service and gas fees. If the maxFee specified in the first burn intent is not enough to satisfy the forwarding fee, the estimate endpoint will automatically bump up the max fee.

Fee collection

Similar to the gas fee and transfer fee, forwarding fees will also be collected when funds are burned on the source chain. The forwarding fee collection process works as follows:
  1. The forwarding fee is deducted from the maxFee of the burn intents in the order they were passed to the transfer endpoint.
  2. The system will take up to the maxFee amount from the first burn intent to satisfy the forwarding fee.
Example: If the forwarding fee is $0.25 and the request contains three burn intents with the following parameters:
  • Burn intent 1: maxFee = $0.30
    • Gas and transfer fees: $0.08
    • Available for forwarding: $0.22
  • Burn intent 2: maxFee = $0.15
    • Gas and transfer fees: $0.05
    • Available for forwarding: $0.10
  • Burn intent 3: maxFee = $0.25
    • Gas and transfer fees: $0.06
    • Available for forwarding: $0.19
The forwarding fee collection would work as follows:
  1. $0.22 is collected from burn intent 1’s available maxFee after gas and transfer fees
  2. $0.03 is collected from burn intent 2’s available maxFee to satisfy the remaining forwarding fee, totaling $0.25
  3. No forwarding fee is collected from burn intent 3 since the full forwarding fee has already been satisfied
Note that each burn intent’s maxFee must first cover the gas and transfer fees before any remaining amount can be applied to the forwarding fee.