28 chains · 10 families · one parameter
Every chain that matters, one line.
PipRail accepts and makes x402 payments on 19 EVM mainnets plus Solana, TON, Tron, NEAR, Sui, Aptos, Algorand, Stellar, and the XRP Ledger — 28 chains in all. USDC almost everywhere, USDT on most, the native coin on every one, any other token by address. Switch by changing a single string.
-
Ethereum EVM
USDC
USDT native
-
Solana Solana
USDC
USDT native
-
TON TON
USDT native
Needs a free API-keyed RPC (a toncenter key folded into rpcUrl). Ships USD₮ — there is no native USDC on TON.
-
Tron Tron
USDT native
Pays USD₮ or native TRX; gas is real TRX. No native USDC exists on Tron.
-
NEAR NEAR
USDC
USDT native
Native NEAR is zero-setup; a NEP-141 token (USDC/USDT) needs a one-time storage_deposit on the recipient.
-
Sui Sui
USDC native
-
Aptos Aptos
USDC
USDT native
-
Algorand Algorand
USDC native
Native ALGO is zero-setup; receiving USDC needs a one-time ASA opt-in on the recipient.
-
Stellar Stellar
USDC
EURC native
Recipient needs a one-time trustline for the asset and an activated, reserve-funded account; native XLM needs no trustline.
-
XRP Ledger XRPL
USDC
RLUSD native
Recipient needs a one-time trustline for the asset and an activated, reserve-funded account; native XRP needs no trustline.
-
Base EVM
USDC native
-
BNB Chain EVM
USDC
USDT native
-
Arbitrum EVM
USDC
USDT native
-
Polygon EVM
USDC
USDT native
-
Optimism EVM
USDC
USDT native
-
Avalanche EVM
USDC
USDT native
-
HyperEVM EVM
USDC native
-
Monad EVM
USDC native
-
Mantle EVM
USDC
USDT native
-
Linea EVM
USDC
USDT native
-
Scroll EVM
USDC
USDT native
-
zkSync Era EVM
USDC
USDT native
-
Celo EVM
USDC
USDT native
-
Sonic EVM
USDC
USDT native
-
Unichain EVM
USDC
USDT native
-
World Chain EVM
USDC native
-
Sei EVM
USDC native
-
Injective EVM
USDC
USDT native
Not on the list? Still works.
Built-in presets are a convenience, not an allowlist. Any other EVM chain works by passing
a { id, rpcUrl } and the token by address; the non-EVM families
auto-mount the moment you name one.
Any other EVM chain
// Any chain we don't ship — no allowlist.
requirePayment({
chain: { id: 1313161554, rpcUrl: 'https://…' },
token: { address: '0x…', decimals: 6 },
amount: '0.05', payTo,
}) Beyond EVM — auto-mounts on first use
// Name the chain — pay in its
// stablecoin, or its native coin.
requirePayment({
chain: 'solana', token: 'USDC',
amount: '0.05', payTo,
})
requirePayment({
chain: 'sui', token: 'native',
amount: '0.5', payTo, // pay in SUI
}) One-time setup, where it applies.
Most chains need nothing beyond a wallet — pay in the native coin or a stablecoin, anywhere. These are the only chains with a one-time, recipient-side step. The native coin is always zero-setup.
-
TON Needs a free API-keyed RPC (a toncenter key folded into rpcUrl). Ships USD₮ — there is no native USDC on TON.
-
Tron Pays USD₮ or native TRX; gas is real TRX. No native USDC exists on Tron.
-
NEAR Native NEAR is zero-setup; a NEP-141 token (USDC/USDT) needs a one-time storage_deposit on the recipient.
-
Algorand Native ALGO is zero-setup; receiving USDC needs a one-time ASA opt-in on the recipient.
-
Stellar Recipient needs a one-time trustline for the asset and an activated, reserve-funded account; native XLM needs no trustline.
-
XRP Ledger Recipient needs a one-time trustline for the asset and an activated, reserve-funded account; native XRP needs no trustline.
Full per-chain setup, wallet formats, and proof-binding notes: CHAINS.md →
Chains FAQ.
Coverage, tokens, and the handful of one-time setup steps.
Which chains and tokens does PipRail support?
28 chains across 10 families: 19 EVM mainnets (Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Avalanche, HyperEVM, Monad, Mantle, Sonic, Linea, Scroll, Celo, zkSync, Unichain, World Chain, Sei, Injective) plus Solana, TON, Tron, NEAR, Sui, Aptos, Algorand, Stellar, and the XRP Ledger. USDC almost everywhere, USDT on most chains, EURC on Stellar, RLUSD on XRPL, the native coin on every chain, or any other token by address. One parameter — chain — picks everything.
Do any chains need extra setup before they work?
Most don't — on EVM, Solana, Sui, and Aptos you install, add a wallet, and pay or get paid with no extra steps, in the native coin or a stablecoin. A few have one-time caveats. On Algorand, native ALGO is the zero-setup path, while receiving USDC needs a one-time ASA opt-in on the recipient. TON ships USD₮ (no native USDC) and needs an API-keyed RPC — one parameter, rpcUrl with a free toncenter key in the URL. Tron pays in USD₮ or native TRX, and gas is real TRX. On NEAR, native NEAR is zero-setup while a NEP-141 token like USDC needs a one-time storage_deposit on the recipient. Stellar and the XRP Ledger require the recipient to hold a one-time trustline and to be an activated, reserve-funded account; native XLM/XRP need no trustline. Native coin is a valid payment asset on every chain. Full per-chain setup and wallet formats are in CHAINS.md.
Can I use a chain PipRail doesn't ship a preset for?
Yes — there is no allowlist. Any other EVM chain works by passing a viem Chain or a plain { id, rpcUrl }, with the token as { address, decimals }. Built-in presets (with canonical USDC pre-filled) are a convenience, not a gate. Non-EVM families auto-mount: name a non-EVM chain and the SDK lazily imports just that family's libraries on first use, so pure-EVM installs stay lean.
How do I accept several chains in one request?
Pass an accept array to requirePayment or createPaymentGate — one challenge that offers several chains/tokens under a shared nonce, and the paying agent picks whatever it holds. Verification matches by network + asset and re-derives every field from its own trusted spec, so a forged echo can't redirect it and a proof can't be redeemed twice.
Pick a chain. Ship in one line.
The same integration pays and gets paid across all 28 — swap one word.