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.
Key Benefits
- Native USDC: No wrapped tokens - real USDC on every chain
- Secure: Backed by Circle's attestation service
- Fast: Typically completes in 2-5 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 Ethereum Sepolia, but merchant's wallet is on Polygon Amoy.
Same Chain (Instant)
Customer on Polygon → Merchant on Polygon
Direct transfer, no bridging needed
Cross Chain (CCTP)
Customer on Ethereum → Merchant on Polygon
CCTP burns & mints (~2-5 min)
How It Works
The entire process is handled automatically by Fivo. Here's what happens behind the scenes:
Burn on Source Chain
Customer approves USDC and calls depositForBurn() on Circle's TokenMessenger contract. USDC is burned and a message is emitted.
Attestation
Circle's attestation service verifies the burn transaction and generates a cryptographic attestation (signature) proving the burn occurred.
Fivo Polls for Attestation
Fivo's backend monitors the payment and polls Circle's API until the attestation is ready. This usually takes 1-3 minutes.
Mint on Destination Chain
Fivo automatically calls receiveMessage() on the destination chain's MessageTransmitter contract, minting USDC to the merchant.
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 6 Fivo-supported chains:
| Chain | Network | CCTP Domain | Chain ID |
|---|---|---|---|
| Ethereum | Sepolia | 0 | 11155111 |
| Avalanche | Fuji | 1 | 43113 |
| Optimism | Sepolia | 2 | 11155420 |
| Arbitrum | Sepolia | 3 | 421614 |
| Base | Sepolia | 6 | 84532 |
| Polygon | Amoy | 7 | 80002 |
CCTP Payment Status
Cross-chain payments have additional status fields you can check via the API:
| Attestation Status | Description |
|---|---|
pending_attestation | Waiting for Circle to attest the burn transaction |
ready_to_mint | Attestation received, preparing to mint |
minted | Successfully minted on destination chain |
failed | An error occurred (check failure_reason) |
Timing
Same Chain Transfer
Just blockchain confirmation time
Cross Chain (CCTP)
Burn + Attestation + Mint
Network Congestion
Costs
Cross-chain payments involve additional gas costs:
- Source chain gas: Paid by customer for burn transaction
- Destination chain gas: Paid by Fivo for mint transaction
The widget shows estimated gas costs before the customer confirms. Costs vary by chain - L2s like Arbitrum and Base are typically cheapest.
For Merchants
You don't need to do anything!
CCTP is fully automatic. Just set up your merchant wallet on your preferred chain, and Fivo handles all cross-chain complexity. 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