Skip to main content

Overview

CCTP Go SDK supports 16 mainnet chains and 17 testnet chains across multiple EVM networks. All chains use standardized contract addresses for CCTP V2.

Mainnet Chains (18)

ChainDomainChain IDInstant FinalityUSDC Address
Ethereum01No0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Avalanche143114Yes0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E
OP Mainnet210No0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85
Arbitrum342161No0xaf88d065e77c8cC2239327C5EDb3A432268e5831
Base68453No0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Polygon PoS7137Yes0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
Unichain101301No0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Linea1159144No0x176211869cA2b568f2A7D4EE941E073a821EE1ff
Codex125115No0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Sonic13146Yes0x29219dd400f2Bf60E5a23d13Be72B486D4038894
World Chain14480No0x79A02482A880bCE3F13e09Da970dC34db4CD24d1
Sei161329Yes0x3894085Ef7Ff0f0aeDf52E2A2704928d1Ec074F1
XDC1850Yes0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
HyperEVM19998Yes0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Ink2157073No0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Plume2298865No0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

Mainnet Contract Addresses

All mainnet chains use the same CCTP V2 contract addresses:
  • TokenMessengerV2: 0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d
  • MessageTransmitterV2: 0x81D40F21F12A8F0E3252Bccb954D722d4c464B64

Testnet Chains (17)

ChainDomainChain IDInstant Finality
Ethereum Sepolia011155111No
Avalanche Fuji143113Yes
OP Sepolia211155420No
Arbitrum Sepolia3421614No
Base Sepolia684532No
Polygon PoS Amoy780002Yes
Unichain Sepolia101301No
Linea Sepolia1159141No
Codex Testnet125115No
Sonic Testnet1357054Yes
World Chain Sepolia144801No
Sei Testnet161328Yes
XDC Apothem1851Yes
HyperEVM Testnet19999Yes
Ink Testnet21763373No
Plume Testnet22161221135No
Arc Testnet265042002Yes

Testnet Contract Addresses

All testnet chains use the same CCTP V2 contract addresses:
  • TokenMessengerV2: 0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA
  • MessageTransmitterV2: 0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275

Instant Finality Chains

These chains have instant finality, enabling faster Standard Transfers (~8 seconds instead of 13-19 minutes): Mainnet:
  • Avalanche (Domain 1)
  • Polygon PoS (Domain 7)
  • Sonic (Domain 13)
  • Sei (Domain 16)
  • XDC (Domain 18)
  • HyperEVM (Domain 19)
Testnet:
  • Avalanche Fuji (Domain 1)
  • Polygon PoS Amoy (Domain 7)
  • Sonic Testnet (Domain 13)
  • Sei Testnet (Domain 16)
  • XDC Apothem (Domain 18)
  • HyperEVM Testnet (Domain 19)
  • Arc Testnet (Domain 26)
Fast Transfer is not available when instant finality chains are the source, as Standard Transfer already provides fast confirmation.

Getting Chains in Code

import "github.com/circlefin/cctp-go"

// Get all mainnet chains
mainnetChains := cctp.GetChains(false)

// Get all testnet chains
testnetChains := cctp.GetChains(true)

// Get chain by domain
chain, err := cctp.GetChainByDomain(0, false) // Ethereum

// Get chain by name (type-safe with constants)
chain, err := cctp.GetChainByName(cctp.Arbitrum, false)

Chain Name Constants

The SDK provides constants for type-safe chain references: Mainnet:
cctp.Ethereum
cctp.Avalanche
cctp.OPMainnet
cctp.Arbitrum
cctp.Base
cctp.PolygonPoS
cctp.Unichain
cctp.Linea
cctp.Codex
cctp.Sonic
cctp.WorldChain
cctp.Sei
cctp.XDC
cctp.HyperEVM
cctp.Ink
cctp.Plume
Testnet:
cctp.EthereumSepolia
cctp.AvalancheFuji
cctp.OPSepolia
cctp.ArbitrumSepolia
cctp.BaseSepolia
cctp.PolygonPoSAmoy
cctp.LineaSepolia
cctp.UnichainSepolia
cctp.CodexTestnet
cctp.SonicTestnet
cctp.WorldChainSepolia
cctp.SeiTestnet
cctp.XDCApothem
cctp.HyperEVMTestnet
cctp.InkTestnet
cctp.PlumeTestnet

RPC Endpoints

The SDK provides default public RPC endpoints for all chains. You can override them:
chains := cctp.GetChains(false)

customRPCs := map[string]string{
    cctp.Ethereum: "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY",
    cctp.Arbitrum: "https://arb-mainnet.g.alchemy.com/v2/YOUR_KEY",
    cctp.Base:     "https://base-mainnet.g.alchemy.com/v2/YOUR_KEY",
}

chains = cctp.ApplyRPCOverrides(chains, customRPCs)

See Also

Transfer Types

Learn about Fast and Standard transfers

Finality

Understand finality thresholds

Chain API

Chain type reference

RPC Overrides

Custom RPC configuration

Build docs developers (and LLMs) love