Spectator mode
Spectating rides the same deterministic replay that verifies a match - there is no separate video feed. A read-only observer can ride a live arena; anyone can reopen a settled match from its content-addressed codex and scrub, audit and replay it in one match archive.
Spectating rides the same deterministic replay that verifies a match - there is no separate video feed. Watch a live arena as a read-only observer, or reopen any settled match from its content-addressed record and scrub it.
#The replay is the stream
You don't watch a re-encoded video of someone else's game - you reconstruct the game by running the same codex through the same kernel. What a spectator sees is bit-identical to what the players saw and to what gets verified. The thing you watch and the thing that's audited are the same object.
#Live spectating
A live viewer joins as a read-only relay observer: no seat, no roster entry, no session key. It catches up on the match so far, then rides the same signed frames the players are emitting. The relay enforces the read-only contract - anything an observer tries to send is dropped - and the viewer just shows a live badge.
#Reopen and scrub any match
A settled match reopens from its signed codex - the same content-addressed artifact (pinned to IPFS) that the on-chain root commits to. The browser decodes it, boots the spectator kernel from the seeds and shot schedule, and builds a timeline from the audit bundle: markers for steals, money, oranges, skills and the win, each attributed to a shooter.
- scrub
- drag the timeline, frame-step, and filter events by kind.
- attribution
- every marker knows which player_index caused it.
- proof panel
- codex root, settlement root, the CID, and Solana explorer links - plus a re-audit command.
#One match archive
The match archive turns every past match into one checkable, watchable record:
- find
- search and filter every settled record by match ID, player count, date or verdict.
- audit + replay
- open one record to scrub the deterministic replay beside its PASS/FAIL checks, roots and payouts - including a forfeit banner if a cheater was caught.
#Any match size, any crowd
This is where the bit-packing pays off. A whole match compresses to its inputs, not its frames - a bit-packed codex where a hundred players throwing fifteen shots each is on the order of ten kilobytes. A spectator downloads that once and recomputes the game locally, so the cost of watching doesn't grow with the match: a two-player duel and a hundred-player arena stream the same trivial amount.
Because the record is tiny and the replay is deterministic, both directions are unbounded. You can watch a match of any player count, and any number of people can watch it - there's no central video encoder to overload, just a small pile of math each viewer runs for itself. The same property that lets a stranger audit a match lets an arena of spectators watch it for free.