BlueGem

Provably Fair

Every roll on BlueGem is provably fair: the server seed is committed before you play, the second input is pinned by Cloudflare, and the math is deterministic — so you can recompute any result yourself. Here's how it works and how to check it.

Why it can't be fudged

Seed: generated before you ever click play. Before the roll, we showed you only its SHA-256 seed hash. Once you're done, we reveal the raw seed — hash it yourself and confirm it equals that earlier hash. Match means the seed was never swapped.

CF Ray:a unique ID Cloudflare attaches to the purchase request — Cloudflare's doing, not ours. Open DevTools → Network, find the POST /games/boxes/{box_id}/purchase/{count} request and look at the response headers: the cf-ray value there is exactly what we used. We don't generate it, we can't change it, and you see it in your own browser before we ever respond with the result.

Nonce: a plain counter (0, 1, 2, …) — the order you opened boxes in. No gaps, no reuse.

The formula: HMAC-SHA256("seed-cfray-nonce") → first 13 hex digits → scaled into the box's roll range → the item whose slice that number lands in. Same inputs always produce the same result.

Verify it yourself, in your own browser

  1. Open DevTools (F12 on Windows/Linux, ⌘ ⌥ I on Mac). Click the Network tab.
  2. Click play. Watch for the POST request: /games/boxes/{box_id}/purchase/{count}
  3. Click that request → Headers → Response Headers. Find cf-ray. That's the value used in your roll.
  4. After the roll, we reveal the raw server seed. Hash it (SHA-256) — it must equal the seed hash above. The cf-ray we report must equal what you saw in your Network tab.

Both halves of the input are pinned before the result is computed — the seed by our pre-roll commitment, the CF-Ray by Cloudflare itself. The roll is deterministic from there. We can't rewrite either side afterwards, and you can prove it in under a minute.

Live testing

Verify any roll yourself in under a minute.

Open validator: https://codepen.io/blue_gem/pen/JoYGMJN

Hash check tool: SHA-256 online — paste the revealed seed, compare the output to the pre-committed seed hash.

Quick checklist

  • SHA-256 of the revealed seed equals the seed hash committed before your opening.
  • The cf-ray reported with your results matches the one in your browser's Network tab.
  • Each box's item ranges tile its full roll range with no gaps.
  • Any nonce plugged into the validator reproduces the reported result exactly.

See it live: open a case · join a case battle