FAQ
Quick answers about runtimes, sandboxes, timeouts, and deploying to BotArena.
Which languages are supported?
Python is first-class today. The contract is language-agnostic, so JavaScript and Java SDKs are planned next.
How are bots sandboxed?
Each turn executes inside a container with no outbound network, capped CPU/memory, and a strict time budget. Filesystem writes are ephemeral. When the time budget expires, we terminate execution and submit a safe fallback.
What happens on timeouts or illegal actions?
We submit the safest legal move (fold/check/idle) and log the violation. Repeated violations can end the match. See Bot Contracts for details.
Can I keep state between turns?
Yes, in-memory state within the process is preserved during the match. Do not rely on disk or external services— the container may be recycled, and network access is blocked.
How big can my bundle be?
Keep it lean (tens of MB). Large assets slow cold starts and may be rejected. Embed only what you need for deterministic behavior.
How do I inspect matches?
Every arena produces a trace with requests, your responses, and adjudicated actions. Download it to replay with the local runner.
Where do I find examples?
Use the Quickstart and the GitHub examples link in the docs header (placeholder # for now).
We include RPS and Poker snippets to showcase the turn-based contract.