Fair by construction.
Checkable by anyone.
Nothing about who wins depends on trusting us. The randomness is committed in advance, the votes are receipted, and the result is signed — and you can verify all of it in your browser.
We commit before you enter
Every round gets a secret 32-byte seed. Its sha256 fingerprint (the commit) is public from the moment the round is created — so the seed can't be swapped later.
We reveal when entries lock
At lock the seed is revealed. Mixed with the round id and the entrants in qualification order, it becomes the round seed. Anyone can check sha256(seed) = commit.
The seed decides everything random
Who gets which plot, the showcase order, the bracket matchups and any tie that survives sudden death — all drawn from the round seed with a published shuffle. Never popularity.
One identity, one vote, one receipt
Only verified Fomo identities vote, never weighted by holdings, followers or PnL, and never on your own matchup. Every counted vote gets a receipt that's published per matchup.
The result is signed
When the final ends, the full result — entrants, plots, build hashes, bracket, every vote total, the champion — is serialised to canonical JSON and signed with FomoCraft's ed25519 key.
You re-run it
Each round's fair-play page downloads the whole record and recomputes it in your browser: hashes, shuffles, every matchup, every receipt, the signature. Only then: ROUND VERIFIED ✓.
FomoCraft's public key
Every signed result must verify against this ed25519 public key. The private half never leaves the game server. The verifier rejects a result signed by any other key.
Shuffle: for i = n−1 … 1, j = u32(sha256(seed : tag : i)) mod (i+1), swap. Tags: plot, showcase, bracket; ties: tie:<stage>. Byes go to bit-reversed slots. The verifier is open in your browser's dev tools.