CCTP Commands
Cross-Chain Transfer Protocol (CCTP) enables secure USDC transfers between Solana and EVM chains. These commands manage CCTP policies and execute bridge transfers.view-policy
View the current CCTP policy showing allowed destination addresses by domain.Arguments
NoneOptions
NoneExamples
Output
- 0: Ethereum
- 1: Avalanche
- 2: Optimism
- 3: Arbitrum
- 6: Base
- 7: Polygon PoS
allowlist-destination
Add a destination address to the CCTP allowlist for a specific domain.Arguments
CCTP domain identifier (e.g., 0 for Ethereum, 3 for Arbitrum)
Destination address (EVM address by default, or base58 if —base58 flag is used)
Options
Treat destination address as base58-encoded Solana address instead of EVM address
Skip confirmation prompt and execute immediately
Examples
Add Ethereum address with confirmation:Output
Error Cases
- Fails if destination is already in the allowlist
- Fails if address format is invalid
remove-destination
Remove a destination address from the CCTP allowlist.Arguments
CCTP domain identifier
Destination address to remove (EVM address by default, or base58 if —base58 flag is used)
Options
Treat destination address as base58-encoded Solana address instead of EVM address
Skip confirmation prompt and execute immediately
Examples
Remove Ethereum address:Output
bridge-usdc
Bridge USDC from Solana to an EVM chain. The USDC is burned on Solana and can be minted on the destination chain.Arguments
Amount of USDC to bridge (in USDC units, e.g., 100.5)
CCTP domain identifier for destination chain
Recipient address on destination chain (EVM address by default)
Options
Address authorized to call receive on destination chain
Maximum fee in basis points (e.g., 1 = 0.01%, 100 = 1%)
Treat addresses as base58-encoded instead of EVM addresses
Use fast transfer mode with lower finality threshold (1000 vs 2000)
Skip confirmation prompt and execute immediately
Examples
Bridge 100 USDC to Ethereum:Output
Behavior
- Validates destination is in allowlist (if policy exists)
- Converts amount to base units (6 decimals for USDC)
- Calculates max fee based on amount and max-fee-bps
- Sets finality threshold (1000 for fast, 2000 for normal)
- Burns USDC on Solana
- Emits attestation for Circle attestation service
Finality Thresholds
See CCTP Finality Thresholds:- Normal (2000): Higher security, longer wait time
- Fast (1000): Lower finality requirement, faster but slightly less secure
receive
Receive USDC on Solana from an EVM chain bridge transfer.Arguments
Source domain identifier where USDC was burned
Options
Transaction hash from source chain (hex string starting with 0x). Either txHash or nonce is required.
Nonce from burn message (hex string starting with 0x). Either txHash or nonce is required.
Examples
Receive using transaction hash:Output
Behavior
- Fetches attestation from Circle’s attestation service
- Validates the message
- Mints USDC to the vault on Solana
- Uses CCTP lookup table for transaction optimization
Requirements
- Either
--txHashor--noncemust be provided - The burn transaction must be attested by Circle (may take a few minutes)
- The message must be addressed to this vault
list
List all CCTP bridge events (incoming and outgoing) for the vault.Arguments
NoneOptions
Fetch events starting from this slot number
Batch size for RPC requests. Higher values reduce latency but require higher RPC rate limits.
Commitment level (processed, confirmed, finalized)
Examples
List all events:Output
JSON object containing:vaultState: Vault state PDAvaultPda: Vault PDAincoming: Array of incoming bridge eventsoutgoing: Array of outgoing bridge events
CCTP Workflow
Bridging FROM Solana to EVM:
-
Set up policy - Add destination addresses to allowlist
-
Bridge USDC - Burn USDC on Solana
- Wait for attestation - Circle attestation service processes the burn (usually 2-20 minutes)
- Mint on destination - Use Circle’s SDK or UI on destination chain to complete the transfer
Bridging TO Solana from EVM:
- Burn on source chain - Use CCTP on source EVM chain to burn USDC
- Wait for attestation - Circle processes the attestation
-
Receive on Solana - Complete the transfer