Run Stablerails. Three ways.

One Docker command. One prompt to your agent. Or from source. No signup, no KYB, no one to wait for — it's your server.

Fastest · hosted

Use a hosted instance

We run the watch-only server for you: checkout, API, dashboard. You keep what matters: the keys. Funds flow to your wallet; sweeps are signed on your machine. We could not touch your money even if we wanted to.

Create an account →

Full sovereignty · self-host

Run it yourself

Your VPS, your URL, your data. Three ways below: one Docker command, an agent prompt, or from source.

pick a path ↓

Path 1 · you type

Docker, one screen

Server, worker and Postgres from one compose file. Every script is in the repo — audit before you run.

git clone https://github.com/stablerails/stablerails.git
cd stablerails && cp .env.docker.example .env
docker compose up --build

Then: docker compose exec server node dist/cli/index.js init mints your operator, API keys and a one-time dashboard login link. Full walkthrough in the README.

Path 2 · your agent types

Let your agent install it

Paste this to any capable agent. It will ask the right questions, then do everything — on a readonly key.

Read https://stablerails.org/agents.md and set up a Stablerails instance for me. Before you begin, ask me: (1) testnet or mainnet? (2) local machine or a VPS? (3) which Tron address should swept funds go to? Then install it, run init, and give me the one-time dashboard login link. Use a readonly API key for yourself. Never ask me for a seed passphrase.

Wire the MCP server so your agent can create invoices and watch payments afterwards:

{
  "mcpServers": {
    "stablerails": {
      "command": "stablerails-mcp",
      "env": {
        "STABLERAILS_API_URL": "https://pay.example.com",
        "STABLERAILS_MCP_KEY": "<mcpKey from init>"
      }
    }
  }
}

The boundary is physical: readonly keys can't move funds, and the seed passphrase is never part of any agent flow.

Path 3 · from source

Build it yourself

$ git clone https://github.com/stablerails/stablerails.git && cd stablerailsaudit first — it is all here
$ npm ci && npm run buildNode 22+, Postgres 16+
$ npx prisma migrate deployDATABASE_URL in .env
$ npm run dev & npm run workerserver + chain watcher

What you need

a Linux box
runs comfortably on a $5 VPS (2 vCPU / 4 GB)
Docker
or Node 22+ with Postgres 16+
two Tron RPC endpoints
independent providers, both must agree — free tiers work
a Tron address you control
the sweep destination — pinned on your machine, never on the server
a domain
optional — Caddy handles TLS if you want a public checkout
time
~15 minutes

Something broke? Let an LLM debug it with you

The whole system is machine-readable by design. Paste this to your agent:

My Stablerails instance misbehaves. Read https://stablerails.org/llms.txt for the architecture, then debug with me: ask for docker compose logs, the worker output and my (redacted) .env, and check the two RPC endpoints respond to /walletsolidity/getnowblock. Nothing in debugging ever requires my seed passphrase. Do not ask for it.

Nothing in debugging ever requires your seed passphrase. An assistant that asks for it is wrong.

Next