Skip to content

Supported chains

The 0xGasless facilitator currently supports three EVM networks. More are planned.

FieldValue
Network slugavalanche
Aliasesavalanche-mainnet, avax, avax-mainnet
Chain ID43114
Facilitator URLhttps://x402.0xgasless.com
Explorersnowtrace.io
USDC (canonical / EIP-3009)0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E
XSGD (StraitsX / EIP-3009)0xb2F85b7AB3c2b6f62DF06dE6aE7D09c010a5096E
USDC.e (bridged)0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664
USDT (canonical)0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7
USDT.e (bridged)0xc7198437980c041c805A1EDcbA50c1Ce5db95118
ERC-8004 identity supportedYes

USDC and XSGD are EIP-3009 native — signed authorizations settle directly against the token contract via transferWithAuthorization. No pre-approve needed.

USDT and the .e bridged tokens are not EIP-3009. The facilitator handles these via a fallback path; from your code there’s nothing different to do.

  • XSGD is the Singapore-dollar stablecoin issued by StraitsX — 1 XSGD = 1 SGD (~US$0.77), 6 decimals.
  • EIP-712 signing domain: { name: "XSGD", version: "2" }. Unlike USDC, the XSGD contract exposes no on-chain DOMAIN_SEPARATOR()/version() getters, so you cannot discover this domain from the contract — read it from GET /tokens instead of probing.
  • The contract is pausable and has an issuer blacklist (standard for regulated stablecoins). If a transfer party is blacklisted or the token is paused, /settle returns the revert reason.
  • On the 0xGasless platform, spend caps are USD-denominated: XSGD amounts are converted with the live Chainlink SGD/USD feed, so a 10 XSGD payment counts as ≈ $7.75 against your caps — not $10.
FieldValue
Network slugbase
Aliasesbase-mainnet
Chain ID8453
Facilitator URLhttps://x402.0xgasless.com
Explorerbasescan.org
USDC (canonical)0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
ERC-8004 identity supportedNot yet (planned)

Base only does the canonical EIP-3009 scheme.

ERC-8004 identity isn’t available on Base yet. Agents can still spend on Base; they just can’t have an on-chain identity NFT there.

FieldValue
Network slugavalanche-fuji
Aliasesavalanche-testnet, fuji, avax-testnet
Chain ID43113
Facilitator URLhttps://x402.0xgasless.comsame URL as mainnet
Explorertestnet.snowtrace.io
USDC (canonical / EIP-3009)0x5425890298aed601595a70AB815c96711a31Bc65
XSGD (test deployment / EIP-3009)0xd769410dc8772695A7f55a304d2125320A65c2a5
ERC-8004 identity supportedYes
AVAX faucetcore.app/tools/testnet-faucet
USDC faucetSame faucet as AVAX

Use Fuji for development. Free, no real money at stake.

AvalancheFujiBase
Typemainnettestnetmainnet
Chain ID43114431138453
Native USDC EIP-3009
XSGD (SGD stablecoin, EIP-3009)
Bridged USDC.e / USDT.e
ERC-8004 identity❌ (planned)
Real fundsyesnoyes
Your situationUse
First-time integration / testingFuji
Production, want lowest fees + AVAX gas toolingAvalanche
Production, want Base ecosystem integrationBase
Production, want on-chain identity (today)Avalanche (Base coming)
Production, multi-chainAvalanche + Base; identity on Avalanche only

Don’t hardcode these in production. Pull the current list from the facilitator:

Terminal window
# chains + token addresses
curl https://x402.0xgasless.com/list
# tokens per chain WITH settlement mode + the EIP-712 domain to sign under
curl https://x402.0xgasless.com/tokens

/list contains chain IDs, token addresses, and aliases. /tokens additionally tells you, per token, whether it settles gaslessly with one signature (settlement: "eip3009", no approve) or needs a one-time approve of the relayer (settlement: "a402"), and the exact EIP-712 domain to sign. See Facilitator API → /tokens.

Nothing about the x402 flow changes per token — you just point asset at the token you want and sign under that token’s domain:

  1. GET /tokens → find the token on your chain. For XSGD on Avalanche: address 0xb2F8…096E, settlement: "eip3009", domain { name: "XSGD", version: "2" }.
  2. Sign a TransferWithAuthorization typed message with the payer’s key: domain { name: "XSGD", version: "2", chainId: 43114, verifyingContract: <token address> }, message { from, to, value, validAfter, validBefore, nonce } (value in 6-decimal base units — "10000000" = 10 XSGD).
  3. POST /settle with { paymentPayload: { token: <token address>, payload: { authorization, signature } }, paymentRequirements: { chainId: 43114 } }.

The facilitator submits transferWithAuthorization on-chain and pays the gas — the payer needs zero AVAX and no prior approve. Managed platform wallets (server wallets and agent wallets) can do the same via POST /v1/agent/x402/sign with "tokenSymbol": "XSGD" — the platform signs with the custodied key and enforces USD spend caps at the live SGD/USD rate.

Not currently supported. EVM-only for now.

  • Facilitator API/list returns the same data programmatically.
  • Self-hosting — run your own facilitator with whichever chains you want.