TokenMessengerWithFees
contract to spend the USDC transfer amount plus the fee (if you’re paying it in
USDC), then pay the quoted fee and submit the burn in one call to that contract
on the source blockchain. Because Circle collects the fee separately from the
USDC transfer, the recipient receives the full transferred amount.
Benefits of paying fees upfront
By default, CCTP deducts fees from the USDC you move. Both Fast Transfer and Forwarding Service fees are set through themaxFee parameter on the burn and taken from the transferred amount, so the
amount minted is smaller than the amount burned. The exact fee resolves at
attestation time. To deliver a specific amount, you have to burn that amount
plus the fees and account for fee variability.
Paying fees upfront changes this:
- Deliver an exact amount without extra math. You burn exactly the amount the recipient receives and pay the fees separately, so you don’t need to inflate the burn to cover the Fast Transfer and Forwarding Service fees. The recipient receives the full amount, whether the transfer uses Fast Transfer, the Forwarding Service, or both.
- Pay in the native gas token or USDC. You choose whether the fee is charged in the source blockchain’s native gas token or in USDC.
- Predictable pricing. A signed quote fixes the fee for a short expiry window, so you know the exact cost before you submit the transfer. Circle honors the quote and processes the transfer at the quoted price even if fees rise after you request it, as long as you submit before the quote expires.