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

clientSeed: 0x2e515b642ab6364586ca4dbb837cd85f9b9d32ed8d56ad609d7de848bfcc71ae

serverSeedHash (commitment): 0xc0c38014e816345a3449716154c6b8ca1cc39e16e1f18779fddbf2a2d2459aec

clientSeed: 0xb13248b082ec397da6383f668a883ea157b3e8109ce188c824a1bc8fd98b3b68

serverSeedHash (commitment): 0x0cd3a12cf486e400751dfdb438e1cd2d633d0dddfad0ffd1f02cb449d6f483fc

clientSeed: 0xcc092f5e88b9f3fc9c505dfb423055302acb82a91891b4caaf65dd1438f76e34

serverSeedHash (commitment): n/a

clientSeed: 0xc7232ae2d71047eab03ff5d11ac53807851945f1f3754091bbb5f13cee458411

Rapid Firecancelled

serverSeedHash: 0x0b2fcbaeace913f5bbae1947c2bd21e789dd54cdf781ff63c1fa64bad6ad8e8b

clientSeed: 0xda1023459338e0c2265ea50141c9926ab34078845eea7a3b8d4a43849ca28678

serverSeed (revealed): 0x909e92da7cf123ab0f41be2986fc6fc3b5a839f9a0f1eb8076dd70738893a203

Rapid Firecancelled

serverSeedHash: 0x75a6915a26eaab8fda92ea3d2f074d3ff96d0cb7dc3f178a358ba5928975fb3d

clientSeed: 0xe44c4d23399f793da524aecd5054416f10459b977f00b3e7323354132d599f77

serverSeed (revealed): 0x5e49669ae0927da90732c946b132580c0f683e827a5d04fee1ed8f61f8e6f286

Rapid Firecancelled

serverSeedHash: 0x0d3054e04d2994fa7ed751e2891cad6cb4ddc87871ce4901bd1f329f26a521b3

clientSeed: 0x1560cfd5aca51113e3de2e1fa4c55083f7253603919e52a87a97b329aa9841ae

serverSeed (revealed): 0xabf8d8ec43aefba37da6b6bb659e12fd71c12cd9581faad00aa59e752af9440a

Rapid Firecancelled

serverSeedHash: 0xf1f497b5e6beb3f41eed00d9da112009d7608fd71744693cd693b8bd05f37eff

clientSeed: 0x12c3dcf97d6b6d500ad694e30711006630553aacea0be009941e652a43d6dcb8

serverSeed (revealed): 0x2772a8cb8db3f7cfc7f0e22db3d0d98257207d649786bcec47082fa0370058f9

Rapid Firecancelled

serverSeedHash: 0xc940921036cc97d30bb3e94416d2a46a9f0fdff9beeef4148e2bfc204d692757

clientSeed: 0xc55405c8649b7f4f045786e818dddb2eead8bef23d7b1e09e0b9fabdebeef7c4

serverSeed (revealed): 0x45adeaaf83c23792a152e456212f5788df28d2ad258506968e197600a7cc5e5a

Rapid Firecancelled

serverSeedHash: 0x2d025e7c2c0a6f5870536ee6d26702f9c91ecfc97ae573d2d5e067a784b08ca9

clientSeed: 0x1f9ab88409a7de7ad824a1c94c0b2c5f16d30db2714a01dda889ff0c8fc028b9

serverSeed (revealed): 0xc6fd4ea6fb2ded93a7351bbd05d164225bcdd5baee08b19d819b03f1e4c8594b

Rapid Firecancelled

serverSeedHash: 0xca11e7844fd163e9b9676d5ffa63f1a7bd03cdb2ae82e40e45e34ebc6aa7c9dd

clientSeed: 0x26f18cea3462fd2e18f853414ddbf54366f78828ea69a952714dff43187219fb

serverSeed (revealed): 0xa0905db99f6aa84d9c47acd8a7ed431b500d1b608cb06c7dc1da3dda51f7febb

Rapid Firecancelled

serverSeedHash: 0xee9d94e85259da11ca65f1129c7a44d19ecf342c8a29b0cac6fc08c1a6eb49e3

clientSeed: 0x54d576479345fc0e51684bb56970ce8a2fcbab52de58756f1e283236ea666724

serverSeed (revealed): 0xf4d41709a98e367c890352ae0a8005d58fa79a6aac802c673af22d4870bc54a7

serverSeedHash: 0x6176d67feb0bed9261f30fba3c7306c0a088b527eb47ef7dbdf7e48f678e1f6c

clientSeed: 0xff4c1ed7ad023c5ec7e99de008a8891ab4c48c7064d7f837074620e5cccfa6e0

serverSeed (revealed): 0x161642b0f61fb2bc344471f5114cd35221a00a1eb07ca9d6a675b6597a732763

Rapid Firecancelled

serverSeedHash: 0x008dd3dbbb28b103002f8a1f7b4e186b4a4744069b3e5a6d8665951cfb73e2de

clientSeed: 0xa1ddc71ab39879a4bf1d13b98d57b3ecf0ff1985f7570152bebee193a3124d6a

serverSeed (revealed): 0x59cf4717479d398da1a454cbcab5eb3ccedaa112ec291c00d234c84576268660

Rapid Firecancelled

serverSeedHash: 0xb707c0bf61a07a72d9da7a65337f16bdb51c151589d4b898f2a4c142d69dea5b

clientSeed: 0x6af8046a1c9be75fd70e3c10363108446cc33b647e17cfe6afcea74a94dcccc5

serverSeed (revealed): 0xcf64eda47770ecc7f40ebf692930f7df40057bbf96d0e80621cc1805ff90997e

Rapid Firecancelled

serverSeedHash: 0x815c92c2a9e839359d129bf7c417bce0b0fd91c4ac5efc9ca704fb9ecd690cdf

clientSeed: 0x8089ca41d9c344f9433751e48d4d12e88156f3de438a1ce1e3d1ae54118b0690

serverSeed (revealed): 0x3f3ddfd3ff1df127b1a23da7c5c5cd891b36e2ef669abe2889545ac00a1fcdf6

Verifier