Skip to main content

⚖️ Fairness & Transparency

Every pack event on GalaxyGrails.io is built to be provably fair. That means two things: the random number that picks your card comes from an outside source, not from us, and anyone can check any pull afterward.

Randomness provided by

The short version​

For every event we create now (fairness version 3):

  • The cards are locked in before anyone buys. Every event starts with a fixed list of cards. Before the first pack goes on sale, a fingerprint of that list is recorded on a public blockchain, a shared record that anyone can read and nobody, including us, can edit afterward. If a card were added, removed or swapped later, the fingerprint would no longer match.
  • The random pick happens when your pack opens, not before. When you open a pack, an outside service called Chainlink produces a fresh random number for that one pull. The number does not exist until that moment.
  • Nobody can know or influence your pull in advance, and that includes us. When you buy a pack, there is nothing to know yet. Galaxy Grails holds no secret that decides which card you get. The number comes from Chainlink, it is recorded once on the blockchain, and it cannot be replaced or drawn again.
  • Every card is equally likely. Your card is picked from the cards still left in the event, and each one has the same chance. Price, tier and rarity play no part.
  • You can check any pull yourself. Every pull in the app has a proof panel that checks it automatically, and a Check against Arbitrum button reads the random number straight from the public record.

This applies to every event format: standard events, Coin Flip, Sellout Break and Head-to-Head.

What happens when you open a pack​

This is how events that carry fairness version 3 work, which we have used since September 30, 2026. Older events used earlier versions of the system, described in the version history below. An event's version is fixed before its packs go on sale, is published with its fairness data, and never changes.

  1. Before sales open, we fix the event's card list and record its fingerprint on the Arbitrum One blockchain. It can be written once and never changed. Only then do packs go on sale.
  2. You buy a pack. Nothing about your card has been decided. The random number that will pick it does not exist yet.
  3. You open the pack. We ask Chainlink for a random number for that one pull. Chainlink produces it and delivers it straight to our public record on Arbitrum One. This usually takes about 2 seconds.
  4. Your card is picked using that number and the list of cards still left in the event.
  5. The result is permanent. Each pull's number can be requested once and recorded once, so a pull cannot be re-rolled. Our record on Arbitrum One only accepts numbers from Chainlink, so nothing else can be swapped in.

In a Head-to-Head, the two packs share one request that returns two numbers, one for each pull.

If Arbitrum or Chainlink is slow, your pull waits. It is never changed or drawn again. If a random number never arrives, the purchase is canceled and what you paid is returned to your account balance, as the Terms of Service describe.

Checking a pull​

Open any pull in the app and look for its proof panel. The panel checks the pull automatically in your browser: it takes the random number and the event's card list and confirms they lead to the card you were given. The Check against Arbitrum button goes one step further and reads the random number from the public record itself.

If you want to look at the record directly, it is public on Arbiscan at 0x6307958ab4c4728Da9C2599717Ade879BD72cF60, and its code is verified on Arbiscan and Sourcify.

While an event runs, you can see what has been pulled and what remains through live odds and EV tracking. After it ends, you can revisit it under Fairness and replay to step through the full pull timeline and inspect the fairness data, with links to the public record that locked the event in. Completed events and their fairness reports are listed at https://galaxygrails.io/events.

For most collectors, that is all you need to know: the cards are fixed before sales open, the random pick is made by Chainlink when your pack opens, nobody can know it before then, and you can check it afterward.

Want the deep dive? The Provably Fair developer guide explains the exact API, cryptography, and Python verification code behind this system, including scripts that reproduce every pull in an event from the published data.

Version history​

Every version has used the same two building blocks: the card list is locked on a public blockchain before anyone buys, and the random numbers come from Chainlink, an outside service. What has changed is when the random number is drawn. Every event keeps the version it went on sale with and can be checked with that version's recipe, which the developer guide keeps for each one.

Version 3: a fresh random number for every pull (in use since September 30, 2026)​

The version described on this page. Each pull gets its own Chainlink random number on the Arbitrum One blockchain, drawn at the moment the pack is opened, delivered in about 2 seconds, and recorded once on a public record that cannot be changed. Moving from one number per event to one per pull, drawn at open, is the simplest rule we can follow and the easiest to check, and Arbitrum makes it fast.

Version 2: one number per event, revealed at the end (Polygon)

Each event got one Chainlink random number on the Polygon blockchain, and every pull in the event was worked out from it. A second value, the salt, was mixed in and published when the event ended, with its fingerprint locked on the blockchain beforehand. Once published, every pull in the event replays exactly, and every version 2 event can be checked that way today.

Version 1: one number per event (Polygon)

Each event got one Chainlink random number on the Polygon blockchain, and every pull in the event was worked out from it. Anyone can replay every pull in a version 1 event, and each one can still be checked.