Provably fair
Every daily seed is committed before the first roll and revealed when the day ends. Each player can reproduce their own prize-roll outcome from public data.
Today’s commitment — Nov 10, 2026
published before rollsThe server published this SHA-256 hash before the day’s first roll. The seed itself stays hidden until the day ends.
5c587a2b53fdccd95ae1eec8d4a165e9628ef94b8130ef09ff5a27e5c3cdd4a3Committed at 2026-11-10T08:10:01+00:00 UTC. Prize rolls use roll index 0.
Revealed seed — Nov 9, 2026
revealedCommitment
9f9224b7342d640cf86a238910d36895e9a82cd5003553957822b9afc43c6d44Seed
1ca85fb442c0a3abe761dd6638778836b359997c743446b3665b292bba9e9901Committed at 2026-11-09T08:10:01+00:00 UTC · revealed at 2026-11-10T08:10:01+00:00 UTC
How a roll is computed
- The server creates a random 32-byte seed at the start of each Pacific day and immediately publishes
sha256(seed_hex_text). - A prize roll uses
roll_index = 0. Fun rolls use 1, 2, 3, and so on, and never enter prize drawings. - After midnight Pacific, the seed is revealed. Hash it and compare to the published commitment, then run the HMAC below.
import hashlib, hmac
def roll(seed_hex, user_id, day, roll_index, sides):
msg = (user_id + day + str(roll_index)).encode("utf-8")
digest = hmac.new(seed_hex.encode("ascii"), msg, hashlib.sha256).digest()
return int.from_bytes(digest[:8], "big") % sides + 1
# commitment check
assert hashlib.sha256(seed_hex.encode("ascii")).hexdigest() == published_commitment
Seed history
Prize rolls are one per account per day and cannot be replayed. A revealed seed never affects a past outcome; the seed was fixed before any roll.