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

clientSeed: 0x4ca8c3ad5069bc8bf889f04648609b386b7c90f55941a2925638f5780ea64619

serverSeedHash (commitment): 0x03c8b080c90274037dd4e4b372c222c8536934fad58ba7eb589ac57dfb9739bb

clientSeed: 0x1f959620b194993423d1e23df97ffbabebb1cad9cdcf1c8606427ac14d223872

serverSeedHash (commitment): n/a

clientSeed: 0xf6639e86e3b7bf2e69797934932f9b7e265236ed3b02af07d8c2ebeab2de4269

serverSeedHash (commitment): n/a

clientSeed: 0xc7232ae2d71047eab03ff5d11ac53807851945f1f3754091bbb5f13cee458411

Rapid Firecancelled

serverSeedHash: 0xed988a6444f0eac97df09b059d694e90f1457da81797496451fcdc0f10bfa898

clientSeed: 0x7ab01d9306c3ef636d20030ed40dd085826397b47ee0e4b7d00c2467129666f6

serverSeed (revealed): 0x14275416da7dcfdd5609dfd9703049b9cee61a910997079794e93fe373ccb712

Rapid Firecancelled

serverSeedHash: 0x3289a9d2898d1fc8a09c32521f185ebd3ca61aa1092e6ee5933ff06c036b2a6d

clientSeed: 0xb62ff774e32682cf8c6b356da9e3d55a40fc2e53c44ad693028ecace12b97924

serverSeed (revealed): 0xe74fd7dc8bea79d6a4bdc6d893f25c3f6790e411f427f65dce63468b902407ed

Rapid Firecancelled

serverSeedHash: 0xfa4b1515938104697e448aae10a1a5de1d94ffb67a5afb4244f7559623f81a0c

clientSeed: 0x67d4c99d67df027d36c0b13a17bc82eb5ec97bdf766ce367379be6d8e2c3788a

serverSeed (revealed): 0xb0dae7d36c5ae916a09483eb2cebc5a8eb5c7ea99a3772db5ba4b73a7994bff6

Rapid Firecancelled

serverSeedHash: 0xb9ccedcf6f1c4ab5d38875ec532b279d701ebfcdc34486c1e4b5d17f7d4b7d70

clientSeed: 0xd9891b88f8de2b6fd263696551ab88f647e5f3e36739074bf35566634b2940a8

serverSeed (revealed): 0x5a9a7749ab3f40e8bd8ba2893abbee0556e76c9f3b3d0f5e8f5a2c820d01c10c

Rapid Firecancelled

serverSeedHash: 0xf8608851a1c5e5a0398f31fe4c1a40acb9c7f1d63067316ab3448e9655bb3c6a

clientSeed: 0xf77b8cc644dc9ffd7170ab7824dd70751a931589883ec2470152218cafde12fc

serverSeed (revealed): 0x0183fadc5e42458b149d5e3521242d1d479af2663fbb03af7d5a0c9514992e48

Rapid Firecancelled

serverSeedHash: 0x57ef1252f091f1ec94c8445e15d79a135b875a5400e9107ddd66f3552a997036

clientSeed: 0x01896293b7c9c6ef2fd746e96fe49e119ee8f8a9d6cfc499be119de6c25da7e8

serverSeed (revealed): 0x73dfed68fb1c70ea2639d7511ec6d6fd8a940e7f25382d1dac37ced395b724d7

Rapid Firecancelled

serverSeedHash: 0x998715241d9ee48739407be77fe29894dc522bf8840935eecf67f369621c053f

clientSeed: 0xdf75d0c2ec8e330fabdf9365619059910a1fe7f83674e51d23dd8c706863d8d1

serverSeed (revealed): 0xc9b16eb79a61c0517d25b5c58c583f7d0ec2cd1467e9aa11fb3ff75526da6bc3

serverSeedHash: 0x47a820f7a1ca6094899d559b462b5bc4a0879d1d4f572682825cb032e9c9b7fc

clientSeed: 0x9d763dcd5dfb1ecbfb4f2ecee385d818b32ed1c59a63dd77419b19cc92bfc13e

serverSeed (revealed): 0x31904caef7c05161ea5d094d6952cb94476541d6195016254b73e47b7c271e6f

serverSeedHash: 0xdb4a5ecfa407c902b58dcabd913be77eea81d8f710bc6b40e91aa6f06e135668

clientSeed: 0xf55b3829c9b04f1855bc3b39b372fb196f279765d457b633708747c99379561b

serverSeed (revealed): 0xb5bd0f722dea1eddbcbb375f43d126c04477c99f6261ea3939f6834ff35222c2

Rapid Firecancelled

serverSeedHash: 0x2f2e6162b74615692b5170ba4adf22886a6302027800c2b360a9f9ef69d1b893

clientSeed: 0x6553935504259e90f5da2c3ef563a76972f8433a2be640f00c4a960f9258c0d2

serverSeed (revealed): 0xb675860406b1c549c2ab2358ca67f538376b4690de243c3fb499285b06a0492c

Rapid Firecancelled

serverSeedHash: 0x7c4c2727352e750d141d0b55199c07c9d38aafa9774becea2fbddcb0c96bc241

clientSeed: 0xc8ab5eda6c920eb5b75dbb6ba68b654e764c7489a6f11b647d2d077ba2caf56d

serverSeed (revealed): 0x2167cad1720cfc81a556bff8de2a6dcae971c7e6552d739a96bc23fe82b7eb53

Rapid Firecancelled

serverSeedHash: 0x9efafd0e4cd974a5f5d435c45e113bd0c75ace0c0e51b16f0bb80076db78727d

clientSeed: 0x5eeded14e7ae4bc2171c511d9de743a80155a5a1e20307ff33b569261c8dda73

serverSeed (revealed): 0xe20fefab9a8ea57f5e376b62cea11c3d6768f1a1d1bfc521139e65a3f192ca92

Verifier