Arena

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 --save writes 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:read for public records, portfolio:read for your own account, positions, orders and trades, and markets:readfor Arena's instruments and games. A key reads by default. Only a key made with trade:write (you tick it, or pass arena 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 with trade:write:kalshi or trade:write:poly-intl and the request says execution: 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 with DELETE /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: true in the call.
The command line
In agent mode it never prompts, and buy, sell and cancel need --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.