Provably Fair

The winning seed is committed (its hash published) when the round is created, before any tickets are on sale, and revealed once the draw settles. The operator cannot pick a seed after seeing who entered.

How it works

  1. While entries are open, tickets are sold sequentially and each wallet is capped: max 100 tickets per round.
  2. Before entries open the server generates a secret serverSeed and immediately publishes keccak256(serverSeed) as its commitment, alongside the public clientSeed. The seed is fixed before anyone buys, so the operator cannot grind it against the final entry set.
  3. When the round closes, one winning ticket number is derived by this formula, and the wallet holding that ticket takes the entire pot:
target(tier, attempt) = uint256(keccak256(serverSeed || clientSeed || drawId || tier || attempt)) mod totalTickets; winner(tier) = first entrant whose cumulative ticket count exceeds target; the single tier-1 winner takes the whole pot (legacy rounds paid up to 4 tiers; collisions with an earlier tier re-derive with attempt+1)
  1. At settlement the serverSeed, its hash and the winning ticket are revealed. Anyone can re-run the math in the verifier below and confirm the same winner. Legacy rounds paid up to 4 tiers, so verify those with winners=4.

Seed commitments

serverSeedHash (commitment): 0xb9a58bafb1893d3625abaf8ea43bb48bff59754194f78bd79826cf95b9c2543e

clientSeed: 0x8e065e4afc59db25070c437b961621a668aa4cacd6d203e7e2236269c716ef4f

serverSeedHash (commitment): 0x66e2c30c893c2957ea6b9015554270b0cba08465665f6ce941a7ef3d9173f2a1

clientSeed: 0x5c5ba2393fa779159b01f4dea747d5c0b4051a8017f923109e638a6b64996472

serverSeedHash (commitment): 0x0cd3a12cf486e400751dfdb438e1cd2d633d0dddfad0ffd1f02cb449d6f483fc

clientSeed: 0xcc092f5e88b9f3fc9c505dfb423055302acb82a91891b4caaf65dd1438f76e34

serverSeedHash (commitment): n/a

clientSeed: 0xc7232ae2d71047eab03ff5d11ac53807851945f1f3754091bbb5f13cee458411

Rapid Firecancelled

serverSeedHash: 0x0574662b9fea06b68043c45c89bd932e1e1fe108a510343fd203883c27d321d3

clientSeed: 0x028d0e94965d1666229312283e3ba680d14741e5ae25bb85406bb9b78a4928c8

serverSeed (revealed): 0xfde6d0df4b52ebee8d9421d8d28ccf5829db701813947a5093c494362f91ca99

Rapid Firecancelled

serverSeedHash: 0x088cb93fe187a721ea6d6cf0add9c79961efd2020b2f9fd4f9178e6a521fed35

clientSeed: 0xa420ad59bbedc35fd63f6e4cddf983f770412cf0fcedf78c83ba44a5d4d509f0

serverSeed (revealed): 0x7abe60970c22eafc32abc81d743ca4cc682d809a202710b995faf1247a38007c

Rapid Firecancelled

serverSeedHash: 0xbe8ae66d9a76cec44ac3fe0819194ba7e736761dfb4540d255df67ed69282afe

clientSeed: 0x96f1535365cbd50458d707e8711132aa847e4bf7fcc9142af4b3bf73b3752682

serverSeed (revealed): 0xaf4d5c9967f0d350cdff8492557bd46dad5467f2a85a55ea8f3b59d7a7fdeed9

Rapid Firecancelled

serverSeedHash: 0x54a3edd31d13e169766bb05f2d7659b4ee42466a7b7b480e007a83b5a88f8e91

clientSeed: 0x0acbf2306fb204051268294a293c92725379ebec10ce95a1b5346281d9cf537a

serverSeed (revealed): 0xdc1d24e5cf8d08ab3732b9fc28b6212672b98ec8df2fb76ebf3c9b6484b1fb27

Rapid Firecancelled

serverSeedHash: 0x38a5a1422252a34550378b426ea9caef74ce046cc4285a1ade067d99507ae4f1

clientSeed: 0x5531d0e1d6506d2b394426a633492cc104fc2c806c3bddfecd41e27c55314549

serverSeed (revealed): 0x54e6fef832182f4a44d42530b4a95ab0d4ef830fb67874690be4303aedc5a3cc

Rapid Firecancelled

serverSeedHash: 0xb18d03412964bdd952f194d257d861459f5a6d832b4a5d1d6587659deddada96

clientSeed: 0x72bee975949bea507c07f1607a47327cc90ae349f7e7cbfb0801de390d2c35d3

serverSeed (revealed): 0xf25773d3ee46cb8791138b611fbd67446ecc4266ad24e8f2c77fe64d24355fc7

Rapid Firecancelled

serverSeedHash: 0x8784b0aa8b199f04fe8b596139e0aae06b5f1e81272a20f5ce6f940e8fb09229

clientSeed: 0xd4ee987275cd8222ec24aa3857276acbda724782980b7484be995e0e9a795baa

serverSeed (revealed): 0xf9c08ba6c5f539ac1743856388089baecd3270382d476fc8cc317c0766b03988

Rapid Firecancelled

serverSeedHash: 0xe4afd73328382991c8fcd7acf0135259353fe4b68ab46d92b6f9dccc40826143

clientSeed: 0x3cf7224d0e9246d6cbe46f0469c8d05ebf00a999b33a769cc5bf780cb1301564

serverSeed (revealed): 0x14653e3784afb9ecf2bbb15541f00a0a3eaab0460bed00bcd311fd859a95b0b7

Rapid Firecancelled

serverSeedHash: 0x6b62ad24346a10ca5a42bd3389418ff6a628560179d69b13b85c93beac7bc8b3

clientSeed: 0xfc0328ab236325647bd1bfec9aed3d0d7df8aaa4317a1aefc16f20fb45c54ff5

serverSeed (revealed): 0x63a377c9a583827d13fc654af41e48b62579abbc62dc944eb9d20ea28294e34c

serverSeedHash: 0x8cf7c95deaa2cd4e83bff2df55889f6823d5737582910dd7d8f7bcf1b73a4487

clientSeed: 0x79c754c7be8ed5166707e2ca01e61652a5ab9ec6efe469e497d1d875bbf67e92

serverSeed (revealed): 0x59c9e53cfc03a77e26801b19c3abe3c116e004a30eac2b2d17c09b6ed4a42ee6

Rapid Firecancelled

serverSeedHash: 0x319b5f6234125fdbe30501a85795583121ac8740ce015c6989b73536b153627a

clientSeed: 0x36aedf937bc992794476fe79aa3a47604a11601e3d993ba78a7a23f6334f1480

serverSeed (revealed): 0x32562c28f7ab0a09cb5469a224df36f408b5b120a4eb6c654e9a1e239995eef8

Rapid Firecancelled

serverSeedHash: 0xf55dc1f31618056561de578d6d2008e0d55f84d169b2191cb57d0a271dd92729

clientSeed: 0x586c45310fa97c280a74ea8b84616234c3c97a12fdca434b5a6ae7d378472629

serverSeed (revealed): 0xba2eaac618d4604eecb38c75381e255ddc2a1adb4f43873c58935a04105e8c4e

Verifier