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.
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.
Run it yourself
Your VPS, your URL, your data. Three ways below: one Docker command, an agent prompt, or from source.
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.
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.
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 watcherWhat 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.