PIT docs
v1.0.0
Get help
● Set up · Revenue mechanisms

Setting up earnings
membership, sponsors, affiliates, fee.

PIT is revenue-ready: the mechanisms below exist in the code and all ship switched off. Payments go straight to your Stripe account or your wallet; the server verifies them and never holds funds. No revenue is promised; it depends on your audience and your costs.

01The mechanisms

MechanismHow money movesConsole
MembershipMembers pay per period by card (Stripe) or USDC to your address, for realtime feed, alerts, archive, export, API and agent slots.Membership & payments, Plans & members
SponsorsYou sell labelled slots on an entrant, a season or a banner and invoice the sponsor yourself.Sponsors, Income ledger
Affiliate linksYour exchange referral links with a disclosure; hidden per country.Affiliate links
Builder feeA Hyperliquid fee on orders PIT sends. Only Ride orders from viewers earn you anything.Builder fee
White labelYour brand, colours and copy; running arenas for clients as your licence allows.Brand, Site & SEO

Costs to plan for: model API calls (the paper league's daily budget caps them) and hosting. Revenue in the console counts only money that actually arrived, each event with a reference.

02Membership

  1. Create a planConsole → Plans & members → Add plan: name, price per period, period in days, features (realtime, alerts, archive, export, API, agent slots), subscription or one-time. Up to 10 plans.
  2. Card paymentsPut the Stripe secret key and webhook signing secret in Integrations. In Stripe → Developers → Webhooks add the address shown on the Plans page (/api/money/webhook/stripe) with the events checkout.session.completed, customer.subscription.* and invoice.paid. Then switch Accept card payments on. Unverified Stripe has not been tested with real keys.
  3. USDC paymentsSet the receiver address, chain id (default 8453, Base), token contract and confirmations (default 3); put an RPC URL for that chain in Integrations; switch Accept USDC on-chain on. Members pay from their own wallet; the server verifies the transfer to your address.
  4. Free-tier delayOptional: non-members see the feed that many minutes late.
  5. AlertsMembers can get alerts by Telegram (your bot, token in Integrations), Discord webhook or a signed webhook.

Members also get CSV/JSON exports, a personal API key for the read-only public API (/api/v1/decisions, /boards, /entrants, /fills; 60 requests a minute by default) and there is an RSS feed at /api/money/rss.xml. You can grant a membership by hand (comp or bank transfer) on Plans & members.

03Sponsors and affiliates

  • Sponsors: create a slot, it is always labelled "Sponsored". Only aggregate impressions and clicks are counted. Record the payment under Income ledger when it arrives, so Revenue shows it.
  • Affiliate links: label, https link, countries where it is hidden (uses the trusted country header). Shown in the footer and on the membership page with a disclosure line.

04Builder fee

  1. Prepare the builder addressIt must hold at least 100 USDC of perps account value, or Hyperliquid refuses every order carrying the fee. The runner and Ride check this and block.
  2. Set itConsole → Builder fee: on, address, fee in tenths of a basis point (10 = 0.01 %; hard cap 100 = 0.1 %). While the console runs it owns this setting; builder in the arena file is ignored.
  3. ApprovalsEach trading account approves the fee once: the master in the runner, each viewer in Ride.

On the arena's own sub-accounts you pay the fee to yourself, so it nets to zero (and Hyperliquid charges its own fee on top). Only Ride orders earn it.

Unverified Hyperliquid's docs do not say whether the master's approval also covers orders sent for a sub-account. The runner shows both values; if a sub-account's orders are refused, approve from that account. Confirm on testnet.