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): 0x8cf7c95deaa2cd4e83bff2df55889f6823d5737582910dd7d8f7bcf1b73a4487

clientSeed: 0x79c754c7be8ed5166707e2ca01e61652a5ab9ec6efe469e497d1d875bbf67e92

serverSeedHash (commitment): 0x6b62ad24346a10ca5a42bd3389418ff6a628560179d69b13b85c93beac7bc8b3

clientSeed: 0xfc0328ab236325647bd1bfec9aed3d0d7df8aaa4317a1aefc16f20fb45c54ff5

serverSeedHash (commitment): 0x0cd3a12cf486e400751dfdb438e1cd2d633d0dddfad0ffd1f02cb449d6f483fc

clientSeed: 0xcc092f5e88b9f3fc9c505dfb423055302acb82a91891b4caaf65dd1438f76e34

serverSeedHash (commitment): n/a

clientSeed: 0xc7232ae2d71047eab03ff5d11ac53807851945f1f3754091bbb5f13cee458411

Rapid Firecancelled

serverSeedHash: 0x319b5f6234125fdbe30501a85795583121ac8740ce015c6989b73536b153627a

clientSeed: 0x36aedf937bc992794476fe79aa3a47604a11601e3d993ba78a7a23f6334f1480

serverSeed (revealed): 0x32562c28f7ab0a09cb5469a224df36f408b5b120a4eb6c654e9a1e239995eef8

Rapid Firecancelled

serverSeedHash: 0xf55dc1f31618056561de578d6d2008e0d55f84d169b2191cb57d0a271dd92729

clientSeed: 0x586c45310fa97c280a74ea8b84616234c3c97a12fdca434b5a6ae7d378472629

serverSeed (revealed): 0xba2eaac618d4604eecb38c75381e255ddc2a1adb4f43873c58935a04105e8c4e

Rapid Firecancelled

serverSeedHash: 0x81b893846d45e9764df5451003917bde52556dcd6058bd235c936ee4c1a1e606

clientSeed: 0x2afbbf8fb1785a139f7df643f8877a429b7e5fd6360d30b98d366d6f3495a834

serverSeed (revealed): 0x8e30164769af5ff8245d1ee614b5b3734daf9d7d1a6ef22125cf7194de789743

Rapid Firecancelled

serverSeedHash: 0xecb38ffe231a9b47ee922714ac41e5091f82bdf6d91c9acd1c702400cde1072f

clientSeed: 0xa1c4bee978fe958910d2d0d3301e14902f100dce3871b678210cb013726b2e37

serverSeed (revealed): 0xfdf8b548e72ea62ac9d9bea364cacfcd63805f213f2ab2a6b8b351e1302f1c16

Rapid Firecancelled

serverSeedHash: 0xe5ca44867cf76a69221d840f0ab2a121759a7808378fb04ada047230d6337fb7

clientSeed: 0xb6c58cb6a913414926666beb75db1b56a6c433ec61b94eeb7332a1ccb208749d

serverSeed (revealed): 0x863e15a20190cbabd139405f03fe40c978b500f9f3194e1417099d3721aad23d

Rapid Firecancelled

serverSeedHash: 0x23ebf072c1f30378ed8675bea2565f7d020139b3e8bcb36d4098347c38c80540

clientSeed: 0x1a81e2330b06d017266426546fd103e7d52a9ac98ad659904a1b32a39af8b115

serverSeed (revealed): 0x0b355ab23c2156d82ce3cbd37f67128eb0682fc100adf61c0ed5adddb1744b87

Rapid Firecancelled

serverSeedHash: 0xe1f2f7a2f047b5d6ccc8b9f6ddd54f89641d041c5bf68e33b29045917c108bc8

clientSeed: 0x9a7468dedfe528a29123d64cd3493fdf4a4332fe487dd63783ded91c98888f7d

serverSeed (revealed): 0xffabbd718af5888e75942856dc30a78b2dd229fdb0c0b34bbd2b28092a2e8018

Rapid Firecancelled

serverSeedHash: 0x2a5db2358d120cd1aee06400ccb7d6de2470302684b6c003eab05eb2c780d16c

clientSeed: 0x8c2d6b6b87548f09f5fd8e0c42649fbc026ee933a504aa7c9055f0736e816d49

serverSeed (revealed): 0xd9bdbd65ff10ec10061e6057370975853428b981ccc1871c9a1a8cdc390ab7e6

Rapid Firecancelled

serverSeedHash: 0xba36dfa45ff09617a892a7dc502648823da74aea555561a51fddac5ac11f104e

clientSeed: 0xd1775b47707de75b0d57335e0f62da39e1ecd6ebe62d4a490a0106c66d76e08c

serverSeed (revealed): 0x4630407b741aaa087156af3875b01183beedf3d3ec64ab27affeb4661aeaeea7

Rapid Firecancelled

serverSeedHash: 0xe90137e6d981806f74a6832605181d5f10c1c1cd57076716cb6a04adb96e8861

clientSeed: 0x78e17b41cc15fdc8d2173ab01869dc8f37b921574f3a29cbb911d144334befd4

serverSeed (revealed): 0x59d51495ff97bfdd74d6bf068342dde04cea33b654ffd32847cd4d909aa4681e

Rapid Firecancelled

serverSeedHash: 0x73632c0642f872af56a74835391ebcf66a99b9a074bb99f82deb4fb4c4d2df1c

clientSeed: 0x7ef140360c18854b049590a75e8f3e915d51270f3610612c9569e8d7c60a921c

serverSeed (revealed): 0x8e7b1c8113fa1367d57598452ccccb53c0c7c1de682412b9c36f91d0002e0ea2

Rapid Firecancelled

serverSeedHash: 0x5db978e8befee3a65c08b6663b0d2dba3bdff7039d67e6453462faa32434f42d

clientSeed: 0xe803b1d5bd1e61e5c85d055c481d0274e1c5cb403064868c1bbbe7d3c8ba147d

serverSeed (revealed): 0x52cd6665b3959cd1a4b2f502ac31dbe5ee9ea27a618d3f451b2ca47b7ea0e239

Verifier