SignorCrypto note · NFT
Verifiable Randomness for Digital Card Packs: What Proofs Show
How VRF proofs make the random input of a pack opening auditable on-chain, and what they cannot prove about odds or fairness

Digital card packs promise a random pull, yet a buyer rarely can check how that pull was made. Verifiable randomness closes one part of that gap. Smart contracts cannot generate random numbers natively, so Chainlink VRF requests a random value from an oracle network together with a cryptographic proof, which is verified on-chain before an application uses the result. The proof shows that the random input was not chosen or altered by any single party. It does not prove that the pack odds are fair, that the rarity table matches the advertised pool, or that the collector understands what was bought. Those are separate design and disclosure questions.
What a verifiable random number proves
The Chainlink VRF documentation describes VRF as a provably fair random number generator that gives smart contracts random values along with cryptographic proof of how those values were determined. The proof is published and verified on-chain before any consuming application can use it.
An oracle is needed for structural reasons. If a random result were stored on-chain as ordinary data, anyone could read it and predict the outcome. Chainlink's VRF v2.5 getting-started guide explains that randomness must instead be requested from an oracle, which returns a number and a proof in the Request and Receive cycle.
The guarantee is narrow. It covers the random input. A pack opening involves at least three layers, and only the first one is covered by VRF.
Three layers of a pack opening
| Layer | Example | What VRF verifies | What must be disclosed separately |
|---|---|---|---|
| Random source | One VRF value for one request | That the value and its proof were produced and verified on-chain | Which request and contract produced the value |
| Mapping | Random value to rarity tier and card, using weights | Nothing; the mapping runs in the application | The weight table, its version and when it was fixed |
| Assignment | Minted token and its metadata | Nothing by itself | Token ID, metadata source and whether it can change after opening |
SignorCrypto analysis: the most common gap in this design is the mapping layer. A valid proof attached to a pack assigned through a weight table that changes after sale still gives collectors a verifiable input and an unverifiable outcome. Publishing the table before the drop, and tying it to a specific contract version, closes that gap. This is an analytical point, not a documented requirement of Chainlink VRF.
Why disclosure matters more than the random source
The regulatory debate about randomised paid items predates NFTs. A 2020 study for the European Parliament's Internal Market and Consumer Protection committee frames loot boxes as a consumer-protection issue rather than primarily a gambling issue. The study lists disclosing the probabilities of obtaining different items among the practices used by authorities and industry, and reports that loot boxes were not legally considered gambling in most EU Member States at the time, while Belgium and the Netherlands treated them as gambling. A 2022 academic article examines the regulatory challenge of loot boxes under the EU Unfair Commercial Practices Directive.
The study dates from 2020, and the regulatory position has continued to evolve. This section is educational information, not legal advice. Check the rules in each market where a drop is sold.
Pre-drop checklist for collectible pack designers
- Publish drop rates, the card pool and the mapping version before the first sale.
- Keep the VRF request and fulfilment transactions so that a buyer can locate the proof for their own pack.
- Fund and monitor the VRF subscription. Chainlink's documentation states that VRF requests receive funding from subscription accounts. Plan for delayed or failed fulfilment, and define what the buyer sees while a pack is pending.
- Keep the assignment logic in public code, or document any off-chain step and arrange an independent review of it.
- Do not describe a pack as fair or provably random without naming the exact layer the proof covers.
Frequently asked questions
Does Chainlink VRF make a card pack fair? Not by itself. It makes the random input verifiable. Fairness also depends on published odds, a fixed mapping and an assignment that matches the disclosed pool.
Can a server-side random number be verified by buyers? Only indirectly. An operator can commit to a value in advance and reveal it later, but without an on-chain proof or equivalent public evidence, a buyer must trust the operator's records.
Are NFT card packs gambling? The answer depends on the jurisdiction and the design. The 2020 European Parliament study shows that classification has varied across EU Member States. Ask local counsel before launch.
Sources
- Chainlink VRF documentation: definition of VRF, provable fairness and on-chain verification of proofs.
- Getting Started with Chainlink VRF V2.5: why randomness must be requested from an oracle, the Request and Receive cycle and subscription funding.
- Loot boxes in online games and their effect on consumers, in particular young consumers (European Parliament, 2020): consumer-protection framing, probability disclosure and national classification.
- Rocking the Boat: Loot Boxes in Online Digital Games, the Regulatory Challenge, and the EU's Unfair Commercial Practices Directive (2022): academic analysis of loot-box regulation under the UCPD.
Limits of this analysis
This article does not assess any specific DECK-0 implementation or the current legal status of loot boxes in a given country. The Chainlink pages were read on 2 November 2026 and describe the VRF product as documented at that time.
If you are scoping a collectible drop and need packs whose opening logic can be shown to collectors, DECK-0 is built around on-chain card packs and transparent pack opening, so you can review the mechanics before committing to a design.