Skill, fairness & anti-cheat
Fairness is structural, not a promise. The same signed inputs produce the same result for everyone; a client that reports a score it can't reproduce simply diverges from the checkpoints and is caught. Anti-cheat is a consequence of determinism — backed by signed inputs, a forfeiture-and-strike ledger, and an independent watcher that can challenge a bad settlement on-chain.
Fairness here is structural, not a promise. The same inputs produce the same result for everyone, so a client that reports a score it can’t reproduce is caught by construction. Anti-cheat is a consequence of determinism.
#No house edge
The engine takes no rake from the outcome — awards go to the players a re-runnable computation names as winners. When a community enables fees at all, they're public and capped at 5%. There is no built-in edge that quietly bleeds the pot toward the operator; skill, not a margin, decides who wins.
#Every shot is signed
At join, a player is issued an ephemeral per-match ed25519 session key, bound into the roster leaf. Every shot is signed with it and chained into an append-only hash chain. On the money path a missing, invalid, or reordered signature is a hard reject — you can't inject shots you didn't sign, and you can't replay someone else's.
#Cheating is a divergence
You cannot submit a score you didn't earn. A tampered state fails to reproduce the committed checkpoints, and the verifier reports the exact tick it first diverges. There's no subjective judgement call — the re-run either lands on the same hashes or it doesn't, and "doesn't" is the evidence.
#Forfeiture, strikes and bans
For a hard, deterministic cheat verdict inside the challenge window, the program forfeits the cheater's share to the treasury and re-elects the next honest player into the vacated slot — conserving the pot exactly, and re-opening the window so the correction is itself contestable. A program-wide player record escalates repeat offenders:
- 1st strike
- a one-hour timeout — join is refused until it lapses.
- 2nd strike
- a 24-hour timeout.
- 3rd strike
- a permanent ban; the wallet can't join any match.
Each strike is chained to its off-chain forensic bundle by a rolling evidence hash, so the ledger of enforcement is itself auditable.
#An independent watcher
Enforcement doesn't wait on the operator's good faith. An independent watcher re-audits archived matches from their bytes alone; if a recomputed root diverges from what's on-chain inside the challenge window, it files an on-chain challenge. A fast path targets a sub-60-second service level from settle to forfeit, while merely flagged (soft) cases go to human review rather than automatic punishment.
#Bots are difficulty, not payout
Live bots fill an arena and set the challenge, but they are excluded from ranking and pay nobody. They can't be a hidden sink that drains the human prize pool, and with fewer than ten humans the pot is winner-take-all among the people who actually played. The bots make the game harder; they never make it less fair.