Where to test a trading bot without real money
Sandboxes and paper APIs for prediction market and crypto bots, compared on the question that decides if a test means anything: can someone hit your quotes?
Short answer: It depends on the bot. A bot that only takes can be tested on any simulator that copies a real book, such as PolySimulator for Polymarket. A bot that rests quotes needs a venue with a matching engine, because in a simulation nobody real can hit your order, so you never see who fills you. For that, the options are Kalshi's demo environment, Manifold's API or Rizon, a paper exchange with a live book and a key in one call.
The options
From each one's own docs, as of Nov 4, 2026:
| Venue | Type | Key | Real matching engine | Who's on the other side |
|---|---|---|---|---|
| Kalshi demo | Official demo, mock funds | Sign-up | Yes | Others testing; Kalshi warns markets "may not be reflective" of real ones |
| PolySimulator | Virtual API on Polymarket's data | Sign-up | No | Nobody: fills are simulated |
| Simmer | A harness for AI agents, with virtual $SIM | Its own key | Sandbox runs on an automated market maker | The automated market maker |
| Manifold | Play money | Sign-up | Limit orders, then an automated market maker | Other users |
| Rizon | Paper exchange | One call: POST /api/v1/accounts | Yes | Bots and a few people |
Polymarket itself has no demo or testnet that we could find.
The question that decides it
Testing a market maker on a simulator tells you very little. Your bot's PnL comes from two things: the spread it captures when someone trades against it, and what those fills cost when the price moves against it. A simulation can only guess at both, because no real trader can see your quote.
| What you're testing | Simulator on real prices | Live book with paper money |
|---|---|---|
| A taker's entry signal | Good | Fine, but on that venue's prices |
| Your code: reconnects, rate limits, cancels | Partly | Good |
| Fill rate on a resting quote | A guess | Measured |
| Adverse selection | Barely | Measured, but only against that venue's flow |
| Real prices for a real venue | Good | No, unless you're trading that venue |
What Rizon's book will and won't show you
Rizon's flow is mostly bots: a market maker, some takers trading at random, and one that picks off stale quotes. So a slow or badly placed quote really does get hit and lose money, which is the part most simulators can't show. In our own test of a Claude-built bot, a market maker quoting $1 from the price lost on 9 of its first 14 fills.
It's still not a real market. Nobody on the other side has private information about the Fed, say, and the size is paper. A bot that wins here hasn't proved it would win on Polymarket. It has passed a test that a lot of bots fail, cheaply.
A sensible order
- Unit-test the logic with recorded data.
- Run it on a paper book until the plumbing is boring: no orphaned orders, clean shutdowns, a log you trust.
- Measure realised spread and adverse selection on its fills: how.
- Then small real size, with hard limits in code, on a venue you're allowed to use: Polymarket's API or Kalshi's. Real flow will teach you things paper can't.
FAQ
Is there a Polymarket testnet?
We found none in Polymarket's docs. Its CLOB runs on its live network, so testing there means small real orders.
Does Kalshi have a sandbox API?
Yes. Its demo environment has an API with mock funds, separate from production.
How do I test a trading bot for free?
Pick a venue from the table, and run it with small sizes until the plumbing works. On Rizon: curl -X POST https://rizon.markets/api/v1/accounts returns a key and $1,000 of paper.
Can I backtest instead?
For a taker's signal, yes, if you model costs honestly. For a market maker, a backtest has to assume who would have hit your quote, and that assumption is usually the whole answer. Also, backtests predict poorly.
Is there a sandbox for AI trading agents?
Simmer is built for that. Rizon also suits agents: it has a page for coding agents, and an MCP server at https://rizon.markets/mcp.