FomoNiteFomoNite
Enter
Fair play

Every drop
is provable.

Nobody picks the drop route, the storm, the loot or the winner — not the players, not us. The seed is sealed before you enter, the match is chained shot by shot, the result is signed, and the prize is paid once. Every round has a proof page with a button that checks it all in your browser.

Try to cheat
Change the damage of the shot that won the fight.
26
  1. h₋₁demo seed commit ebb94cdafac3880a…
  2. h0
    @kai lands in MARKETPlayerLanded
    fee094806e4878791e2d6f9f4f1b31290b94d7d25f0955dc0a81fdf7a315a38d
  3. h1
    @kai fires Pulse RifleWeaponFired
    b1fb2faeb819eea9a57d79ec5f828793c42acbf91bf4460e8e26bf28292874ae
  4. h2
    @kai hits @mia for 26DamageDealt
    462bfb101f63301ff4ec61943c88aef1e9cd12118c651073095a3a7af9828be1
  5. h3
    @kai eliminated @miaPlayerEliminated
    3ef42eb219ed20f4ce3d92fc5c1ad38c55b7d2e45168818866421fa7031e4b37
signed final hash 3ef42eb219ed20f4…✓ matches
How it works

Six things you can check.

  1. 01

    The seed is sealed before you enter

    When a round is created we draw a secret seed and publish only its fingerprint (SHA-256). We can't change the seed later without the fingerprint changing — and you can see it before you enter.

    commit = sha256(secretSeed)
  2. 02

    The field is locked into the seed

    When entries close, the entrant list is fixed in entry order and hashed. The match seed mixes the secret seed with that list, so nobody — us included — could know the match before the field was final.

    matchSeed = sha256("fomonite:match:" + seed + round + participants)
  3. 03

    Route, storm and loot come from the seed

    The Drop Carrier's route, every Fomo Storm circle and every crate's contents are rolled from sub-seeds of the match seed. Their fingerprints are published at lock; the seed itself is revealed only when the match ends — so nobody can read the storm or the loot early.

    storm = zonePlan(subSeed(matchSeed, 'storm'))
  4. 04

    Every shot is chained

    The server is authoritative: it decides movement, hits, damage, the storm and eliminations. Each event is hashed onto the one before it. Change one event — one point of damage — and every hash after it breaks.

    h(n) = sha256(h(n−1) | event(n))
  5. 05

    The result is signed

    The game server signs the result — winner, placements, event count, final hash, prize — with its ed25519 key. The public key is below. Payouts only follow a result whose signature verifies.

    verify(publicKey, signature, result) = true
  6. 06

    The prize is pre-funded, paid once

    Prizes sit in an on-chain vault before a round shows FUNDED ✓. After the signed result the winner's verified wallet is paid once — the vault itself refuses a second payout. No entry fees, no bets: if a round is voided, the prize goes back to its funder.

    payout key = FOMONITE_PAYOUT_<roundId>
Result signing key

Every signed result on this site verifies with this ed25519 public key.

b1e539bbaf…a706468e
What we never do
  • Take entry fees, bets or stakes — prizes are pre-funded promotions.
  • Invent a winner — a crashed or mass-disconnected match is VOID and its prize is refunded.
  • Pay a disclosed practice bot — a bot win returns the prize to its funder.
  • Reveal the storm or loot early — the seed opens only after the match.
Proofs

Recent drops