CCTP: How to bridge USDC between blockchains
How Circle's Cross-Chain Transfer Protocol works, why it matters, and step-by-step instructions for bridging USDC safely.
What is CCTP?
Cross-Chain Transfer Protocol (CCTP) is Circle's official solution for moving USDC between different blockchains. Unlike third-party bridges that lock tokens on one chain and mint wrapped versions on another, CCTP actually burns USDC on the source chain and mints fresh native USDC on the destination chain.
This distinction matters. When you use CCTP, you end up with real, Circle-issued USDC on the destination chain, not a wrapped or bridged token backed by a smart contract. That eliminates an entire category of risk.
Why CCTP is better than traditional bridges
Traditional bridges work by locking your USDC in a smart contract on chain A and minting a synthetic "wrapped" version on chain B. Your USDC on chain B is only as safe as the bridge's smart contract. If that contract gets hacked, your funds are gone. Bridge hacks have resulted in billions of dollars in losses across crypto.
CCTP removes this risk. Here's the flow: 1. You send USDC to CCTP on the source chain 2. CCTP burns that USDC (it's destroyed) 3. Circle verifies the burn through its attestation service 4. CCTP mints the exact same amount of fresh, native USDC on the destination chain 5. The new USDC appears in your wallet
No wrapping. No synthetic tokens. No smart contract holding your funds. The USDC on both sides is equally real and equally backed by Circle's reserves.
Supported chains
CCTP currently supports transfers between these networks:
Ethereum, Base, Arbitrum, Optimism, Polygon, Avalanche, Solana, Noble (Cosmos), and more are being added.
You can transfer between any pair of supported chains. Send USDC from Ethereum to Solana, from Base to Arbitrum, from Polygon to Avalanche, or any other combination. The protocol handles the burn-and-mint process regardless of the source and destination.
How to use CCTP: step by step
The easiest way to use CCTP is through an interface that integrates it. You don't need to interact with CCTP contracts directly.
Option 1: Through Coinbase. If you have USDC on Coinbase, you can withdraw to any supported network. Coinbase uses CCTP behind the scenes. Select the destination network, enter your wallet address, and Coinbase handles the rest. Often free for Coinbase users.
Option 2: Through a bridge aggregator. Platforms like Across, LI.FI, or Socket route through CCTP when it's the best path. Enter the source chain, destination chain, amount, and the platform figures out the optimal route. Look for routes labeled "CCTP" or "Circle" for the safest option.
Option 3: Direct integration. Developers can integrate CCTP directly using Circle's SDK. This is relevant if you're building an app that needs cross-chain USDC transfers.
Transfer times vary by chain but typically take 10-20 minutes. This is slower than some third-party bridges (which take seconds) because CCTP waits for sufficient block confirmations to ensure security.
Fees
CCTP itself doesn't charge a fee. The only costs are the gas fees on the source and destination chains. Since you're executing transactions on both chains, you'll need the native token of each.
Source chain gas: Varies (under $0.01 on Base, Solana, Arbitrum; $1-10 on Ethereum) Destination chain gas: Usually handled by the interface you're using, but may require a small amount of the destination chain's native token
When using CCTP through Coinbase, gas fees are often waived or included. Through third-party interfaces, expect to pay both source and destination gas plus a small interface fee (typically 0.05-0.1%).
CCTP vs other bridging options
CCTP: Safest option. Native USDC on both sides. No wrapping risk. Takes 10-20 minutes. No protocol fee.
Across: Fast (seconds to minutes). Uses its own liquidity pool. Slightly more expensive but much faster. Good for time-sensitive transfers.
Stargate: LayerZero-based. Fast, broad chain support. Uses liquidity pools. Small fee.
Wormhole: Broad chain support. Uses "wrapped" tokens (introduces smart contract risk). Fast but has had security incidents in the past.
For USDC transfers specifically, CCTP is the gold standard. The extra 10-20 minutes of wait time is worth it for the security of receiving genuine native USDC instead of a wrapped token. For time-sensitive transfers of smaller amounts, Across is a good alternative since it also results in native USDC.
Tips for safe bridging
Always start with a test transaction. Send $5-10 through CCTP before transferring larger amounts to verify everything works as expected.
Make sure you have gas tokens on both chains. You'll need ETH (or the respective native token) on both the source and destination chains to pay for transactions.
Don't use unfamiliar bridge interfaces. Stick to known platforms (Coinbase, Across, LI.FI) or Circle's official tools. Fake bridge sites are a common phishing vector.
Check that you're receiving native USDC, not bridged/wrapped USDC. In your wallet, verify the token contract address matches Circle's official USDC contract on that chain. You can find official addresses on Circle's developer documentation.
Be patient. CCTP takes 10-20 minutes by design. The wait ensures your transfer is secure. If a bridge promises instant transfers, it's not using CCTP and may involve additional smart contract risk.