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

clientSeed: 0xb7d30ceb548b0ab20342e8d52f5bc568e3285582c03c6eea4178b4755bfd9f82

serverSeedHash (commitment): 0xe5cbef68835dcda78a37a87d41c4ba9e4031e2e77cc049081e81efbd9e05c181

clientSeed: 0xf5db29194fd7968053a48ba9aa3ae15e6343c93b384d479d3f3cd9671617c6bb

serverSeedHash (commitment): n/a

clientSeed: 0xf6639e86e3b7bf2e69797934932f9b7e265236ed3b02af07d8c2ebeab2de4269

serverSeedHash (commitment): n/a

clientSeed: 0xc7232ae2d71047eab03ff5d11ac53807851945f1f3754091bbb5f13cee458411

Rapid Firecancelled

serverSeedHash: 0x8aeef17a57a8d20e578c896c7afc841f47c25eecec8f2dc914a59fe66ec57650

clientSeed: 0x455be61b3c768c7f6bdc357dc9bc3a184c743e6370a3c8c7d96c507a915d16a4

serverSeed (revealed): 0xb00af35b44a467cd7f3a97522f58d1c1c412cf26d589ae20528dfa9855f23635

Rapid Firecancelled

serverSeedHash: 0x1b3d865993cb7f96b17f28daca0d90a72e2f433bcec0cf0d6ceee85582a75029

clientSeed: 0x640088a2d9c1fc486db3c42b6733b30f7aae0ef833314b77e3cc68bb14b6f0f8

serverSeed (revealed): 0xac49f4158ee668c87ec3d1ae210123478af758b5e12c583c1c3fd24f2dd383db

serverSeedHash: 0x94c60d77721255126cc7979c775d8ef5be0be16929818af4ddc60088f5b302db

clientSeed: 0x5b06794b2833cdc6016c836607c935394672433e3a4887a72b74deef89c1292a

serverSeed (revealed): 0x5356c5d48e35b6881383f14589a89feafa975d78fe0073816653de9ed9334f82

Rapid Firecancelled

serverSeedHash: 0x8ab50246effb6f829365068d94b61d9c915aec67b2aa2c52adc37f6c8e962337

clientSeed: 0xe30c4ab80e61b10fe7e0e75018c6fb62f0c26273dc9a0e786a24eb2fdebe25ee

serverSeed (revealed): 0x43406e2fe5ebde7c771bd3bac54301d4fed83fa6b1a1252997256ca7fc10fa86

Rapid Firecancelled

serverSeedHash: 0xbf6c39b44ff991d1d8b4da1e702ac3e521ca9e3ae44e8c4c4630ce1afa2cd80a

clientSeed: 0x9981f9ddb4f2fa2116eacaa475f9c77a85e55df12389f446accc5039d94fbc93

serverSeed (revealed): 0xd01af1286e159c9ab386925b3407dceb4ef44926464c2cf081255ac35a3445e2

Rapid Firecancelled

serverSeedHash: 0x4e8c945d88d9b2de52953adcddf74167ef5815996ba6b8b2ed58d01c6f086acf

clientSeed: 0xf7863035b040cc5c2da74750953796534a738892f68c31e4b403cbde86ecf4d9

serverSeed (revealed): 0x1de0f3805ce8948d7fce5e4762b0b6d023bbe8429c90655d5296f6f084e2f032

Rapid Firecancelled

serverSeedHash: 0xdd85b037dd21c30220ae051d8fd6b92bc599ab270d5b1de806629aa4dcf00820

clientSeed: 0xe37f2348435d8f8353c13982d79eef2a5c0b63f58cb0b0d14b0c731d4f98175c

serverSeed (revealed): 0x7e51711d2187999b9a65ec0688f87a8c962e3fe7abaf1b04ef1b24c17a427458

Rapid Firecancelled

serverSeedHash: 0x62a496ea16aa7e68afc02675181b4fc5c91fe22930acf11dae324bbc4d957bdf

clientSeed: 0x07ae834b90aec5b4b5ddd193ea86d284acb08606d34f2927058df0d61153d0a3

serverSeed (revealed): 0xfb2dbcbee8ab11f08ed674dfc63daa6450a2c18e8d38766f9fd7a2ee907d5584

Rapid Firecancelled

serverSeedHash: 0xc07890e496757521fbbdb60b8a4bcb792fad7d90055e73db2fba36851d53d163

clientSeed: 0x4e41a71af711ed8ce2ff4e58734fed235cd6f4c01447c1e0a83b2c81eb83111a

serverSeed (revealed): 0xd4b34248c2b23ba64116149e5b8345274444355446452e2a1a3df26b97e9476d

Rapid Firecancelled

serverSeedHash: 0x610c3f5259edfbb692f40c8491b3bd06470e57e3e206f6e07b06616f56125d81

clientSeed: 0x8c3a3aaa4147474dbcb5f85dee4b3dd892ad059c8d10215f48c930fb172b84f1

serverSeed (revealed): 0x65af3e064c05f07f0f4ddad8855b501c7d10839442f5daaa5b31a907e1d5a7a6

Rapid Firecancelled

serverSeedHash: 0xf8c1d664d8aed5c8b77c6a93acc6f6c5f02fafce94400eaadc757600184f0e0d

clientSeed: 0x92b7f508fa6ada9369024e395ee0cf8cc5539df7069ad88103253dafa161e0ce

serverSeed (revealed): 0x563d4b8b0dfb4a78385b871a412d46ca2a1b68c63e18e75ac41d966d8440d8f2

Rapid Firecancelled

serverSeedHash: 0x0a7ad51205d7a6120c69faa466ffd4d515e6742e4989dbc4ce3df059fd2732f5

clientSeed: 0x871939fd011051ed81af13a4a3b0c3d87ce44f747cebc9b14a80aae372022017

serverSeed (revealed): 0xe0d361050bfc2c129fff47d16738b5b3ae496d525dac6ba5902b5381f6f9e2e9

Verifier