Docs/Cross-Chain (Bridge Kit)

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

CCTP cross-chain transfers are only available for USDC. EURC payments are same-chain only. The customer must pay from the same chain as the merchant's wallet.

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:

1

Burn on Source Chain

Customer approves USDC and calls on Circle's TokenMessenger contract. USDC is burned and a message is emitted.depositForBurn()

2

Attestation

Circle's attestation service verifies the burn transaction and generates a cryptographic attestation (signature) proving the burn occurred.

3

Attestation & Bridging

Bridge Kit automatically waits for Circle's attestation and handles the minting process. This usually takes 1-2 minutes.

4

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

CCTP Domain: 0Chain ID: 1

Avalanche

CCTP Domain: 1Chain ID: 43114

Optimism

CCTP Domain: 2Chain ID: 10

Arbitrum

CCTP Domain: 3Chain ID: 42161

Base

CCTP Domain: 6Chain ID: 8453

Polygon

CCTP Domain: 7Chain ID: 137

Unichain

CCTP Domain: 10Chain ID: 130

Linea

CCTP Domain: 11Chain ID: 59144

Sonic

CCTP Domain: 13Chain ID: 146
i
Any combination of source → destination is supported. For example: Ethereum → Polygon, Arbitrum → Base, Avalanche → Optimism, etc.

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

i

Legacy CCTP statuses

Historical payments processed by the old backend-driven CCTP relayer (before Bridge Kit) may have intermediate statuses like , , or . These no longer occur for new payments.pending_attestationready_to_mintminted_pending_transfer

Timing

Same Chain Transfer

~15-30 sec

Just blockchain confirmation time

Cross Chain (Bridge Kit)

~1-2 min

Burn + Attestation + Mint

!

Network Congestion

During periods of high network congestion, CCTP transfers may take longer (up to 15-20 minutes in extreme cases). The payment will still complete successfully - it just takes more time for attestation.

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.

i

Recommended Setup

For lowest fees, we recommend setting up your merchant wallet on an L2 like Polygon, Arbitrum, or Base. This minimizes the gas costs for cross-chain minting.

Learn More About CCTP

For technical details about Circle's Cross-Chain Transfer Protocol:

Circle CCTP Documentation