Provably Fair

How every random outcome on Pokewaffles can be independently verified.

1 · What “provably fair” means

Every random result — the winner of a raffle, the value bucket and card you pull from a pack — is produced by a deterministic cryptographic procedure. Before an outcome is known we publish a commitment (a hash of a secret seed). After the outcome we reveal the secret. Anyone can re-run the algorithm with the revealed inputs and confirm two things: the revealed seed matches the commitment, and the same inputs reproduce the exact same result.

2 · The building blocks

The random number generator combines three values:
  • Server seed — 32 random bytes generated by us and kept secret until reveal. We publish its SHA-256 hash up front.
  • Client seed — a value you control. For packs it is tied to your account; for raffles every participant’s seed is mixed in.
  • Nonce — a counter that makes every draw use a unique input.

These feed HMAC-SHA256, producing a byte stream that we slice into 4-byte chunks and convert into uniform floating-point numbers in the range[0, 1). This is the same well-known construction used across the industry, so any standard crypto library can reproduce it.

3 · Raffle draws

When a raffle is created we generate its server seed and publish only the hash. Each entry records the buyer’s client seed at purchase time. When the last ticket sells, we combine every unique client seed into one global client seed (so no single participant — including us — controls the input), set the nonce to the global count of past draws, and compute a single float. Multiplying that float by the number of tickets and rounding down selects the winning ticket. Every input then becomes public on the raffle page.

4 · Pack openings

The first time you open a pack at a given tier we create a seed pair scoped to your account and that tier, and start the nonce at zero. Each open increments the nonce and computes a float that selects one of the pack’s cards by its published pull weight (each card’s % is shown on the pack page, and they sum to 100%). You can rotate your client seed at any time; past openings keep the seed they were created with so history stays verifiable.

5 · Box openings

Mystery boxes work exactly like pack openings: a seed pair is created the first time you open a given box and the nonce increments on every spin. The float it produces selects one of the box’s cards by its published pull chance (shown on the box page, summing to 100%). The CS-style reel is pure theatre — it always lands on the card the seed already decided, and every open is recorded so it stays verifiable.

Note: Pokewaffles uses virtual gems and fictional card data — gems have no cash value and no physical cards change hands.