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

clientSeed: 0x20ff62a86323cc4060fe5421cb67b5fdac473f7c4f7dbe80cd091ed982459596

serverSeedHash (commitment): 0xe3c654ad59392bba4634f71490448b5c4b5bb246352ee82bd3e4017067d1cf42

clientSeed: 0x799c4268bcf7f7b37497de61cf5e0688edcc5227404614bce72477e7d5cfe330

serverSeedHash (commitment): 0x0cd3a12cf486e400751dfdb438e1cd2d633d0dddfad0ffd1f02cb449d6f483fc

clientSeed: 0xcc092f5e88b9f3fc9c505dfb423055302acb82a91891b4caaf65dd1438f76e34

serverSeedHash (commitment): n/a

clientSeed: 0xc7232ae2d71047eab03ff5d11ac53807851945f1f3754091bbb5f13cee458411

Rapid Firecancelled

serverSeedHash: 0x678f10e44dc3f58e7f5797c39b42f98d37328e545a8a3e8cc27d3e06de093761

clientSeed: 0xfde7be0d1855a45ff7e85f7dbab4c2d1bf94dea2571f8b33fa7cda091d768362

serverSeed (revealed): 0xb13076cb57379ee0f36ea9151fc10acc06226d584fcd30f3c5fe9843d94ff26f

Rapid Firecancelled

serverSeedHash: 0x9352da434efb16eebd3aaf35473957f0f43a80f7ad4eb1727187102657ba4ff4

clientSeed: 0xc2d722a7db4fcf850434613d202bd7d162a63bbc844f8af53abda584f1b59fbc

serverSeed (revealed): 0xab8229d5ea66f7abae4064b1e836f1a8fb4ba55082745c3fcfdb59a8318864ee

Rapid Firecancelled

serverSeedHash: 0xd135235c3c6260c613dedba4e1b817f4d49c2f9389519bf4b39f4a93bfdaeab2

clientSeed: 0x83dfa5b62182652bc9ab7698bbfa83a83057cc6875bde974d92b5e0cb497a684

serverSeed (revealed): 0x5aec4c3a0d11cc355bb75af20209eac7a79af714dd1f2bb4c92e12cc66599006

Rapid Firecancelled

serverSeedHash: 0x32f11722f3836f501f1f32da9ba7d9b7627eb05249135c529922ebe6349fad9c

clientSeed: 0x8232d0ac183fda2ca86cf59a881e6c59261dacafd8bd1ffbff9fae3a8497efb2

serverSeed (revealed): 0xafcf68c40dce937b183778e5d69068b58fbc280d79358ed04416667bb3b129f0

Rapid Firecancelled

serverSeedHash: 0x352ac276505bcc085d2e5d01a0136934ac10ebcf8a407ad11278e017a1c2a3bb

clientSeed: 0xd833b0ba12d761e55ce22d46993a0dd944e5094d3a12d3e30e4f001a2a097f82

serverSeed (revealed): 0x716374f7a02a9dc9d0c74882fd5e0304e56c00031192eb4b2e6d571ae4207f0a

Rapid Firecancelled

serverSeedHash: 0x4540b2e2e7eb69c68cc093470e26684564ee2f5a4b78a4ea7716cadd8fb5b0bb

clientSeed: 0x405047dd8712a394b80b76b1b72b016ba08c38b3603bdc54b1d8258c71d81e1c

serverSeed (revealed): 0x4b6c3cc1660f5673cdbfea42d152713aa1d8638e3d85c754871babcbe5793e7b

Rapid Firecancelled

serverSeedHash: 0x89f206c2c2ff145e34e9e71b8e06e42fc44e14f77d431d2afd49a35266e028be

clientSeed: 0x1924b19dd7f064dab0f0a202eb1c8cd41043cc80605b0a2bc2af9dc443460680

serverSeed (revealed): 0xa894b42205b2a1cb510e4b2f4115af444012ec0edac824ce962e6db7575d1405

Rapid Firecancelled

serverSeedHash: 0x1af7316b2ec5bba4e97e3dcb4a6f38080180ef6f3e6a307641413d25ace02567

clientSeed: 0xb12de73c27a7d61404d055c62445fab2795813742ac4fb258535dfda953c57ce

serverSeed (revealed): 0x9b534b411c7a62fc395b96258b1fc7e27a9ecf6d9316b56b1fe6eb9e8180e32b

Rapid Firecancelled

serverSeedHash: 0x4a2558be74e90aba9af1bec2d0b6c38c68c8708e49281a2ca8c77ecfd90cdffc

clientSeed: 0x9e08366f2da38d0e38f5fd55ed3cc703026385be2c38d7ce86efff793125c9df

serverSeed (revealed): 0xadd67e3a596302d4ea5d980d321290ce8b2f7b4188ad5a50ab912ee9d07fbbd8

Rapid Firecancelled

serverSeedHash: 0xaae598fdb79f709daa6e1c2ed474347ce32e1f7422393ac1bb1881955ba0522e

clientSeed: 0x766bbae9db6eb37a37b4cf8c7062f4fd300d9520da57a44b47349ef536fc8c9e

serverSeed (revealed): 0xd4e6c93d35572701d5f0b7e4de239a7660500a286e25505ba19b50c05cba60a5

Rapid Firecancelled

serverSeedHash: 0xc9512065bd98aa563f55deb2f61f2828ad3047c703c96044b7f61d27f2b39cfc

clientSeed: 0x82012ce0c90dbeb7ad549a17a7fdfd574b0d02e1a46932181bec8171b8591e66

serverSeed (revealed): 0x4687ed92b81f6359d400ae069ae21192d8786cab6408b3fefe708b00254e0eba

serverSeedHash: 0xe56f012dfd4912bf76e42deba03cc854102f7c73436350c2d4fcc58ed0c30e7f

clientSeed: 0xe02ca03a25cbf3903dcef10de4c1c53cbc82d16aa69190cf88adfc1530dc6613

serverSeed (revealed): 0xd85c0ae3532e501454bb200675ce5786d7366c4939a9228f559b31258dd58ae2

Verifier