Network Identifiers (CAIP-2)
x402 uses CAIP-2 standard network identifiers (namespace:reference) for unambiguous cross-chain support:
- EVM networks:
eip155:<chainId>— any EVM chain is supported (e.g.,eip155:8453for Base) - Solana:
solana:<genesisHash>(first 32 bytes of the genesis block hash) - TON (TVM):
tvm:<workchain>(e.g.,tvm:-239for mainnet,tvm:-3for testnet) - Algorand:
algorand:<reference>— URL-safe base64 of the genesis hash, first 32 characters (Algorand CAIP-2 profile) - Stellar:
stellar:<network>(pubnetortestnet) - Aptos:
aptos:<chainId>(e.g.,aptos:1for mainnet) - Hedera:
hedera:<network>(mainnetortestnet) - Keeta:
keeta:<networkId>(e.g.,keeta:21378for mainnet) - NEAR:
near:<network>(mainnetortestnet) - Concordium:
ccd:<genesisHash>(e.g.,ccd:9dd9ca4d19e9393877d2c44b70f89acbfor mainnet) - XRPL:
xrpl:<networkId>(e.g.,xrpl:0for mainnet,xrpl:1for testnet) - Cardano:
cardano:<network>(mainnet,preprod, orpreview). CIP-34 aliases (cip34:1-764824073,cip34:0-1,cip34:0-2) are accepted as input aliases and normalized to the canonical form.
Token Support
x402 supports tokens on EVM, Solana, TON, Algorand (AVM), Stellar, Aptos, Hedera, Keeta, NEAR, Concordium, XRPL, and Cardano networks:
Facilitators support networks, not specific tokens — any compatible token works on any facilitator that supports that network.
For NEAR, the payer signs a delegated NEP-141 transfer. The facilitator relayer sponsors NEAR gas and the required
1 yoctoNEAR deposit, so the payer spends only the NEP-141 token amount.
Production Network Support
Protocol support and production support are related but not identical:- Protocol support means x402 can express payment requirements and payloads for that network.
- Runtime support means your server can register the network and use a compatible scheme implementation.
- Production support means you also have a facilitator path that works for your deployment model: a production facilitator provider, a self-hosted facilitator, or self-facilitation.
eip155:<chainId> network at the protocol level. The operational question is whether you have a production settlement path for that network.
EVM: Asset Transfer Methods
x402 supports two asset transfer methods on EVM, selected automatically based on token capabilities:
Both methods provide gasless transfers (facilitator sponsors gas), signature-based authorization, and secure payments. EIP-3009 is preferred when available (simpler, no approval step). Permit2 serves as the universal fallback.
Permit2 approval: Requires a one-time onchain approval. x402 supports two gas sponsoring extensions that make this step gasless — see EIP-2612 Gas Sponsoring and ERC-20 Approval Gas Sponsoring.
EVM: Batch settlement (batch-settlement)
For high-frequency or repeated micropayment flows where settling every request onchain is too costly, x402 supports the batch-settlement scheme on EVM: the buyer deposits once into an escrow contract, signs off-chain vouchers per request, and sellers redeem in batches onchain. Per-request pricing still uses an up-to ceiling (PaymentRequirements.amount); actual charges can vary per request within that limit—see Batch settlement.
Specifying Payment Amounts
When configuring payment requirements, you have two options:- Price String (e.g.,
"$0.01") — The system uses the chain’s default stablecoin. Only works on chains with a configured default. - TokenAmount — Specify exact
amountInAtomicUnits+ asset address. Works on any chain with no configuration needed.
Using Custom ERC-20 Tokens
To use a custom ERC-20 token, you need three key pieces of information:- Token Address: The contract address of your ERC-20 token
- EIP-712 Name: The token’s name for EIP-712 signatures
- EIP-712 Version: The token’s version for EIP-712 signatures
- Name: Read the
name()function - Example on Basescan - Version: Read the
version()function - Example on Basescan
eip712 nested object when configuring TokenAmount:
Default Assets for Dollar-String Pricing
When you use"$0.01" syntax, x402 needs to know which stablecoin to use. The following chains have pre-configured defaults. For chains not listed, use registerMoneyParser() or specify the price directly as a TokenAmount with amountInAtomicUnits. To contribute a new default asset, see Contributing a New Default Asset below.
EVM
Solana (SVM)
TON (TVM)
Algorand (AVM)
Stellar
Aptos
Hedera
HBAR (native token) is also supported using asset ID
0.0.0, with amounts in tinybars (1 HBAR = 10⁸ tinybars).
Keeta
NEAR
Cardano
ADA (lovelace) is also supported natively using asset
lovelace, with amounts in lovelace (1 ADA = 1,000,000 lovelace). The client pays the Cardano network fee; the facilitator only broadcasts the signed transaction and requires no funded wallet.
Adding Support for New Networks
There are two distinct paths, depending on your goal:- Runtime Registration — use any network in your own server code without modifying the x402 source. No PR required.
- Contributing a New Default Asset — upstream a chain so it appears in the default-asset tables above and supports
"$0.01"dollar-string pricing out of the box. Requires a PR updating the TypeScript, Go, and Python SDK registries.
Runtime Registration
x402 uses dynamic network registration — you can support any EVM network without modifying source files.- TypeScript
- Go
- Python
- Use CAIP-2 format:
eip155:<chainId>for any EVM network - The scheme implementation handles the network automatically
- You only need a facilitator that supports your target network, or you can run your own facilitator, or self-facilitate
Production checklist for a new EVM network
Before you treat a new EVM network as production-ready in your application, confirm all of the following:- You know which token you want to accept and whether it uses EIP-3009 or Permit2.
- You have a production settlement path for that network:
- a managed production facilitator,
- a self-hosted facilitator,
- or self-facilitation.
- You have decided whether to use explicit
TokenAmountpricing or contribute a default asset for dollar-string pricing.
TokenAmount configuration first. That keeps the integration path clear even before a chain is added to the default-asset tables.
Contributing a New Default Asset
To add a chain to the default-asset tables above so that dollar-string pricing ("$0.01") works out of the box, open a PR against x402-foundation/x402. Follow the cross-SDK walkthrough in DEFAULT_ASSETS.md, which names every file in the TypeScript, Go, and Python registries that must be updated.
Facilitators
Network support in x402 depends on which facilitator you use. See Facilitators for recommended production options.x402.org Facilitator
- Supports:
eip155:84532(Base Sepolia),solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1(Solana Devnet),stellar:testnet(Stellar Testnet),aptos:2(Aptos Testnet),hedera:testnet(Hedera Testnet),xrpl:1(XRPL Testnet) - Notes: Recommended for testing and development. This is the default facilitator in the x402 packages and requires no setup.
Production Facilitators
Multiple production-ready facilitators are available supporting various networks including Base, Solana, Polygon, Avalanche, and more. See Facilitators for available options.Quick Reference
Running Your Own Facilitator
If you need immediate support or want to test before contributing, you can run your own facilitator. Video Guide: Adding EVM Chains to x402 Prerequisites- Access to an RPC endpoint for your target network
- A wallet with native tokens for gas sponsorship
- The x402 facilitator code
Getting Help
- Join the x402 Slack community
- Check the x402 GitHub repository
Summary
Key takeaways:- Any EVM chain is supported via
eip155:<chainId>— plus Solana, TON (TVM), Algorand (AVM), Stellar, Aptos, Hedera, Keeta, NEAR, Concordium, XRPL, and Cardano - Default assets are a convenience for
"$0.01"dollar-string pricing; explicitTokenAmountworks on any chain - Any ERC-20 token works on any EVM facilitator (via EIP-3009 or Permit2)
- CAIP-2 identifiers provide unambiguous cross-chain support
- Quickstart for Sellers — Start accepting payments on supported networks
- Core Concepts — Learn how x402 works under the hood
- Facilitator — Understand the role of facilitators
- MCP Server — Set up AI agents to use x402 payments