Skip to content
Limited-preview stage. External-account admission and onboarding are complete; broader recorded-game evidence and open self-service intake remain later.

Bot Arena Overview

Bot Arena is the game layer on top of Reef. Bots compete in deterministic simulated markets, but their orders still enter the same venue as everyone else. That keeps the arena more interesting than a backtest: bot behavior can change liquidity, fills, and outcomes for other bots.

Each bot starts with capital, risk limits, visible market data, and an allowed action set. The simulator drives seeded market conditions and background participants. Bots observe the public snapshot, choose orders, and compete under a scoring mode.

Competitor bots are not passive observers. Their orders enter the simulated venue, affect liquidity and price formation, and influence other bots’ outcomes. Alongside them:

  • operator-controlled market-maker bots (public behavior)
  • operator-controlled background-traffic bots
  • optional built-in benchmark bots for calibration

Current local modes cover equity-sprint-style runs and multi-instrument liquidity/provider tuning. Planned modes include a momentum challenge, market-making trial, low-drawdown/survival league, execution-quality challenge, and an aggregate season across modes.

bot artifact -> sandbox runtime -> Bot SDK interface -> arena runtime protocol
-> arena adapter/orchestrator -> schema validation -> arena risk gate
-> venue command gateway -> platform runtime -> matching engine
-> events, read models, analytics, leaderboard

The matching engine does not need special arena behavior. The arena adapter turns bot actions into normal venue commands with actor identity, command IDs, idempotency keys, trace/causation IDs, run ID, and bot version metadata.

Built:

  • ReefBotV1 SDK contract and TypeScript authoring model (see Bot SDK Quickstart)
  • Registration/qualification harness, deterministic tick runner, SES-compatible hosted runner, and opt-in live read clients for market data, bars, own orders, and data availability
  • Arena control-plane registry: bot identity, bot versions, artifact hashes, approval lifecycle (draft → submitted → checks_passed → approved → active / suspended / quarantined / banned / archived), operator decisions, run records
  • Bot-originated orders can flow through the real venue command boundary with bot client identity and pre-acceptance risk checks (a quarantined bot version is rejected before order acceptance)
  • Local positive/negative persisted smoke gates, static operator report rendering, report-index rendering, hosted/local report readMode evidence, and a shared-time multi-instrument simulation proof with 5 active symbols and 18 bots
  • GitHub PR validation, container-isolated fixture qualification, trusted OpenBao provisioning, post-merge registry sync, GitHub OAuth/Admin DB identity, owner-scoped bot config, and a deployed public leaderboard; the same-repository smoke bot has passed this lifecycle end to end
  • A separate Arena control-plane artifact and Compose overlay, with Reef-only route absence/storage independence and Arena-enabled route/persistence gates
  • Fork submissions persist as pending_invite_review; SHA-bound maintainer approval automatically dispatches a trusted base-branch provisioning workflow without executing fork code
  • Named external-account admission/onboarding through the Noodle smoke submission and follow-up fixes
  • Persisted cutoffs, roster locking, immutable run/policy binding, and local three-policy economic reconciliation

Not ready for open release:

  • Sandboxed execution at scale connected to a dedicated arena runtime protocol (gRPC/protobuf)
  • Production-grade modular game-mode loading, final scoring policies, and replay UI
  • Remaining hosted game/recovery drills and multi-seed policy campaign evidence
  • Open-intake contributor materials and a labelled public scored run; initial invite onboarding and cutoff/roster implementation are complete

The chosen next release is an invite-only, fork-based preview. The trusted handoff and external-account onboarding are complete, and Reef/Arena separation is promoted. Broader release still depends on recorded hosted-game, replay, scoring, and operations evidence; local onboarding success alone does not open self-service intake.