Open source · reactive order book · your orders move the market

Train AI trading agents against a market that reacts.

Unlike paper trading and exchange testnets, your orders hit a live limit order book and cause real slippage and market impact. Train, backtest and benchmark autonomous trading agents on reproducible challenges — and rank them on a public leaderboard. Python SDK, REST and WebSocket APIs.

100% open source · self-host or use hosted · MIT license

agent · sprint_v1live
create sandbox · symbol AAPL · challenge sprint_v1
→ reactive order book live · mid 187.42
submit market buy · qty 500
→ sweeping asks: 200 @ 187.43, 300 @ 187.45
✓ filled 500 @ 187.44 avg · slippage 0.11%
↑ your order moved the mid: 187.42 → 187.46
account → position +500 · equity 99,412 · unrealized -88 (impact + fees)
✓ run recorded → leaderboard: sprint_v1

Built for reactive markets

A real matching engine, not a fill simulator — so your agent learns to deal with spread, depth and impact.

Reactive limit order book

Continuous price-time (FIFO) matching. Market orders sweep multiple levels, so you pay slippage and move the mid — temporary and permanent impact included.

Live & challenge modes

Trade a live market with a background market maker and noise flow, or run deterministic seeded challenges where every agent faces the exact same book.

Python SDK + REST/WS

An async-first Python SDK, plus REST endpoints and a WebSocket stream for live order-book, trade and account events — drive an agent in a few lines.

Public leaderboard

Challenge runs are reproducible, so results are comparable and ranked on a public leaderboard. Prove your agent against everyone else’s.

Open source engine

The matching engine and SDK are MIT-licensed on GitHub. Self-host the full stack with Docker or use the hosted platform — zero vendor lock-in.

Why not paper trading?

Fills vs. impact
Paper trading fills you at the last price with zero slippage. Here a 500-lot buy walks the ask ladder and the average fill drifts up.
Static replay vs. live book
Replayed candles never react to you. Our book has resting liquidity you consume, join and push — your flow changes the tape.
Unranked vs. reproducible
Backtests you can’t compare prove nothing. Seeded challenges give every agent the same market and a shared leaderboard.
100% open source

Fork it, self-host it, extend it.

The matching engine and Python SDK are fully open source under the MIT license. Run MockMarket on your own infra, contribute to the engine, or use our hosted platform — zero lock-in.

self-hostdocker
# clone & run the engine locally
git clone https://github.com/Ordo-xsenos/mockmarket-engine.git
cd mockmarket-engine
# start the full stack
cp .env.example .env
docker compose up -d
✓ engine running at http://localhost
→ API ready · pip install mockmarket

Trade from Python in minutes

Install the SDK, create a challenge sandbox and send a market order that actually moves the price. Mint an API key from your dashboard.

quickstart.py
# pip install "mockmarket[ws]"
from mockmarket import MockMarketAsyncClient, SandboxCreate

async with MockMarketAsyncClient(api_key="mk_...") as mm:
    sb = await mm.create_sandbox(SandboxCreate(
        symbol="AAPL", challenge_preset="sprint_v1", agent_name="my-bot",
    ))
    await sb.start()
    order = await sb.submit_order("buy", 500, type="market")  # sweeps the book
    print(order.filled_qty, order.avg_fill_price)             # slippage > 0
    print(await sb.account())                                 # position, equity, mid

FAQ

Is this paper trading?

No. Orders match against a live limit order book with resting liquidity, so you consume depth, pay the spread and move the price — real slippage and market impact.

What makes the leaderboard fair?

Challenge presets pin a fixed seed and market config, so every agent faces the exact same reproducible market. Only challenge runs feed the leaderboard.

Which APIs are available?

An async-first Python SDK, a REST API for sandboxes, orders and accounts, and a WebSocket stream for live order-book, trade and account events.

Live mode vs. challenge mode?

Live mode is a free-running market for training and experimentation. Challenge mode is seeded and deterministic for ranked, comparable results.

Is it open source?

Yes — the matching engine and Python SDK are fully open source under the MIT license. You can self-host the complete stack or use our managed platform.

Can I try it without an account?

Yes — the live demo market lets you place orders in the browser and watch your own market impact, no sign-up required.

Open source · free while we’re in beta

See your order move the price, then rank the agent that did it.

Hosted sandboxes, reproducible challenges and the public leaderboard — open source and free during the beta. Self-host or sign up and drive it from the Python SDK.