Skip to content
CheckMyPull

Verify your PackDraw roll

Verified: reproduces real results

PackDraw publishes the JavaScript its site runs, not a description of it. Packs resolve to a ticket from 1 to 1,000,000 via plain SHA-512, and we reproduce it.

Live verifier
0 network requests

Step 1Where did you play?

Using PackDraw pack open: SHA-512 over clientSeed:serverSeed:noncedetails

Plain SHA-512 over clientSeed:serverSeed:nonce (colon separators, client seed first). The full 128-character digest becomes a big integer, modulo 1,000,000, plus 1, giving a ticket from 1 to 1,000,000. The item whose ticket range contains the ticket wins. Battles use a future EOS block hash as the client seed. The server-seed commitment also uses SHA-512.

Where to find your numbers on PackDraw:

  1. Your server seed hash is in your PackDraw account profile before purchase.
  2. The unhashed server seed is exposed once the purchase completes, not on seed rotation, so a pull is checkable straight away.
  3. Client seed, server seed and nonce for any open or battle are in your pack purchase history or battle history in your account profile.

Source: PackDraw's own fairness page

Step 2Paste your numbers

Runs entirely on your device via your browser's built-in cryptography. Don't take our word for it: open DevTools → Network, click the button, and watch: zero requests.

Where to find your seeds on PackDraw

  1. 1

    Your server seed hash is in your PackDraw account profile before purchase.

  2. 2

    The unhashed server seed is exposed once the purchase completes, not on seed rotation, so a pull is checkable straight away.

  3. 3

    Client seed, server seed and nonce for any open or battle are in your pack purchase history or battle history in your account profile.

How a PackDraw pull is actually decided

Three values decide every pack you open, and two of them are fixed before you click.

The server seed is PackDraw's secret, generated ahead of time and shown to you only as a fingerprint, which locks PackDraw into a value it cannot change afterwards. The client seed is yours, visible and editable, and it exists so PackDraw cannot pick a server seed aimed at you specifically. The nonce counts up by one per open, so one pair of seeds produces a different result every time.

That much is standard. What matters for actually checking a pull is the exact way PackDraw combines them, because that part is not standard at all.

The formula, precisely

PackDraw joins the three values with colons and hashes the result:

clientSeed:serverSeed:nonce
        |
        v
   SHA-512  (plain hash, not HMAC)
        |
        v
  128-character digest read as one very large number
        |
        v
  ( digest mod 1,000,000 ) + 1  =  your ticket, 1 to 1,000,000

Four details in there are easy to get wrong, and each one silently changes the answer rather than producing an obvious error.

DetailWhat most sites doWhat PackDraw does
Hash functionHMAC-SHA256 or HMAC-SHA512, keyedPlain SHA-512, no key at all
Seed orderServer seed firstClient seed first
Digest usedFirst 8 or 13 hex charactersAll 128
Commitment hashSHA-256, 64 charactersSHA-512, 128 characters

It is a plain hash, not an HMAC

PackDraw skips the keyed step other sites rely on. Most provably fair sites use HMAC-SHA256 or HMAC-SHA512, which take a key and a message as separate inputs. PackDraw does not. It concatenates everything into one string and hashes it once.

The client seed comes first

This is the single most common reason a PackDraw check appears to fail. Hashing is order-sensitive, so clientSeed:serverSeed:nonce and serverSeed:clientSeed:nonce produce completely unrelated digests. A verifier written for a site that orders it the other way will return a plausible-looking ticket that is simply wrong. LuxDrop is the clearest example: same SHA-512, same colon separator, opposite order.

The whole digest is used

Many sites slice off the first 8 or 13 characters of the hash and convert only those. PackDraw converts all 128 hex characters into a single integer before taking the remainder.

The commitment uses SHA-512 too

The fingerprint runs twice the length you may expect. It is a SHA-512 hash of the server seed, not the SHA-256 that most sites use. If you check the commitment with SHA-256 it will never match, even when everything is correct. Count the characters: 128 means SHA-512, 64 means SHA-256.

From ticket to item

The ticket on its own is just a number between 1 and 1,000,000. Each item in a pack holds a contiguous block of those numbers, sized to its stated chance, and whichever block contains your ticket is what you pulled. An item with a 0.5% chance holds 5,000 of the million tickets.

This is the part that makes the check meaningful rather than academic. Reproducing the ticket proves the number was fixed in advance. Seeing which range it lands in proves the number maps to the item you were actually given, and PackDraw states those ranges are shown in the pack details, which is more than most platforms here publish at all.

Where your seeds live, and when the secret half appears

Everything a check needs sits in your PackDraw account profile. The server seed hash is there before you buy, and the client seed, server seed and nonce for any completed open or battle are in your pack purchase history or battle history.

The timing is the part worth getting right, because it is unusual and this page had it wrong until 20 September 2026.

On most platforms the unhashed server seed appears only when you rotate your seeds, so checking a pull means first retiring the seed pair it belongs to. PackDraw states that it exposes the unhashed server seed once your purchase completes. A pull is therefore checkable immediately, and a pull from months ago is as checkable as this morning's, provided its history entry is still there.

What does not change is the direction. The check only ever looks backwards, at values already revealed. Anything offering to predict your next pull is working from a number that does not exist yet.

Battles work differently

No single player's input can decide a shared outcome, so battles borrow their randomness from somewhere public. PackDraw swaps your client seed for the hash of a future EOS blockchain block.

The reasoning is sound. In a battle there is more than one player, so no single person's client seed can be the fair input. A block that has not been mined yet is a value nobody at the table can know or influence, including PackDraw. Once the block exists, anyone can look it up on a public EOS explorer and confirm the same value went into the result.

Jackpot battles publish the draw but not the ranges

Jackpot battles take a different route again: SHA-256 of the winning round's EOS block hash, reduced against the battle's total ticket count, with each player holding a contiguous range sized to their share of the round.

PackDraw publishes that code too, and reading it closely shows what it can and cannot settle. The published function takes the ticket ranges as an argument. It draws the winning number and finds which range contains it, so it proves the draw was honest; it cannot show how the ranges themselves were built. PackDraw also names an optional "upside down" weighting that changes how shares become ranges, without specifying it anywhere. So the half of a jackpot most likely to be disputed is the half the published code assumes rather than computes.

We have implemented the draw and not confirmed it against a real jackpot result, so it sits at "awaiting confirmation" rather than verified. We do not call a game checkable until our implementation has reproduced a real one.

The Draw game contradicts itself

PackDraw's fairness page documents a fourth mode, Draw, in a single paragraph, and that paragraph does not agree with itself.

It states that each result is generated from your client seed, the hashed server seed, and a nonce. Every other mode on the page, and all of the published code, uses the unhashed seed. Then the same paragraph closes by saying the unhashed server seed is revealed after the game so you can confirm each result from the original inputs, which only works if the unhashed seed was the original input.

One of those two sentences is wrong and nothing on the page says which. Everything else about Draw is specified more precisely than most platforms manage: the nonce is derived as the round index times the line count plus the line position, the ticket space is the same 1 to 1,000,000, and a flip counts as a win when the ticket falls at or below the survival chance scaled to that space.

That precision is the reason the contradiction is worth naming rather than guessing past. Two readings of one paragraph produce two different digests, and picking one would mean shipping a verifier that is confidently wrong half the time. Draw is not implemented above, and it will not be until PackDraw says which seed it means.

Where our confirmation actually comes from

PackDraw publishes no worked example, no "here are the inputs and here is the answer" pair. That is a real gap in its documentation, and it means the usual way of confirming a verifier is unavailable.

What PackDraw does publish is better in one respect: the verbatim JavaScript its own site runs. On 22 July 2026 we took that code from the fairness page, ran it independently in Node with no connection to our own implementation, and compared the output. The two agree ticket for ticket, including on tickets 268,760 and 122,022.

That confirms our implementation matches PackDraw's stated algorithm exactly. It is one step short of a full end-to-end confirmation, which would need a real pack's revealed seeds and the item the site actually handed over. If you have one, running it through the verifier above would close that last gap, and we would say so on this page.

What the public record says

PackDraw's Trustpilot profile carries 472 reviews averaging 3.3 out of 5 as of October 2026, and the distribution is polarised rather than middling: 61% five stars, 31% one star, few in between. The recurring complaints are about payments rather than results, with failed cryptocurrency deposits the theme BetterChecked's July 2026 test review picks out.

None of that is something a fairness check can speak to, and it is a different question from the one this page answers. We keep the two apart deliberately: is PackDraw legit covers the operating record, the complaint pattern and what the reviews actually describe. This page covers whether the number was honest.

What a passing check does and does not settle

A green result on this page means one specific thing: the pack you are checking was produced by values committed before you clicked, and PackDraw did not alter it afterwards. That is a real guarantee and most sites in this space cannot offer it.

It is also a narrow one. It says nothing about whether the odds attached to an item are generous, whether a withdrawal will arrive, whether support will answer, or whether the business behind the site is sound. Those are separate questions with separate evidence, and a verifier is the wrong instrument for all of them. We keep what verification cannot prove as a permanent page for exactly that reason.

What we can check on PackDraw

Per-game status. "Verified" means our implementation reproduced a real, documented result for that game. We never list a game on trust.

GameAlgorithmStatus
Pack openSHA-512Verified

PackDraw's verbatim getTicketNumber code (extracted from their fairness page 2026-07-22) run independently in Node matches our adapter ticket-for-ticket; PackDraw publishes no numbered example, so a real pack's revealed seeds would still strengthen this to full end-to-end confirmation.

Jackpot battleSHA-256Awaiting confirmation

Implemented from PackDraw's published code, not yet reproduced against a real jackpot. Note that code takes the players' ticket ranges as an argument, so it verifies the draw and not how the ranges were built; PackDraw names an optional 'upside down' weighting without specifying it.

Draw is not implemented: PackDraw's own paragraph says results use the hashed server seed, then says the unhashed seed is revealed so you can confirm them. Re-read 2026-09-20.

Common questions

Is PackDraw provably fair?

Yes, and unusually completely. PackDraw publishes the actual JavaScript its site runs, not a description of it, which is what makes an independent check possible at all. We ran that published code ourselves and our verifier reproduces its ticket numbers exactly, so you can recompute any pack you have already opened and confirm the result came from values fixed before you clicked.

How do I verify a PackDraw pack opening?

Take the server seed, your client seed and the nonce from your PackDraw account, paste them into the verifier on this page, and it recomputes the ticket on your own device. PackDraw exposes the unhashed server seed once the purchase completes, so a pack is checkable straight after you open it. Verification always applies to packs you have already opened, never to the next one. PackDraw says deal purchases run through the same ticket function, so the same check covers a deal.

What algorithm does PackDraw use?

A plain SHA-512 hash, not an HMAC. It hashes the three values joined by colons in the order clientSeed:serverSeed:nonce, reads the whole digest as one very large number, takes the remainder when divided by 1,000,000, then adds 1. That gives a ticket from 1 to 1,000,000, and the item whose range contains that ticket is what you pulled.

Why does PackDraw put the client seed first?

There is no security reason, it is simply the order PackDraw chose. It matters because hashing is order-sensitive: clientSeed:serverSeed:nonce and serverSeed:clientSeed:nonce give completely different results. A verifier built for a different site will silently return the wrong ticket on PackDraw data, which is the most common reason a check appears to fail.

What is the EOS block hash in PackDraw battles?

For battles PackDraw replaces your client seed with the hash of a future EOS blockchain block. Nobody, including PackDraw, knows that value when the battle is created, so it is a source of randomness neither side can pick. You can look the block up independently on an EOS explorer after the fact and confirm the same value was used.

Can I verify a PackDraw pull I opened last month?

Yes, as long as its server seed has been revealed. PackDraw exposes the unhashed server seed once a purchase completes rather than only on rotation, and your pack purchase history keeps the client seed, server seed and nonce for every open, so an old pull is as checkable as a recent one.

Sources

Algorithm details on this page are checked against PackDraw's own published material before publication, and our implementation is confirmed against a real result before a game is marked verified.

Asking a different question?

This page is for checking a result you already have. If what you actually want to know is whether PackDraw is worth using at all, who runs it and what players report about getting paid, that is a separate piece: is PackDraw legit?

The honest fine print

A passing check proves a specific outcome came from numbers fixed before you played. It does not prove PackDraw will honour a withdrawal, or say anything about the site beyond this one result. Fair math and a trustworthy business are different things: how we verify and what it means.

More tools: compare every platform's algorithm · batch-verify a nonce range · check your luck vs the odds · all platforms

The verifier never sends your data anywhere. Analytics cookies are separate and let us see aggregate traffic. Nothing loads unless you allow it. See our Privacy Policy.