ROBINHEAD DOCS Play ↗
More

Architecture

A single self-contained browser client, a Node match server that owns the simulation and the money flow, and an escrow contract on Robinhood Chain.

System map#

BROWSERgame.html+ wallet SPECTATORlive view / OBS CDN / PROXYTLS · wss NODE MATCH SERVER Transport · auth · rate limitsws, signatures, sessions Matchmakertiers · ping Rooms120 Hz sim Economyledger · energy Anti-cheatreview only Chain adapterlock · settle · refund · quotes LEDGER DBdatabase RPCRobinhood Chain MATCHESCROWper-match lockssettle · refund
Matches are ephemeral and live in memory; money state is persisted in the ledger and on-chain.

Design rules#

RuleWhy
The client is hostileIt sends four booleans plus a super flag. No position, score or effect is ever read from it.
Physics stays deterministicNo clock, no Math.random(), no DOM. Otherwise prediction fights the server forever.
Only the local player is predictedPredicting everything made the two simulations fight and jitter.
A pot is never strandedFailed settlement refunds; stale locks are swept; crashed-process locks are refunded at boot; reclaim() backs it all on-chain.
Flags never take moneyAnti-cheat output is for human review only.
The online game is the single-player game with netcode bridged inA from-scratch client was thrown away because it lost the look and feel people already know.

Scale#

1,000players per core
33 mstick under load
49%CPU at 1,000
3 KB/sper player

Measured on one core: 1,000 concurrent players at a 33 ms tick using 49% CPU and 220 MB. Cost is dominated by network egress, not compute.

RobinHead Ball is a game of skill. Staking tokens carries risk — never stake more than you can afford to lose. You are responsible for complying with the regulations in your jurisdiction.