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

clientSeed: 0x69945ebd023245e29728795106e9dad8ea77f2242aef7f29d63144f23713cefd

serverSeedHash (commitment): 0xe308c491f0627e8a47167a30a1ab59d004c08f9c0d3d21eeb5f0d081b39c5362

clientSeed: 0xd9723125e182409f30bda3421e253dcff57b0921ff751839996ba042f4617787

serverSeedHash (commitment): 0x0cd3a12cf486e400751dfdb438e1cd2d633d0dddfad0ffd1f02cb449d6f483fc

clientSeed: 0xcc092f5e88b9f3fc9c505dfb423055302acb82a91891b4caaf65dd1438f76e34

serverSeedHash (commitment): n/a

clientSeed: 0xc7232ae2d71047eab03ff5d11ac53807851945f1f3754091bbb5f13cee458411

Rapid Firecancelled

serverSeedHash: 0x5063e98e67ccee68d5d6258faae3f81754f3cbd931405f084458ff56ddfceb5f

clientSeed: 0xe755951adbb841d93bb27a77c6ffad814372c4ad88b94cf15e6c88e4627d3976

serverSeed (revealed): 0xb55612144b93c53bf696df0d29ce585738fe3ea7c7d116aa2d09a184bbb1eadb

Rapid Firecancelled

serverSeedHash: 0xc56f9a9b1860830c14103b8a68fece17987f10d314f14d6c7fb8c32a01b509e6

clientSeed: 0x467f57d39d053401d143e177ebac321ec4b196b2f90846e88e66e5f3a6f710bc

serverSeed (revealed): 0xeaaa80b2692315bcd1aa9cdaa6737796ec58e6e9777f158bf54aef9e04dd8834

Rapid Firecancelled

serverSeedHash: 0x5cba05368ea6080a517bf14263e0e5e371d2c4bdf87e92efc7637f2ce6c44d70

clientSeed: 0x779e065386e17ba33a3daf5e1782888165e5005faaec342b48bc827f565fd31f

serverSeed (revealed): 0x4bf5f55476dd69bb5d2991869c4f9819a03b25c34e0873af8cfc26f1ab47e0d1

Rapid Firecancelled

serverSeedHash: 0x5a3b26b0ea78744cfe0d3ca7afb1fbf983924b6cd015c6fc323a5a7f5398ab35

clientSeed: 0x80194baf46169c28384bf0dc1d76975ac1e2b9a3e185d52d164da6fa3388a517

serverSeed (revealed): 0x4d0e32ae4f8d8dfa83f107d3cba2775822a955305fe4118a1c21719c6bff4371

Rapid Firecancelled

serverSeedHash: 0x29bb41b78796a4e613c378a7a47a85247072a3975b5d8107cf81c52dfaa62b1f

clientSeed: 0xe6c859da7b90e4edce404d5774aad8f66879775e79a35b7a2c3bc0949dd886ce

serverSeed (revealed): 0x0887ef3363b0d23c7767e47c44c7365572c5ba8ead03acb898fcb3b464937a27

Rapid Firecancelled

serverSeedHash: 0x5bd49734f38104b3d43d0bbb65a840b2425d5dcce060ba9071ae11a8194da00b

clientSeed: 0x2997062c700098e1036cd1ebb3ae9b8dc746a464a7f339b9cfa0e5716a5af160

serverSeed (revealed): 0xd0df13089e9aa8a074f0978142a595826b03f019e0002ef102b53a35ef9cf322

Rapid Firecancelled

serverSeedHash: 0x1bd1e47024121721a9a4bd07469200b098171e1fa4d999f83aab33afecd78cbf

clientSeed: 0xea46d8c1779cddcdf21c701ee3e415e253f9109064c81fef46a5dbb42323d37e

serverSeed (revealed): 0x02b8ad7ea3fd1b5b4eddea0b57b162b4a989ea3ba5f57d9341bd0e27578fd8ab

Rapid Firecancelled

serverSeedHash: 0x652848abcf84fbc43434312c5433f4fb77055ebe6eab3765244f6fb9a85710f0

clientSeed: 0x269f72e88b376f0497812aa3041e487ee01ca1534ea24db5ebe9bc8e69c4701c

serverSeed (revealed): 0xc40e167043b68fe8e3d7ad5fd45ac5877f1b283bdfa60bf7ccf958823b36edfc

Rapid Firecancelled

serverSeedHash: 0x8241b651a39a39ab3ed840f74430fd440dcd6f84a5a5bf02a1c9628bc653252b

clientSeed: 0xcf20b7c36e1e44d176b48ce19e65866bf1d87178cc7200b64aa879558f0eda47

serverSeed (revealed): 0x4a2b8c9eab72d71536bf38094bcbeec85dac952c8d8c60291785ee6f993456ca

serverSeedHash: 0x0c500406d887b9bce19c78a47c833a8a5557d0c2d72046471e8667f91ec143bc

clientSeed: 0x836c50d30e9a576b2624b989a378fdfb9ee4e84cadad5c39f982e753e822e3d2

serverSeed (revealed): 0x8e7d8c45b44259bb5ab038389aeb3eb5065b03884578ac2a398cbec04bff0dc3

Rapid Firecancelled

serverSeedHash: 0x49607992dffff67c8019753f5a438dd1b67f8b9c38d1ae0a88e8aced771dcd78

clientSeed: 0x78df7d33dad6ca367c700db38518dba66a54aa0bb96de1546f0bb280485dc93e

serverSeed (revealed): 0x03842921307daa6bc3d5709f99da2dd7ce8dc2c28b65ea23ef8750014a6177c4

Rapid Firecancelled

serverSeedHash: 0xae7357d1f6d55b8271fe05607a43c1c13f0c7c3fae71c17c28eb955f50f4c903

clientSeed: 0x74647cc0b02467a04659b8f3bace0a425adaa95c612075bc3953e3795302fc48

serverSeed (revealed): 0xf338d2ca1b2df5fe78be33ef0eecc9f6794da8788a099d5821d47b3e481b5b60

Verifier