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

clientSeed: 0x8c2d6b6b87548f09f5fd8e0c42649fbc026ee933a504aa7c9055f0736e816d49

serverSeedHash (commitment): 0x8cf7c95deaa2cd4e83bff2df55889f6823d5737582910dd7d8f7bcf1b73a4487

clientSeed: 0x79c754c7be8ed5166707e2ca01e61652a5ab9ec6efe469e497d1d875bbf67e92

serverSeedHash (commitment): 0x0cd3a12cf486e400751dfdb438e1cd2d633d0dddfad0ffd1f02cb449d6f483fc

clientSeed: 0xcc092f5e88b9f3fc9c505dfb423055302acb82a91891b4caaf65dd1438f76e34

serverSeedHash (commitment): n/a

clientSeed: 0xc7232ae2d71047eab03ff5d11ac53807851945f1f3754091bbb5f13cee458411

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

serverSeedHash: 0xa0f9597f9d5392028420829f2f4dcdf6685fea127d272dca1bf3e938d4952d4a

clientSeed: 0xd793000e75ff4ae191042db33ea124e3ee97f4b647109a693ca870f4e8026803

serverSeed (revealed): 0x650d35eac091d7f8213b2bbd163560e667a5a86046b81a185c88c37dfb8c4a45

Rapid Firecancelled

serverSeedHash: 0x2629162e3cd2debba182db037c6a56ac3e261bb6a1928f3b37cab3d0e28b4bfc

clientSeed: 0xa9c7da93443363c7bd128cdfa21fa19e8aae8fc2e1d7228c6d8f32e75b62cd3e

serverSeed (revealed): 0x30b9b21fbdd17ab2b6cbfc2f9b4f43d8d8b659a565824b113b66fe17b0700526

Rapid Firecancelled

serverSeedHash: 0x3c9b73f20105a19f107969da5d67b6c65f528b4be4557b7f3c5a45551cd5d43c

clientSeed: 0x03e34f3a7d8865d7364e2426b9158fb1baa21d3249b23508c78c9b46e7805c03

serverSeed (revealed): 0x75a7c8ead3091c5be99a31af61e4b6c166adfddfed795c6a0561f666e410a932

Rapid Firecancelled

serverSeedHash: 0xb69177a6b0cdee30f7eb5dd25cb01e2d3c0c05cedc9d8d185ed10a26f93c47e0

clientSeed: 0xdf172aea888706d513fe165218da7c169e3d98e4f23d8dcb3efb443e6b9588ac

serverSeed (revealed): 0xbb345c4243dde6333e267e0d4320b99f18e08cc5a4accf44f8584b04f29907a5

Rapid Firecancelled

serverSeedHash: 0xa65369d206a14d7a8b2cc459349e8135ff7cdc7928bf8940de69a11c45d8a8b5

clientSeed: 0x4236db6c28e07c85961f5934343d1e820174b49458c27b886a8e87c52cfc5944

serverSeed (revealed): 0xb1402f1463c9b09d234ad8897fa3f9866fe107d5b1c2d290840c50aee9906d3b

Rapid Firecancelled

serverSeedHash: 0x1420b70dfe0ea2c786b0fe4c36db2456e4e8e9d2b7904edbebf7f22ee9493028

clientSeed: 0x683d7ad45f81d66678853a42cd4688d367666cb1dea71fa623d6cbe00f6bcd7b

serverSeed (revealed): 0x9c22a1e33717982a0a012e6aab10c95730a409a97ba3befd99b19e7ff2e2f654

Rapid Firecancelled

serverSeedHash: 0x2c3fefa7e79c576ea5865646682ae39a380854fbcd4cbdef1fe8e768891c6577

clientSeed: 0x9f4f1c246a282ddef633b0f9b5a0743976505d68683a2fd5770fb0545dd44096

serverSeed (revealed): 0x047dc966d0394c0d7ea7c3a8f3a39bd9459284fd570c8d5b6b146e85dc7817c9

Rapid Firecancelled

serverSeedHash: 0x1a75a4650e2775fb87677df2d8ef46688f6491e71a5a8412f9bf2dd51f6450d4

clientSeed: 0xdbb135c40c4a2cfbf9c237839d5f555af5668419ac94b6f18228593fb98c2337

serverSeed (revealed): 0x95d75f0ae5f13804308a9616c47cee023da44758216b7d98cef65a566e97798a

Verifier