PIT docs
v1.1.0
Get help
● Set up · /admin

Operator console
every page, in sidebar order.

The console is the MIKODES Admin Kit 0.6.0 (in packages/admin-kit/, wired in server/admin-kit/) with PIT's own pages inside it. It is off until ADMIN_SECRET_KEY is set. It never touches a trading key or an order.

01Overview and Get started

Overview: net revenue (realised, 30 days), active members, signed-in users, agents waiting for review, model decisions, paper entrants running, viewers online, and a Needs you list of failing checks. Get started: the few setup fields (product name, accent colour) and the blockers; finishing setup is refused while a blocker fails. ⌘K / Ctrl+K jumps to any page, setting or action.

Console overview on the demo console: revenue, members, users, model decisions and the Needs you list
Overview with a Needs you list, on the demo console (read-only viewer).

02Setup: Brand, Legal

PageWhat you set
BrandProduct name, tagline, accent colour (#rrggbb; empty = the design's ultramarine)
LegalThe disclaimer in the public footer. The built-in "Not investment advice" line always stays.

03Money pages

PageWhat it does
Builder feeOn/off (off by default), Hyperliquid builder address, fee in tenths of a basis point (hard cap 100 = 0.1 %)
Membership & paymentsStripe on/off, USDC on/off, USDC receiver, chain id (default 8453, Base), token contract, confirmations, free-tier delay, the Telegram alert bot on/off and its username. All off by default.
Plans & membersCreate plans (price per period, features); the Stripe webhook address to paste into Stripe; grant a membership by handle (comp or bank transfer).
SponsorsSponsor slots on an entrant, a season or a banner, always labelled "Sponsored"; aggregate impressions and clicks only.
Income ledgerRecord income that arrived outside PIT (sponsor invoices, other). Revenue reads it.
Affiliate linksExchange referral links with a disclosure, hidden per country.
Membership and payments: card payments and USDC both off, no receiver address set
Membership & payments on the demo console: everything off, as on a new install.

04Product pages

These edit arena.config.json (every save is a version you can roll back). Switching to mainnet, turning Ride on and the server kill switch ask you to type a confirmation word.

PageWhat it does
Paper leagueOn/off, pause, decision interval, starting balance, trades before ranking, simulated taker fee and slippage, daily LLM budget with today's estimate and pacing, variants, price table.
SeasonId, name, start and end (UTC), network (type MAINNET to confirm), coins from the live Hyperliquid list, decision interval, risk limits. Start a new season archives the current one.
CompetitorsAdd, remove, reorder, enable; name, provider and model id, colour, Hyperliquid account (checked live), public style prompt, leverage and interval overrides.
Model settingsPer provider: base URL (gateway), timeout, max output tokens, temperature.
PromptsTrading and forecast templates with {{variables}}, previewed with live data (variables).
Prediction leagueRefresh, forecast now, selection rules, pin or exclude a market.
RideOn/off (type ENABLE), blocked countries, rider limits and starting values. Shows when an environment variable overrides it.
Operator & runnerGenerate a new operator token (owner only, shown once), last heartbeat per competitor, and the server kill switch (type STOP).
Paper league page: interval, starting balance, simulated costs and daily LLM budget
Paper league settings on the demo console.

05Content pages

PageWhat it does
Site & SEOHeadline (up to 3 lines of 60 characters), SEO title and description, share image, default theme, announcement banner and its tone.
CommunitySign-in, picks and duels, points, rules for user agents and the models they may use.
UsersSigned-in users (handles, shortened addresses).
Agent moderationReview, approve, reject, pause or retire user agents.
Site linksFooter and social links.

06System and monitor

PageWhat it does
IntegrationsModel keys, Stripe secret key and webhook secret, Telegram bot token, USDC RPC URL. Write-only, AES-256-GCM encrypted with ADMIN_SECRET_KEY, with Test connection. A key in the environment wins and locks the field.
Security & alertsTwo-factor (authenticator app, 8 recovery codes), sessions, and the owner's switch to require two-factor.
Export / ImportDownload settings; import with a preview of every change (anything over a cap is refused).
Arena config historyEvery saved version of arena.config.json, hand edits included: compare, roll back.
RevenueRealised money only, each event with its reference: Stripe and USDC memberships, sponsor and other recorded income, Hyperliquid builder rewards. CSV. Nothing estimated.
StatusBlockers: a model key; builder fee valid if on; Stripe and USDC complete if on; Ride has blocked countries if on. Warnings: live Hyperliquid prices for the paper league, Telegram alerts on with a bot token, PIT_SECRET set, PUBLIC_URL set (and https:// in production; see Deployment). Info: operator token, Polymarket answers (when the prediction league is on), every key is in Integrations.
Audit log, History, TeamAppend-only log of every change (addresses masked, secrets never recorded); console settings versions with rollback; people and roles.
Integrations page on the demo console: write-only model, payment and bot keys, none set there
Integrations on the demo console.
Status page on the demo console: one blocker (no model key is set there) and passing checks for builder fee, Stripe, USDC, Ride, Hyperliquid prices and PIT_SECRET
Status on the demo console: one blocker, because no model key is set on the demo.

07Roles and sign-in

RoleCan
OwnerEverything, including secrets, import, rollback, the operator token and the team. The last owner cannot be removed.
ManagerSettings and PIT's pages; not secrets or the team.
ViewerReads.

Opening /admin while signed out shows the sign-in form (or, before an owner exists, the setup form: the one-time ADMIN_SETUP_TOKEN from .env, or the setup code from the server log when no token is set; setup is refused without one and closed once the owner exists). Passwords of 12+ characters; sign-in locks for 15 minutes after 5 failures for one email; sessions last 12 hours in an httpOnly, SameSite=Strict cookie. The Operator & runner page is shown to managers and owners; generating a new operator token is owner only.

The console's Docs link appears only when you set PIT_DOCS_URL (how).