Provably Fair System for Infinite Pack Battles
Infinite Pack Battles let multiple players open from the same infinite-pack pools and compete over the results. The fairness mechanism behind Battles is built directly on top of the standard Infinite Pack system, so everything you already know about how a Roll is generated and verified still applies. What changes is how the seeds are scoped and how entropy is gathered, since a Battle involves more than one player. This section walks through those differences.
A Battle is played over several rounds. In each round, every participant opens a pack, so a single round contains as many draws as there are players. What matters for the fairness math is the total sequence of draws, not the rounds they happen to be grouped into.
Per-Battle Server Seed
Unlike ordinary openings, where your Server Seed is bound to your account and reused across many draws, a Battle uses its own dedicated per-battle Server Seed.
- The Server Seed is generated the moment the battle is created, together with its own dedicated Secret Salt.
- Its Public Hash is committed and published before any round is played, exactly as it is for standard openings. This is our binding commitment that the seed was fixed in advance.
- Every draw within that battle uses this single per-battle Server Seed. The Nonce counts how many times the Server Seed has been used, incrementing by +1 with each draw. Because a round contains one draw per player, the Nonce advances by the number of players over the course of each round.
Because the seed is committed before the first draw and revealed after the last, the entire battle is sealed ahead of time and fully auditable once it finishes.
Combined Client Seed
In a standard opening, the Client Seed is yours alone. In a Battle, no single player should be able to predict the rolls, so the Client Seed is built from everyone at the table.
- The Client Seed for a battle is the combination of every participant's individual Client Seed, joined together in seat order and separated by commas, in the format
ClientSeed1,ClientSeed2,ClientSeed3. - Because all participants contribute entropy, no single player can foresee the rolls. Even the player who created the battle cannot predict the outcome, since they do not control the other participants' Client Seeds.
This combined Client Seed is then used in exactly the same way as a normal Client Seed when generating each draw's Roll.
How a Battle Draw Is Generated
Each draw inside a Battle follows the same Steps 1 through 4 described in the Infinite Pack guide, with the per-battle Server Seed and the combined Client Seed as inputs:
Here combinedClientSeed is the comma-separated string of every participant's Client Seed, for example ClientSeed1,ClientSeed2,ClientSeed3, and nonce is the index of that individual draw within the battle. The output is then truncated, converted, taken modulo 100,000, and offset by 1 to produce the Roll, identical to standard openings. The Roll is mapped against the published Odds Range, and a card is delivered from the corresponding tier.
Seed Reveal
The biggest practical difference for Battles is timing.
- The per-battle Server Seed is revealed the moment the battle finishes. There is no waiting period.
- The full draw history is available immediately on the battle detail page, including the combined Client Seed and, for every draw, its Nonce and resulting Roll.
Because each battle has its own dedicated seed, the 500-use seed chain that governs ordinary infinite-pack draws does not apply here. You never have to wait for a reset limit to be reached. The instant the battle ends, the seed is exposed and every draw becomes verifiable end to end.
How to Verify a Battle
Verification works just as it does for standard openings, using the inputs shown on the battle detail page.
- Verify the Server Seed: Recompute the Public Hash from the revealed Server Seed and its Secret Salt using HMAC-SHA256. If it matches the hash committed when the battle was created, the seed was never changed.
- Verify any draw: Take the revealed Server Seed, the combined Client Seed, and that draw's Nonce, then recompute Steps 1 through 4. The Roll you reproduce must match the one recorded for that draw. If anything fails to match, fairness has been broken, and you hold cryptographic proof of it.
