At Packs.com, we prioritize transparency and fairness by using a Provably Fair system. This system allows you, the player, to confirm that the results of every opening are genuinely random and haven't been manipulated by us to favor the house or any specific player. Here's a detailed breakdown of how it works.
Verifying Game Results
If you would like to verify the results of a game, use our verification tool below.
How It Works
Every opening on Packs.com -- whether it's a Simple Pack or a Complex Pack -- uses the same cryptographic foundation to generate a random ticket number that determines your result. The system combines three critical elements:
Server Seed: A secure, random string generated by us, which remains hidden until you rotate your seed pair. Before gameplay, we show you a SHA-256 hash of the server seed so you can later verify we didn't change it after the fact.
Client Seed: A random string created by your browser, unique to your session. You can change this seed anytime, giving you an element of control and ensuring the outcome is influenced by your input.
Nonce: A counter that increments with each opening, ensuring every round produces a distinct outcome even with the same seed pair.
The system uses HMAC-SHA512 to deterministically derive a hex hash from these values, then converts the first 8 hex characters into a ticket number between 0 and 99,999,999. Each product in a Simple Pack or Complex Pack slot is assigned a specific ticket range, and the result is determined by which range your ticket falls into.
Simple Pack Provably Fair
When you open a Simple Pack, each card inside is associated with a specific range of ticket numbers. Upon opening, our system generates a random ticket number that determines which card you receive.
For each simple pack opening (when opening multiple at once, each opening is numbered starting from 1):
The system combines:
serverSeed:clientSeed:nonce:openingNumberThis combined string is used as an HMAC-SHA512 key (with an empty message) to produce a hex hash
The first 8 characters of the hash are converted to a decimal number
This number is mapped to the 0 -- 99,999,999 ticket range
The resulting ticket determines which card you receive based on predefined ticket ranges
Each card in the pack is assigned a contiguous range of tickets proportional to its drop chance. The card whose range contains your ticket is the one you receive.
Pack Provably Fair
Complex Packs work similarly to Simple Packs, but each complex pack contains multiple slots (e.g., 5 cards per pack). Each slot generates its own independent ticket using domain separation to ensure slot results are uncorrelated.
For each slot in each pack opening:
A suffix is generated:
openingNumber-slotIndexThe system combines:
serverSeed-suffix:clientSeed-suffix:nonceThis string is used as an HMAC-SHA512 key to produce a hex hash
The first 8 hex characters determine the ticket (0 -- 99,999,999)
Each slot has its own set of items and ticket ranges, and the ticket determines which card is pulled for that slot
This means in a single pack opening, you get one independently determined card per slot, each verifiable separately.
Seed Rotation
Every time you open a pack, your server seed is rotated automatically. The previous server seed is revealed and stored in your history so you can verify it.
You can manually reset your server seed at any time, which will reveal the current one.
You can change your client seed at any time to something of your choosing (3--20 characters).
Changing or resetting seeds does not reset your nonce.
How to Verify
Go to your Opening History
Find the opening you want to verify -- it will show you the server seed, client seed, nonce, and ticket(s)
Use the verification tool to input these values
Confirm that the generated ticket matches what's shown in your history
You can also verify the server seed hash: before the opening, the system showed you
SHA-256(serverSeed). You can hash the revealed server seed yourself and confirm it matches