Bridge
The Bridge page lets you transfer USDC between Arc Testnet and other supported EVM chains. It uses Circle's Cross-Chain Transfer Protocol (CCTP) and Circle's Bridge Kit SDK.
How the Bridge Works
CCTP operates by burning USDC on the source chain and minting native USDC on the destination chain. The process involves:
- Approve — allow the TokenMessenger contract to spend your USDC.
- Burn — call
depositForBurnon the source chain's TokenMessenger. - Attestation — wait for Circle's attestation service to sign the burn event.
- Switch Network — switch your wallet to the destination chain.
- Mint — call
receiveMessageon the destination chain's MessageTransmitter.
Supported Chains
| Chain | Chain ID | CCTP Domain | USDC Decimals |
|---|---|---|---|
| Arc Testnet | 5042002 | 26 | 18 |
| Ethereum Sepolia | 11155111 | 0 | 6 |
| Avalanche Fuji | 43113 | 1 | 6 |
| Arbitrum Sepolia | 421614 | 3 | 6 |
| Base Sepolia | 84532 | 6 | 6 |
| Optimism Sepolia | 11155420 | 2 | 6 |
| Polygon Amoy | 80002 | 7 | 6 |
Bridge Kit (Primary Interface)
The main bridge UI uses Circle's @circle-fin/bridge-kit SDK (BridgeKitBridge component). This provides a streamlined bridging experience with built-in transaction tracking.
CCTP Manual Bridge
A lower-level CCTP interface (CCTPBridge component) is also available for users who need more control. It exposes each step of the CCTP flow individually and supports an "external burn" mode for recovering transactions where the burn was initiated outside the UI.
Transaction Recovery
The bridge includes automatic recovery for incomplete transactions:
- On page load, the app scans all supported chains for pending bridge transactions associated with your wallet.
- Recovered transactions appear in the Pending Transactions panel.
- You can also manually add a transaction hash via Add Manual Transaction.
- Completed and pending bridges are stored in Bridge History (local storage).
Key Contract Addresses (Arc Testnet)
| Contract | Address |
|---|---|
| TokenMessenger | 0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA |
| MessageTransmitter | 0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275 |
| Native USDC | 0x3600000000000000000000000000000000000000 |