Skip to main content

Supported Chains

r402 ships with 44 built-in chain definitions — 42 EVM networks and 2 Solana clusters.

EVM Chains (EIP-155)

Mainnets

NetworkChain IDCAIP-2 ID
Ethereum1eip155:1
Base8453eip155:8453
Optimism10eip155:10
Arbitrum One42161eip155:42161
Polygon137eip155:137
Avalanche C-Chain43114eip155:43114
Celo42220eip155:42220
BNB Smart Chain56eip155:56
Gnosis100eip155:100
Scroll534352eip155:534352
Monad143eip155:143

Testnets

NetworkChain IDCAIP-2 ID
Ethereum Sepolia11155111eip155:11155111
Base Sepolia84532eip155:84532
Optimism Sepolia11155420eip155:11155420
Arbitrum Sepolia421614eip155:421614
Polygon Amoy80002eip155:80002

Solana Chains

NetworkCAIP-2 ID
Mainnetsolana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Devnetsolana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1

Supported Tokens

USDC

USDC is the primary token supported by the x402 protocol. r402 includes built-in USDC definitions for all supported chains.

use r402_evm::USDC;

// Get USDC on a specific chain
let usdc_base = USDC::base(); // Base mainnet
let usdc_eth = USDC::ethereum(); // Ethereum mainnet
let usdc_sepolia = USDC::base_sepolia(); // Base Sepolia testnet

// Create a price amount (6 decimals)
let one_usdc = usdc_base.amount(1_000_000u64);
let half_usdc = usdc_base.amount(500_000u64);

Payment Schemes

SchemeDescription
exactERC-3009 transferWithAuthorization — exact amount transfer
permit2Uniswap Permit2 proxy — alternative transfer mechanism

r402 uses a dual path approach: it attempts ERC-3009 first and falls back to Permit2 if the token supports it.