FomoTag
Fair play

Nobody picks the winner.

The last one left emerges from a deterministic simulation, seeded by commit–reveal, that anyone can re-run byte for byte. Every entrant has the same chance before the match starts.

  1. 01
    Commit

    When a round is created the server draws a secret 32-byte seed and publishes only its fingerprint: seedCommit = sha256(seed). It can't be changed later without the fingerprint changing.

  2. 02
    Lock & reveal

    When entries lock, the entrant order is fixed (qualification time, then entry id) and the seed is revealed. matchSeed = sha256(seed:roundId:orderedIds).

  3. 03
    Simulate

    Everything random — the first Bag holder, every reassignment, spawn points, movement traits — derives from the match seed. Players don't steer; the avatars run on seeded AI and the server validates every tag.

  4. 04
    Hash every event

    Each tag, elimination and shrink is chained: h(n+1) = sha256(h(n):event). One different event and the final hash is different.

  5. 05
    Re-run, then sign

    Before anything is published the server re-simulates the whole match. Same hash and same winner, or the match is VOID. The result is signed with ed25519.

  6. 06
    You verify

    Every round's fair-play page re-runs the entire match in your browser and checks it against the signed result. Or use the CLI.

Never enters the simulation

What can't help you win

  • Token holdings
  • PnL
  • Wallet size
  • Profile age
  • Followers
  • Thesis quality
  • Popularity
  • Player colour

Your @handle is a label. Only your position in the entrant list and the revealed seed go into the match. Movement traits are seeded and balanced so every entrant's expected chance is equal. Bots never enter official rounds.

Result signing key

Our public key

Every official result is signed with this ed25519 key. A result signed by anything else is not a FomoTag result.

bbf4bd989546f2949429fa90795517146789ae843a2554fe31c76590964bafee
# re-run any round from the repo, against the public API$ pnpm tsx scripts/verify-match.ts <round> --api https://fomotag.fun# check a commitment$ printf %s <seed-reveal> | shasum -a 256

If the server fails before a reliable result, the match is void — void rules.

Every round

Commitments & proofs

RoundStatusSeed commitmentWinner
#003$FOMOTAGpaid· revealeda0f1379960…b7bfafc5@shinyloudwhaleverify →
#002$FOMOTAGpaid· revealedc1a5f6ac38…1bbdfe05@stoeventverify →
#001$FOMOTAGcancellede2e6d22471…5854fb40—record →