# Verifiable draw: how Quest winners are picked fairly

> Quest winners come from a Merkle root committed before a future BNB Smart Chain block. Anyone can recompute the draw in the browser with “Verify the draw”.

Published by SaTT · Last updated 2026-10-29 · Features · https://satt.com/guides/features/verifiable-draw

## In short

The [verifiable draw](https://satt.com/guides/glossary#verifiable-draw) picks Quest winners from a seed nobody controls: entries are frozen into a Merkle root and signed before a future BNB Smart Chain block exists, then that block’s hash seeds the draw. Anyone can press “Verify the draw” on the Quest page to recompute the winners in the browser.

## What problem does a verifiable draw solve?

In most giveaways, the organiser picks winners privately, so participants must trust them. On SaTT neither the brand nor SaTT can choose or re-roll winners after seeing the seed.

## How does the draw work?

1. **Freeze**: at the end date, each participant’s [tickets](https://satt.com/guides/glossary#ticket) (up to the cap) form a sorted list of anonymous participant hashes and ticket counts, summarised as a Merkle root.
2. **Commit**: the [oracle](https://satt.com/guides/glossary#oracle) signs the root and names a beacon block a few blocks in the future on BNB Smart Chain.
3. **Seed**: once that block is mined, seed = hash of (block hash, Merkle root, Quest id).
4. **Draw**: winners are drawn one by one, weighted by tickets and without replacement.
5. **Publish**: the result is signed and published with the beacon block.

Each participant can check that their own entry is in the root with a Merkle proof.

## What happens if a winner is disqualified?

During the 24-hour audit the brand can disqualify a winner, for example for a failed honor action. The slot goes to the next entrant of the **same** draw order. The result depends only on who is disqualified, never on timing, and the new publication is signed again.

A slot with no eligible entrant stays empty and its prize returns to the brand (dollars) or stays in the pool (crypto).

## What trust is left?

A BNB Smart Chain validator could in theory withhold a block, at the cost of its block reward. This residual risk is documented; a verifiable random function is the planned upgrade path. Payout signatures can be checked on [Verifiable payouts](https://satt.com/attestations).

Context: [Quests](https://satt.com/guides/features/quests) and [Verified receipts](https://satt.com/guides/features/verified-receipts).

## Key takeaways

- Entries are frozen and signed before the seed block exists.
- The seed comes from a future BNB Smart Chain block hash.
- Anyone can recompute the winners with “Verify the draw”.
- Replacements follow the same draw order, deterministically.

## Frequently asked questions

### Do I need a wallet to verify a draw?

No. “Verify the draw” runs in your browser and links the beacon block on BscScan; no wallet or sign-in is needed.

### Which chain is used for dollar Quests?

Dollar Quests use a BNB Smart Chain mainnet block as the beacon; crypto Quests use the pool’s own chain.

### Can the brand add entries after the end?

No. Entries are frozen at the end date and the root is committed before the beacon block exists, so nothing can change afterwards.

## Related guides

- [Quests: actions, tickets and a verifiable prize draw](https://satt.com/guides/features/quests)
- [Verifiable payouts: attestations and receipts](https://satt.com/guides/features/verified-receipts)
- [Quest FAQ: tickets, draws, prizes and fairness](https://satt.com/guides/tips/faq-quests)
- [How to run a Quest with a verifiable draw](https://satt.com/guides/how-to/run-a-quest)

## Official pages

- [How SaTT works](https://satt.com/how-it-works)
- [Verifiable payouts](https://satt.com/attestations)

Glossary: https://satt.com/guides/glossary
