What is the CCTP CLI?
The CCTP CLI is an interactive terminal application that enables you to:- Transfer USDC seamlessly across 16 mainnet chains and 17 testnet chains
- Choose between Fast Transfer (~8-20 seconds with fee) or Standard Transfer (~13-19 minutes, no fee)
- Resume interrupted transfers using transaction hashes
- Manage wallets through private keys or Ethereum keystore files
- Configure custom RPC endpoints and default transfer values
Key Features
Interactive Terminal UI
The CLI features a rich terminal user interface (TUI) built with Bubble Tea that provides:- Real-time transfer status updates
- Step-by-step guidance through the transfer process
- Chain selection with automatic capability detection
- Wallet account selection from keystore
- Mouse and keyboard navigation support
Dual Transfer Modes
Fast Transfer
Complete transfers in 8-20 seconds using Circle’s Fast Transfer Allowance. Small fee applies (1-14 bps depending on chain).
Standard Transfer
Wait for hard finality (~13-19 minutes for most chains, ~8 seconds for instant finality chains). No fee - currently 0 bps.
Flexible Wallet Support
Authenticate using either:- Private Key: Set via
PRIVATE_KEYenvironment variable - Keystore File: Point to your Ethereum keystore directory with password protection
Configuration Management
Powered by Viper, the CLI supports multiple configuration sources with clear precedence:- Command-line flags (highest priority)
- Environment variables (with
CCTP_prefix) - Configuration file (
~/.cctp/config.yaml) - Default values
Transfer Types Explained
Fast Transfer (~8-20 seconds)
Fast Transfer (~8-20 seconds)
How it works: Uses Circle’s Fast Transfer Allowance to enable faster-than-finality transfers.Timing: ~8-20 secondsFee: 1-14 bps (0.01%-0.14%) depending on source chain
- Most chains: 1 bps (0.01%)
- Linea: 14 bps (0.14%) - highest fee
- Ink, Plume: 2 bps (0.02%)
Standard Transfer (~13-19 minutes or ~8 seconds)
Standard Transfer (~13-19 minutes or ~8 seconds)
How it works: Waits for hard finality on the source chain before Circle provides attestation.Timing:
- Most chains: ~13-19 minutes
- Instant finality chains: ~8 seconds (Avalanche, Polygon, Sei, Sonic, XDC, HyperEVM, Arc)
Auto Mode (Default)
Auto Mode (Default)
How it works: Automatically selects the best transfer type based on chain capabilities.Logic:
- Uses Fast Transfer when available (non-instant finality source chains)
- Falls back to Standard Transfer for instant finality source chains
Supported Chains
The CLI supports:- 16 Mainnet chains: Ethereum, Avalanche, OP Mainnet, Arbitrum, Base, Polygon PoS, Unichain, Linea, Codex, Sonic, World Chain, Sei, XDC, HyperEVM, Ink, Plume, and more
- 17 Testnet chains: Including Sepolia variants and dedicated testnets
Instant finality chains (Avalanche, Polygon, Sei, Sonic, XDC, HyperEVM, Arc) only support Standard Transfer when used as the source chain, but complete in ~8 seconds with no fee.
Command Structure
The CLI uses Cobra for command organization:Available Commands
transfer- Start a new USDC transferresume- Resume an existing transfer by transaction hashversion- Print CLI version informationhelp- Display help for any commandcompletion- Generate shell completion scripts
Global Flags
These flags work with all commands:--config- Path to config file (default:$HOME/.cctp/config.yaml)--testnet- Use testnet instead of mainnet--keystore- Path to Ethereum keystore directory
Typical Workflow
Follow the interactive prompts
The TUI guides you through:
- Selecting source and destination chains
- Choosing transfer type (fast/standard/auto)
- Entering amount and recipient address
- Confirming transaction details
Version Information
Current CLI version: 0.2.0 Check your installed version:Next Steps
Installation
Install the CLI using Go’s package manager
Commands
Learn all available CLI commands and flags
Configuration
Set up config files, keystores, and RPC endpoints
Quick Start
Complete tutorial from installation to first transfer