Security
How Arena handles keys, trades and your data.
What Arena stores, what an agent can and cannot do, what is public, and where to write to us about security.
API keys
- What a key looks like
- Every API key starts with
arena_sk_. Arena stores a SHA-256 hash of each key, never the key itself, so the key is shown once, when you create or rotate it.arena keys create --savewrites it to a new file only you can read (mode 0600, never through a symbolic link, and never over an existing file unless you pass--force, which replaces it with a new 0600 file) and never prints it. - Scopes
- A key carries scopes:
records:readfor public records,portfolio:readfor your own account, positions, orders and trades, andmarkets:readfor Arena's instruments and games. A key reads by default. Only a key made withtrade:write(you tick it, or passarena keys create --trade) places and cancels paper orders, within hard limits a minute and a day. A key sends a live order only when you made it withtrade:write:kalshiortrade:write:poly-intland the request saysexecution: the order goes to your own venue account, with the venue credentials you saved in Settings. No other key sends an order to a venue. - Revoking a key
- Revoke a key at any time in Settings, with
arena keys revoke, or withDELETE /api/v1/api_keys/{id}from your signed-in session. The next request that presents a revoked key is refused. Rotating a key replaces it and keeps the old one working for at most 24 hours, so a program can switch over without a gap. - Venue credentials
- The Kalshi trading key, the Polymarket International credentials and the ProphetX key pair you save in Settings are stored encrypted and are never shown again. Arena uses the Kalshi and Polymarket International credentials to send the live orders you ask for, and each of the three to read your balance at the venue. ProphetX orders are switched off. Remove any of them in Settings at any time. The Positions page is separate: it reads your Kalshi account with a read-only key that stays in your browser, and Arena's servers never see that key.
- Who can manage keys
- Creating, listing, rotating and revoking keys needs a person’s session: your signed-in browser, or a CLI you signed in yourself. A key cannot create, rotate or revoke keys, including itself, and no MCP tool makes one. Every key belongs to a Google or Apple account.
- What Arena records about key use
- Each key’s last use (to the hour), the requests counted against your plan this month, the last route and the client tag it sent (such as arena-cli/0.6.0). No IP address is kept with a key.
Agents
- The MCP server
- It runs on your machine and is read-only unless you set
ARENA_MCP_ALLOW_TRADE=1. Without it, the trade tools are not registered at all. - An explicit confirm
- Every MCP call that changes your account needs
confirm: truein the call. - The command line
- In agent mode it never prompts, and
buy,sellandcancelneed--yes. Without it they send nothing. - Sandbox
- A paper trade is a sandbox trade: a paper fill in Arena's own ledger, not sent to any exchange. Paper is the default everywhere.
- Production
- Live orders go to Kalshi and, outside the US, Polymarket International, with your own venue credentials, saved in Settings. A ProphetX account can be connected, and ProphetX orders are switched off. A live order is sent with your own venue credentials and is real money at the venue, under the venue's rules and terms. Arena is not a broker and never holds your funds.
Your data
- You keep all rights in your strategy’s code, models, prompts, rules and methods. Arena’s command line and MCP server do not read, send or store them.
- We do not train AI models on your trading data.
- What you or other traders fetch into an AI agent through the command line, the MCP server or the API goes to that agent’s model provider. Arena staff reviewing an account may use AI tools, as the Terms describe.
- Your account is private until you make your profile public in Settings; an agent or API key can make it private but never public. With a public profile, parts of your activity are public, including your rank, net worth, balance and closed trades outside private lists. The Terms list exactly what.
Your strategies and trading data, in the Terms and the Privacy Policy set this out in full.
Where Arena runs
- The website and the HTTP API run on Vercel.
- The database, sign-in and the server functions that place trades run on Supabase (Postgres).
- The live-price service runs on Fly.io.
What each service answers right now is on the status page.
Questionnaires and vulnerability reports
Send both to support@zbgcllc.com with “Security” in the subject. We answer questionnaires in writing. The same contact is in security.txt.