Permissionless stablecoin payments for commerce.

Online commerce still runs on rails someone else owns: every payment passes through intermediaries that take a fee and can say no. Stablecoins made money move like the internet, but a transfer alone is not a sale. Commerce needs funds held at checkout, charged at shipment and refunded on return. rail0 brings those primitives, authorize → capture → refund, to stablecoins in one immutable contract that nobody owns and nobody operates. It is the open payment rail the internet never had, for humans and agents alike.

The zero is literal

Four zeros between buyer and merchant.

The zero in rail0 is not branding — it counts what the protocol removes. Nothing sits between the two parties, nothing is skimmed off the top, no one holds a key that can change the rules, and no one decides who is allowed in. It also marks day zero: the moment payments stop being a service rented from someone else's network and become a commodity protocol, the way HTTP is.

0

Intermediaries

Buyer and merchant transact peer-to-peer. The contract routes nothing to anyone else.

0

Protocol fees

Every captured token reaches the merchant in full. The contract takes nothing.

0

Privileged operators

No owner, no admin, no pauser, no upgrade path. The code is fixed at deploy time.

0

Permission

Anyone can deploy the contract. Anyone can use it. No gatekeeper to ask.

Protocol overview

One contract, zero operators.

The buyer signs once off-chain; the merchant submits and pays gas. Funds flow straight from payer to payee through the rail0 escrow — authorize in, capture out, and void, refund, or release back to the buyer. No processor, no gateway, no privileged operator in the path.

rail0 protocol flow: payer authorizes or charges into the rail0 escrow, the payee captures, and refund / void / release return funds to the payer rail0 protocol flow: payer authorizes or charges into the rail0 escrow, the payee captures, and refund / void / release return funds to the payer rail0 protocol flow: payer authorizes or charges into the rail0 escrow, the payee captures, and refund / void / release return funds to the payer rail0 protocol flow: payer authorizes or charges into the rail0 escrow, the payee captures, and refund / void / release return funds to the payer

Read how the protocol works →

How it works

One signature. No allowance.

01 — PAYER

Signs, never broadcasts

The buyer signs an EIP-3009 ReceiveWithAuthorization over the token's domain — like a signed check. Any wallet that signs typed data works: no smart-account wallet, no bundler, no approval.

02 — PAYEE

Submits and pays gas

The merchant submits the transaction and absorbs the cost of acceptance — the way they always have under card networks. On stablecoin-native chains, gas is paid in the same asset being settled.

03 — CONTRACT

Binds terms to the signature

rail0 derives a deterministic EIP-3009 nonce from the exact payment terms. Tamper with any field and the recovered signer won't match — the token reverts. No separate intent typehash needed.

Signatures, nonces and the Payment struct →

Deployments

Works on multiple chains.

rail0 is not tied to any one chain. It runs on any network that meets two hard requirements: an EVM that compiles Solidity 0.8.31 and supports the Cancun fork, and tokens that expose the EIP-3009 receiveWithAuthorization entrypoint — the off-chain signature the whole protocol is built on. That's the entire bar. Anyone can deploy it, permissionlessly, wherever those conditions hold.

ChainTestnetMainnetStablecoins
Arbitrum Sepolia Live Mainnet Planned USDC
Arc Testnet Live — USDC, EURC
Avalanche Fuji Live Mainnet Planned USDC, EURC*
Base Sepolia Live Mainnet Planned USDC, EURC*
Celo Sepolia Live Mainnet Planned USDC, USD₮
Ethereum Sepolia Live Mainnet Planned USDC, PYUSD
Monad Testnet Live Mainnet Planned USDC
Optimism Sepolia Live Mainnet Planned USDC
Plasma Testnet Planned — USDT0
Polygon Amoy Live Mainnet Planned USDC
Sei Testnet Live Mainnet Planned USDC
Sonic Testnet Live Mainnet Planned USDC
Unichain Sepolia Live Mainnet Planned USDC
World Chain Sepolia Live Mainnet Planned USDC, EURC*
Tempo Awaiting EIP-3009 TIP-20

* Mainnet only.

Start building

Build on rail0.

Call the contract directly, or let the rail0 API Gateway build, broadcast and track every transaction for you. Either way the buyer only signs, and every captured token reaches the merchant in full. The documentation covers both, with examples in curl, TypeScript, Ruby and Go.