FomoTag
Fair play · FOMOTAG #002

Verify it yourself.

The winner emerged from a deterministic simulation. Your browser is re-running the entire match from the published seed and comparing every event with the signed result.

Runs in your browser

Verification

  1. 01Seed reveal matches the commitment
  2. 02Match seed re-derived from reveal + round + entrant order
  3. 03Simulation input uses the published entrant order
  4. 04Full match re-simulated
  5. 05Event hash chain + event count match
  6. 06Same winner emerged
  7. 07Signed result payload matches the re-simulation
  8. 08Result signature is valid (ed25519)
Ready
Runs entirely in this browser. Nothing is sent to our servers.
try to cheat:
Published record

The proof

Seed commitment
public before 2026-10-04 15:22:00 UTC
c1a5f6ac3841212e89ddb6ae11cc51ec4ffdbe16614eda5dc87e386b1bbdfe05
Seed reveal
revealed 2026-10-04 15:37:00 UTC
ba3726411b2b3495bacea97c57403f40a60d0f77da5bc6d6006739b60b7e65eb
Match seed
sha256(reveal:round:order)
498634d644459386fd9c85f6c343d2c599e89c0ea242a1c40630a6c304f2be91
Simulation · map
fomotag-sim-2 · fomo-plaza-1
Event hash
35 events
a0bebe5063cc04a3cb3c592799821cd99bd329d7f443988f26425cd8ad80699d
Winner
after 43s · 3 rounds
@stoevent42eeb98a-f71e-4578-bfca-83e5f9a94a57
Signed result
ed25519
ccd172c18edac32e08d5278b378ccbe07ee32bd86a2576590f35d81e1de312f5bac81e8d34616cdb292fa8a2f03c9bfd5176f3287c4d0cc98c58d28e6da5d002
public key bbf4bd989546f2949429fa90795517146789ae843a2554fe31c76590964bafee
Payout
Paid ✓tx 0xa3640a…73bbcf · local chain
pre-funded · funding tx 0xaf9a42…02adb2
4 entrants · fixed at lock

Participant ordering

Order = qualification time, then entry id. Handles are labels only — nothing about an account enters the simulation.
  1. 1@hiroro_si
  2. 2@stoevent
  3. 3@mihaell22
  4. 4@shinyloudwhale
3 assignments · 7 tags

Bag assignments

Every assignment is u32(sha256(matchSeed:bag:round:alive ids)) % alive. Every tag was validated by the server (distance, line of sight, cooldown, immunity).
EventTimeRoundBagHow
20:03.01● → @stoeventseeded draw · first
50:08.51@stoevent → @shinyloudwhaletag · 4.00s left
80:10.61@shinyloudwhale → @mihaell22tag · 1.93s left
100:12.31@mihaell22 → @hiroro_sitag · 0.23s left
120:16.52● → @stoeventseeded draw · reset
140:20.82@stoevent → @shinyloudwhaletag · 5.20s left
170:24.02@shinyloudwhale → @mihaell22tag · 2.00s left
230:31.53● → @shinyloudwhaleseeded draw · final two
280:38.43@shinyloudwhale → @stoeventtag · 4.57s left
310:41.83@stoevent → @shinyloudwhaletag · 1.20s left
Don't trust the page

Check it from a terminal

# 1. the reveal hashes to the commitment published before entries opened$ printf %s ba3726411b2b3495bacea97c57403f40a60d0f77da5bc6d6006739b60b7e65eb | shasum -a 256# 2. the match seed = sha256(reveal:roundId:ordered entry ids)$ printf %s 'ba3726411b2b3495bacea97c57403f40a60d0f77da5bc6d6006739b60b7e65eb:9f1b00ff-24b5-4610-91b1-50c22d7bb145:acf383e9-22ce-4f31-826f-ef4d3bd85d1e,42eeb98a-f71e-4578-bfca-83e5f9a94a57,91b8bfad-5b4e-4c…' | shasum -a 256
# 3. fetch the full record$ curl -s https://fomotag.fun/api/rounds/2/fairness > round-2.json# 4. re-run the whole match from the repo (same @fomotag/sim code)$ pnpm tsx scripts/verify-match.ts 2 --api https://fomotag.fun

The full ordered id list is in the JSON record (orderedEntrantIds, comma-joined).