Overview
The CCTP Go SDK and CLI is a comprehensive toolkit for building cross-chain USDC transfers using Circle’s Cross-Chain Transfer Protocol (CCTP) V2. Whether you’re building a Go application or need a quick command-line tool, this package provides everything you need to move USDC seamlessly across 16 mainnet and 17 testnet EVM chains.Key features
Importable Go SDK
Use CCTP functionality directly in your Go applications with a clean, type-safe API
Fast Transfer support
Complete transfers in ~8-20 seconds with Fast Transfer (small fee applies)
Standard Transfer support
Free transfers in ~13-19 minutes, or ~8 seconds on instant finality chains
18+ EVM chains
Support for all CCTP V2 EVM chains including Ethereum, Arbitrum, Base, Polygon, and more
Multiple wallet support
Works with Geth keystore files and private keys
Real-time tracking
Monitor transfer progress with detailed fee information and status updates
Beautiful terminal UI
Interactive CLI with a polished terminal user interface
V2 contract bindings
Type-safe Go Ethereum V2 contract bindings for all CCTP contracts
Supported chains
The SDK supports 16 mainnet chains and 17 testnet chains:Mainnet chains (18)
Mainnet chains (18)
- Ethereum (Domain 0)
- Avalanche (Domain 1) - Instant finality
- OP Mainnet (Domain 2)
- Arbitrum (Domain 3)
- Base (Domain 6)
- Polygon PoS (Domain 7) - Instant finality
- Unichain (Domain 10)
- Linea (Domain 11)
- Codex (Domain 12)
- Sonic (Domain 13) - Instant finality
- World Chain (Domain 14)
- Sei (Domain 16) - Instant finality
- XDC (Domain 18) - Instant finality
- HyperEVM (Domain 19) - Instant finality
- Ink (Domain 21)
- Plume (Domain 22)
Testnet chains (10)
Testnet chains (10)
- Ethereum Sepolia
- Avalanche Fuji
- OP Sepolia
- Arbitrum Sepolia
- Base Sepolia
- Polygon PoS Amoy
- Linea Sepolia
- Arc Testnet
- Unichain Sepolia
- Codex Testnet
- Sonic Testnet
- World Chain Sepolia
- Sei Testnet
- XDC Apothem
- HyperEVM Testnet
- Ink Testnet
- Plume Testnet
Transfer types
Fast Transfer
~8-20 seconds with a small fee (1-14 bps depending on source chain). Best for time-sensitive transfers. Available on most chains when used as source.
Not available when instant finality chains are the source
Standard Transfer
~13-19 minutes with no fee, or ~8 seconds on instant finality chains. Best for cost-sensitive transfers. Available on all chains.
Get started
Quickstart
Complete your first USDC transfer in minutes
Installation
Install the SDK and CLI tool
SDK guide
Learn how to use the SDK in your Go applications
CLI guide
Master the command-line interface
Package structure
The SDK is organized into clear, focused packages:Prerequisites
- Go 1.25.2 or later
- For CLI usage: A wallet’s private key stored in Geth keystore
Next steps
Install the SDK
Follow the installation guide to add the SDK to your project or install the CLI tool.
Complete the quickstart
Run through the quickstart guide to execute your first transfer.
Explore the SDK
Dive into the SDK documentation to learn about all available features.