Skip to main content

Overview

AnySpend x402 supports payments across multiple blockchain networks including EVM-compatible chains and Solana (SVM). This page provides the complete reference of supported networks, tokens, and their contract addresses.

EVM Mainnet Networks

AnySpend x402 supports the following EVM mainnet chains:
NetworkIdentifierChain IDType
Abstractabstract2741L2
Arbitrum Onearbitrum42161L2 - Optimistic Rollup
Avalanche C-Chainavalanche43114L1
B3b38333L2
Basebase8453L2 - Optimistic Rollup
BNB Smart Chainbsc56L1
Ethereumethereum1L1
IoTeXiotex4689L1
Optimismoptimism10L2 - Optimistic Rollup
Peaqpeaq3338L1
Polygon PoSpolygon137Sidechain
Seisei1329L1
Recommended chains for production: Base (low fees, fast), Ethereum (maximum liquidity), Arbitrum (balanced)

EVM Testnet Networks

For development and testing, AnySpend supports these testnets:
NetworkIdentifierChain IDFaucet
Abstract Testnetabstract-testnet11124Abstract Faucet
Avalanche Fujiavalanche-fuji43113Fuji Faucet
Base Sepoliabase-sepolia84532Coinbase Faucet
Polygon Amoypolygon-amoy80002Polygon Faucet
Sei Testnetsei-testnet1328Sei Faucet

SVM Networks (Solana)

AnySpend also supports Solana Virtual Machine (SVM) networks:
NetworkIdentifierChain IDType
Solana Mainnetsolana101Mainnet
Solana Devnetsolana-devnet103Testnet
Solana support enables cross-VM payments - users can pay with SOL or SPL tokens while resource servers receive stablecoins on EVM chains.

Supported Tokens

USDC (Circle)

USDC is natively supported on all networks using EIP-3009 transferWithAuthorization.
NetworkContract AddressDecimalsSignature Method
Base0x833589fCD6eDb6E08f4c7C32D4f71b54bdA029136transferWithAuthorization
Ethereum0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB486transferWithAuthorization
Arbitrum0xaf88d065e77c8cC2239327C5EDb3A432268e58316transferWithAuthorization
Optimism0x0b2C639c533813f4Aa9D7837CAf62653d097Ff856transferWithAuthorization
Polygon0x3c499c542cEF5E3811e1192ce70d8cC03d5c33596transferWithAuthorization
Base Sepolia0x036CbD53842c5426634e7929541eC2318f3dCF7e6transferWithAuthorization
Usage:
const usdcAddress = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'; // Base

DAI (Stablecoin)

DAI supports EIP-2612 permit.
NetworkContract AddressDecimalsSignature Method
Base0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb18permit (EIP-2612)
Ethereum0x6B175474E89094C44Da98b954EedeAC495271d0F18permit (EIP-2612)
Arbitrum0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da118permit (EIP-2612)
Optimism0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da118permit (EIP-2612)
Polygon0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A06318permit (EIP-2612)
Usage:
const daiAddress = '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb'; // Base

USDT (Tether)

USDT support varies by network. Some implementations support permit, others don’t.
NetworkContract AddressDecimalsSignature Method
Base0xfde4C96c8593536E31F229EA8f37b2ADa2699bb26permit (EIP-2612)
Ethereum0xdAC17F958D2ee523a2206206994597C13D831ec76⚠️ No permit support
Arbitrum0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb96permit (EIP-2612)
Optimism0x94b008aA00579c1307B0EF2c499aD98a8ce58e586permit (EIP-2612)
Polygon0xc2132D05D31c914a87C6611C10748AEb04B58e8F6⚠️ No permit support
USDT on Ethereum and Polygon does not support EIP-2612 permit. Use traditional approve() + transferFrom() flow or choose a different token.

Other ERC-20 Tokens

Any ERC-20 token that implements EIP-2612 permit is supported:
  • cbBTC (Coinbase Wrapped Bitcoin)
  • LINK (Chainlink)
  • UNI (Uniswap)
  • AAVE (Aave)
  • And many more…
Check if a token supports permit:
// Check if token has permit function
const hasPermit = await token.read.permit !== undefined;

// Or check for DOMAIN_SEPARATOR (required for EIP-712)
const hasDomainSeparator = await token.read.DOMAIN_SEPARATOR !== undefined;
For detailed information about gasless signatures, see the Permit vs TransferWithAuthorization guide.

Token Configuration

Client-Side (Paying)

Specify your preferred payment token:
import { X402Client } from 'anyspend-x402-client';

const client = new X402Client({
  walletClient,
  preferredToken: '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb', // DAI on Base
  network: 'base-mainnet'
});
Or per-request:
const response = await client.request('https://api.example.com/data', {
  preferredToken: '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb' // DAI on Base
});

Server-Side (Receiving)

Configure accepted tokens and settlement currency:
import { paymentMiddleware, facilitator } from '@b3dotfun/anyspend-x402';

const endpointConfig = {
  '/api/data': {
    amount: '1.00',        // $1 worth of any token
    asset: 'USD',          // Let client choose token
    network: 'base-mainnet'
  }
};

app.use(paymentMiddleware(
  '0xYourUSDCAddress...',  // Receive USDC
  endpointConfig,
  facilitator
));

Cross-Chain Support

AnySpend can facilitate payments where the client’s token is on a different chain than the resource server’s settlement. Example:
// Client pays with DAI on Ethereum
const clientPayment = {
  token: '0x6B175474E89094C44Da98b954EedeAC495271d0F', // DAI on Ethereum
  network: 'ethereum-mainnet',
  amount: '1.0'
};

// Resource server receives USDC on Base
const serverSettlement = {
  token: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base
  network: 'base-mainnet',
  amount: '1.00'
};

// AnySpend handles:
// 1. Receive DAI on Ethereum
// 2. Bridge DAI from Ethereum → Base
// 3. Swap DAI → USDC on Base
// 4. Settle USDC to resource server
Supported Cross-Chain Routes: AnySpend supports cross-chain routing between any of the supported EVM networks, including:
  • Ethereum ↔ Base, Arbitrum, Optimism, Polygon, Avalanche
  • Base ↔ Arbitrum, Optimism, Polygon
  • L1 ↔ L2 bridging across all supported chains
  • Cross-VM: Solana ↔ EVM chains (experimental)
Cross-chain payments take longer (2-5 minutes) due to bridging time and incur additional fees (~0.5% total). Same-chain payments are recommended for the best user experience.

Gas Fees Comparison

Estimated gas costs per x402 payment (as of 2025):
NetworkUSDC PaymentToken Swap PaymentCross-Chain Payment
Base~$0.001~$0.003~0.010.01 - 0.05
B3~$0.001~$0.003~0.010.01 - 0.05
Arbitrum~$0.01~$0.05~0.10.1 - 1
Optimism~$0.01~$0.05~0.10.1 - 1
Polygon~$0.0001~$0.001~0.010.01 - 0.1
BSC~$0.01~$0.03~0.10.1 - 0.5
Avalanche~$0.02~$0.05~0.10.1 - 1
Abstract~$0.001~$0.003~0.010.01 - 0.05
Ethereum~55 - 50~1010 - 100~2020 - 200
Solana~$0.0001~$0.001~0.50.5 - 2
Gas fees are paid by the facilitator and included in the 0.25% - 0.35% AnySpend fee. Clients and resource servers don’t pay gas directly.

Testing & Development

AnySpend supports multiple testnets for development and testing. See the EVM Testnet Networks section above for the complete list of supported testnets and their faucets. For general development:
  • Base Sepolia (Chain ID: 84532) - Best testnet experience, fast and reliable
  • Solana Devnet (Chain ID: 103) - For Solana/SVM testing
For specific network testing:
  • Use the respective testnet that matches your target mainnet
  • See the EVM Testnet Networks table above for faucet links

Test Token Addresses

Contact the AnySpend team for test token addresses on specific networks, or use standard testnet faucets to get native tokens for testing.

Additional Resources

What’s Next?

Getting Help

If you need a specific token or network supported: