Get paid in USDT.
Hold your own keys.
We host checkout, the API, webhooks and your dashboard. Funds land on addresses only you can sweep.
$ curl -X POST $STABLERAILS_API_URL/v1/invoices
{"data":{"id":"inv_9f2c41d0","status":"pending","payAddress":"TWd4…n5pQ"}}[watcher] solid block 83 412 907 · two RPCs agreestatus: paid · receipt confirmed by BOTH providers[webhook] 200 · X-Stablerails-Signature: sha256=9f2c…{"data":{"id":"inv_9f2c41d0","status":"pending","amountUsdt":"27.310000","payAddress":"TWd4…n5pQ"}} [watcher] solid block 83 412 907 · two RPCs agree status: payment_detected receipt confirmed by BOTH providers → status: paid [webhook] 200 · X-Stablerails-Signature: sha256=9f2c… $ sweep requires your passphrase, on your machine. that part stays human.
Hand it to your agent: /agents → · or pay in the live demo →
From sign-up to paid
Create an account
Email and a password. No company, no KYB, no approval queue.
Connect your wallet
Paste an xpub and a sweep address from a wallet you control. Keys never leave your machine; we physically cannot hold your funds.
Grab your API key
Checkout, webhooks and the dashboard are already wired on our domain. Hand the docs to your developer or your agent.
Get paid
Create invoices via the API, customers pay USDT on a hosted checkout, two independent RPCs confirm, your webhook fires.
Sweep on your schedule
Funds sit on addresses only you can spend from. Pull them to your wallet with one local command and your passphrase.
sign up → first invoice: ~5 min · payment → confirmed: ~1 min · sweep: whenever you decide
Keys never leave your machine.
We host the rails. You hold the keys.
Our servers cannot steal your funds. Neither can your AI agent.
- The server we host is watch-only
- Zero keys on it. Full compromise, worst case: an attacker reads invoice metadata. Funds untouchable.
- Signing is local, human, deliberate
- Sweeps are signed only via the local CLI on your machine, behind a passphrase, with optional Touch ID. No passphrase, no movement.
- Destination pinned locally
- The sweep destination is pinned on your machine. A fully compromised server cannot redirect a sweep to an attacker.
- Two RPCs must agree
- Two providers must read the same on-chain receipt at a solid block. Disagree: nothing credits, retry next tick. Never a false 'paid'.
- AI agents get readonly keys
- Agents can run your store: create invoices, read events, watch sweeps. They physically cannot move your money.
- 100% open source
- Every line is public, signer included. 1,000+ offline tests: clone, run, audit.
- No lock-in
- Funds already sit in addresses you control; your data exports in one call. Self-host the same software and keep going.
- Survives the project
- AGPL-3.0 is irrevocable. The code is yours to run forever, with us or without us.
What it costs
Free while we're in beta. There is no per-payment fee, hosted or self-hosted: the software has no fee code path. You are never billed a cut of what you collect.
If the rails earn their keep, you'll be able to support hosting directly. Either way, what your customers pay is what lands in your wallet.
Built for the agentic web
MCP server included. Machine-readable /llms.txt. JSON output everywhere. An AI agent can integrate your store, create invoices and watch payments, except the one thing it must never do: touch your passphrase.
You point it at the docs
/agents →A copyable prompt and the MCP config. Your agent reads the API and gets to work.
It runs on a readonly key
/agents.md →Everything an agent needs to operate the store, plus a hard boundary: on a readonly key, even a misled agent can't move funds.
What's in the box
HMAC-signed webhooks
Signed delivery with retries. Verify the signature, trust the event.
X-Stablerails-Signature: sha256=9f2c41d0…
Per-invoice HD addresses
A fresh deposit address for every invoice, derived from your xpub. No address reuse.
Hosted checkout + payment links
A ready checkout page with QR, countdown and live status. Share a link, get paid.
Merchant dashboard
Invoices, payments and API keys behind your own login, scoped to your store.
Two-RPC finality
Two independent providers must agree on a solid block before anything reads as paid. Never 0-conf.
Readonly keys for agents
Hand an AI agent a key that can run the store but physically cannot move funds.
Tron USDT today
USDT (TRC-20) shipped. Polygon, Ethereum and USDC are tracked in the open.
Self-host anytime
The exact same software runs on your own VPS, free forever. No lock-in, one export away.
$ docker compose up -d
Prefer full sovereignty?
Run the exact same software on your own VPS: your URL, your data, free forever. One Docker command, an agent prompt, or from source. Leaving hosted later is one export away, and your keys already work everywhere.
Self-host it →Non-custodial, by architecture
- KYC
- none
- company / legal entity
- not required
- our access to your keys
- zero, by design
- our access to your funds
- zero, you sweep locally
- per-payment fee
- $0, no fee code path
Start accepting USDT
Hand it to your agent: /agents → · or pay in the live demo →