Why rail0

Payment rails should be open.

The internet was built on protocols nobody owns. Anyone can serve a page, send an email or resolve a name, and nobody has to approve them first. That openness is why the web grew the way it did. Payments never got the same deal. Thirty years in, every online purchase still rents a rail from someone else, on terms the merchant did not write and cannot read.

Look at what happens when a card is tapped. The payment crosses an issuer, a network, an acquirer, a processor and a gateway before it reaches the merchant, and the money follows days later. Each party keeps a slice, two to three percent in all and more across a border. Each can decline a transaction, freeze an account or drop a merchant. Refunds and disputes retrace the same hops, at the same pace, with the same people deciding the outcome.

Stablecoins changed the substrate. A dollar can now move from one wallet to another anywhere in the world, in seconds, for a fraction of a cent, with no one in the middle to ask. For the first time, money moves like the internet.

But a transfer is not commerce. A transfer is final the moment it lands, and a sale rarely is. An order is confirmed, then shipped, sometimes returned, occasionally contested. Card rails gave merchants a hold, a later charge, a refund and a dispute window for exactly those moments. A raw transfer gives them none, and until now the only way to get them back was to hand the money to a processor again, with its own fees, its own terms and its own right to say no.

So we wrote the missing piece as a protocol. rail0 is a single immutable smart contract that gives a stablecoin payment the card primitives: authorize, capture and refund, with void, release and dispute around them. The buyer signs once, off-chain. The merchant submits the transaction and pays the gas, as merchants have always paid for acceptance. The contract holds the funds for the authorization window, pays the merchant on capture, in full, and returns the rest to the buyer on void, release or refund. There is no account to open, no allowance to grant, no operator to approve anyone and no fee to the protocol. The rules are public, the same for every party, and they cannot change, because no one holds a key that could change them.

The zero in the name is literal. Zero intermediaries, zero protocol fees, zero privileged operators, zero permission to deploy or to use. 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.

A rail with no accounts and no approvals is also a rail software can use. Any wallet that can sign typed data can pay or be paid, read the rules from the chain and verify every step itself. The same openness that frees a merchant from its processor lets an agent transact on its own terms. We built rail0 for humans and agents alike.

We are a commerce company, and we will build on this rail ourselves. But we did not build it to own it. The contract has no owner, and that includes us. It is deployed, documented and open to anyone who wants to use it, run it or improve it. If you build payments, we would like you to build on it with us. Open protocols are how the rest of the internet grew. Payments are the last piece.

— The rail0 team

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.