Cross-Chain Payments
How Fivo handles payments across different blockchains automatically.
What is CCTP?
CCTP (Cross-Chain Transfer Protocol) is Circle's native protocol for moving USDC between blockchains. Unlike wrapped tokens or bridges, CCTP burns USDC on the source chain and mints native USDC on the destination chain - ensuring you always receive real, native USDC.
USDC only
Key Benefits
- Native USDC: No wrapped tokens - real USDC on every chain
- Secure: Backed by Circle's attestation service
- Fast: Typically completes in 1-2 minutes
- Automatic: Fivo handles everything for you
When Does CCTP Activate?
CCTP is triggered automatically when:
Customer's payment chain ≠ Merchant's receiving chain
Example: Customer pays with USDC on , but merchant's wallet is on .EthereumPolygon.
Same Chain (Instant)
Customer on Polygon → Merchant on Polygon
Direct transfer, no bridging needed
Cross Chain (Bridge Kit)
Customer on Ethereum → Merchant on Polygon
Bridge Kit handles burn, attestation & mint (~1-2 min)
How It Works
The entire process is handled client-side by Circle's Bridge Kit SDK inside the Fivo widget. No backend involvement needed:
Burn on Source Chain
Customer approves USDC and calls on Circle's TokenMessenger contract. USDC is burned and a message is emitted.depositForBurn()
Attestation
Circle's attestation service verifies the burn transaction and generates a cryptographic attestation (signature) proving the burn occurred.
Attestation & Bridging
Bridge Kit automatically waits for Circle's attestation and handles the minting process. This usually takes 1-2 minutes.
Mint on Destination Chain
Bridge Kit automatically handles the attestation and minting on the destination chain, delivering USDC directly to the merchant's wallet.
Payment Complete
Native USDC is now in the merchant's wallet on their preferred chain. Payment status updates to "completed".
Supported Routes
CCTP supports transfers between all 9 Fivo-supported chains:
Ethereum
0Chain ID: 1Avalanche
1Chain ID: 43114Optimism
2Chain ID: 10Arbitrum
3Chain ID: 42161Base
6Chain ID: 8453Polygon
7Chain ID: 137Unichain
10Chain ID: 130Linea
11Chain ID: 59144Sonic
13Chain ID: 146| Chain | CCTP Domain | Chain ID |
|---|---|---|
| Ethereum | 0 | 1 |
| Avalanche | 1 | 43114 |
| Optimism | 2 | 10 |
| Arbitrum | 3 | 42161 |
| Base | 6 | 8453 |
| Polygon | 7 | 137 |
| Unichain | 10 | 130 |
| Linea | 11 | 59144 |
| Sonic | 13 | 146 |
Payment Status
With Bridge Kit, cross-chain payments complete entirely in the widget before notifying the backend. The payment arrives with status . No intermediate states.completed
Same-chain
Status: (instant)completed
Cross-chain (Bridge Kit)
Status: (after bridge finishes in widget, ~1-2 min)completed
Legacy CCTP statuses
pending_attestationready_to_mintminted_pending_transferTiming
Same Chain Transfer
Just blockchain confirmation time
Cross Chain (Bridge Kit)
Burn + Attestation + Mint
Network Congestion
Costs
Cross-chain payments involve additional gas costs:
- Source chain gas: Paid by customer for the burn transaction
- Destination chain gas: Included in the cross-chain fee (charged to customer, not to the merchant)
The widget shows the full fee breakdown before the customer confirms. The merchant always receives the exact product amount. All fees are paid by the customer. Costs vary by chain: L2s like Arbitrum and Base are typically cheapest.
For Merchants
You don't need to do anything!
Cross-chain bridging is fully automatic. Just set up your merchant wallet on your preferred chain, and Bridge Kit handles all cross-chain complexity in the widget. Your customers can pay from any supported chain, and you'll receive native USDC on your chain.
Recommended Setup
Learn More About CCTP
For technical details about Circle's Cross-Chain Transfer Protocol:
Circle CCTP Documentation