PipRail
PipRail · Guide

Every Chain PipRail Supports for x402 Payments

An AI agent should be able to pay with whatever it already holds — on whatever chain that lives on. PipRail covers 29 chains from a single parameter. Here is every one, the tokens on each, and the design choice that lets it reach chains it has never heard of.

John Weeks
Founder, PipRail
7 min read

Most payment SDKs answer “which chains do you support?” with a list they maintain — an allowlist, baked into a release, that grows one pull request at a time. PipRail answers it differently: chain details are data the caller passes, not an allowlist the SDK ships. The built-in presets are a convenience — each comes with its canonical USDC address already filled in — but they are not a fence. Name a preset, or hand the SDK a chain it has never seen, and it pays either way.

That is the whole idea behind one parameter. The chain: value you pass selects the network, its sensible RPC default, the native coin, and the right stablecoin addresses — all at once. Going from Base to Solana, or from Polygon to the XRP Ledger, is a one-word change in your code and nothing else.

// A built-in preset — the canonical USDC address is pre-filled for you:
new PipRailClient({ chain: 'base', wallet: { key } })

// Switch chains by changing one word:
new PipRailClient({ chain: 'solana', wallet: { key } })

// Any other EVM chain works too — pass a viem Chain or a plain { id, rpcUrl }:
new PipRailClient({ chain: { id: 100, rpcUrl: '' }, wallet: { key } })

The 20 EVM mainnets

Every major EVM chain is a built-in preset, with its Circle-native USDC pre-filled. If a chain you want is not in this list, you do not wait for us to add it — you pass it as a viem Chain or a bare { id, rpcUrl }, and it just works.

Built-in EVM presets
EthereumBaseArbitrumOptimismPolygonBNB ChainAvalancheHyperEVMMonadMantleSonicLineaScrollCelozkSyncUnichainWorld ChainSeiInjectiveKaia
Twenty EVM mainnets, each with canonical USDC ready to go. Any other EVM chain works by being passed in.

The nine non-EVM families

This is where breadth stops being a number and starts being an advantage. PipRail does not just speak EVM — it puts the payer’s own wallet on Solana, TON, Tron, NEAR, Sui, Aptos, Algorand, Stellar and the XRP Ledger, each as a self-contained driver that mirrors the others file-for-file. The libraries for these chains are optional peers that load only when you name one, so a pure-EVM install never pays for them.

Solana
USDC · USDT · SOL
exact + onchain-proof
NEAR
USDC · USDT · NEAR
exact + onchain-proof
Aptos
USDC · USDT · APT
exact + onchain-proof
Algorand
USDC · ALGO
exact + onchain-proof
Stellar
USDC · EURC · XLM
onchain-proof
TON
USDT · GRAM
onchain-proof
Tron
USDT · TRX
onchain-proof
Sui
USDC · SUI
onchain-proof
XRP Ledger
RLUSD · XRP
onchain-proof
The native coin is a first-class payment asset on every family. Where a stablecoin is absent (no Circle USDC on TON or Tron, for instance) it is because that chain has no Tether- or Circle-native version, not because PipRail left it out.

A few of these chains have a one-time receive prerequisite, and PipRail is honest about it rather than failing silently: NEAR and Algorand need a one-time token registration on the recipient, Stellar and the XRP Ledger need a trustline and an activated account, and the planPayment() call surfaces exactly that with a RECIPIENT_NOT_READY blocker and a one-line funding hint. Paying with the native coin sidesteps all of it.

The tokens, in one rule

You do not have to memorize a matrix. The coverage follows a simple rule, and everything else is an address away:

  • USDC — on almost every chain (Circle-native, pre-filled).
  • USDT — on most chains, wherever there is a Tether-native (not bridged) version.
  • EURC — on Ethereum, Base, Avalanche and Stellar (every one EIP-3009, so exact-payable).
  • RLUSD — on the XRP Ledger. On BNB Chain, also FDUSD, USD1 and U.
  • The native coin — ETH, SOL, XRP, TRX, NEAR, and so on — a valid payment asset on every family.
  • Anything else — by address, on any chain. Every shipped token address is verified on-chain before release.
USDC almost everywhere, the native coin everywhere, and an open door for the rest.

Why breadth is the point

An agent does not get to choose what it holds when it meets a paywall. It holds what it holds — maybe USDC on Base, maybe SOL on Solana, maybe XRP because that is where its budget lives. A rail that only speaks one chain forces a bridge, a swap, and a wait before the agent can do the one thing it was asked to do: pay and move on. A rail that speaks twenty-nine lets it pay with what it has.

That is why PipRail treats chains as data and not as a gate. The list above is what ships today, verified address by verified address — but the design is built so the list is never the limit. Name a chain. If we have a preset, you get USDC for free. If we do not, pass it in. Either way, your agent pays.

Share Post on X
John Weeks
Founder, PipRail

Building PipRail — the open, neutral, no-fee x402 payment rail for AI agents, across 29 chains. Writing about how agents pay, and the trust layer the agent economy still has to build.

Frequently asked

How many chains does PipRail support for x402 payments?

Twenty-nine, across ten families. Twenty are EVM mainnets — Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Avalanche, HyperEVM, Monad, Mantle, Sonic, Linea, Scroll, Celo, zkSync, Unichain, World Chain, Sei, Injective and Kaia — and nine are non-EVM families: Solana, TON, Tron, NEAR, Sui, Aptos, Algorand, Stellar and the XRP Ledger. You select any of them with a single chain: parameter, and any other EVM chain works by passing it directly.

Which chains support USDC?

Almost all of them. Circle-native USDC is pre-filled on nearly every EVM chain and on Solana, NEAR, Sui, Aptos and Algorand. The exceptions are chains where there is no Circle-native USDC — TON and Tron ship USDT instead, and the XRP Ledger ships RLUSD. The native coin (ETH, SOL, XRP, and so on) is a valid payment asset on every chain, and any other token works by address.

Can I pay on a chain that is not built in?

Yes, for any EVM chain. The built-in presets are a convenience — each ships with its canonical USDC address pre-filled — but the SDK does not gatekeep. Pass a viem Chain object or a plain { id, rpcUrl } and PipRail will pay on it. Chain details are data the caller provides, not an allowlist the SDK ships.

Does naming a non-EVM chain bloat a pure-EVM install?

No. The non-EVM driver libraries (for Solana, TON, NEAR, and the rest) are optional peer dependencies that lazy-load only when you actually name a non-EVM chain. A pure-EVM install never downloads them — the built EVM bundle has zero static non-EVM imports.

What is the difference between the exact scheme and onchain-proof?

Both are ways to prove a payment. onchain-proof is PipRail’s universal rail: the payer broadcasts their own transfer and the merchant verifies the transaction locally — it works on every chain. exact is the ratified x402 scheme, where the buyer signs an authorization and the payment can be settled gaslessly; PipRail implements it on five families (EVM, Solana, Aptos, NEAR and Algorand). Where exact is available, an agent can also pay standard x402 servers that expect it.

Which stablecoins can I accept?

USDC almost everywhere; USDT on most chains (omitted where the local “USDT” is a bridged token rather than Tether-native); EURC where Circle issues it — Ethereum, Base, Avalanche and Stellar; RLUSD on the XRP Ledger; and the native coin on every chain. On BNB Chain, PipRail also ships FDUSD, USD1 and U. Any other token can be paid by passing its address.

Build on the open rail.

PipRail is the open, self-custody x402 rail — no backend, no middleman, no fee. Name a chain, add a wallet, get paid across 29 of them.

More writing