Pinelot
998 posts


I won a $3600 card yesterday and decided to sell it and reinvest everything back in $grail
Wish me luck
ronk@r0nked
I’m at a loss for words. LFG
English

i haven't slept since this was deployed and can't pull another all nighter
that's why i've pre-bought our next 4 prizes which will be given out over the next 4 hours👀
4 of you are going to walk away with one grail each
winners will be tracked automatically onsite, will verify winners when i awake and post when the prizes are sent
best of luck $grail chasers!

English

@ColinRobinson__ Am I still eligible if I moved from one wallet to another?
English

@RickBm0299 Okay, only a minute tho.
They don’t deserve anything more than that
English

@ColinRobinson__ People selling and hoping to buy back lower are about to have a rude awakening
English

how the draw process works.
1. Snapshot holders from the blockchain
The system queries live on-chain data from Solana via the Helius DAS API (with public RPC fallbacks). It fetches every wallet holding the $GRAIL token and their exact balance. This is not a cached list — it's a real-time read of the blockchain state.
2. Filter the eligible pool
Three filters remove ineligible wallets:
Excluded wallets — LP pools (Pump.fun AMM, Meteora DLMM) are hardcoded out (draw.js:14-17)
>10% supply cap — any wallet holding more than 10% of total supply is treated as a pool/contract and excluded (draw.js:18)
Minimum hold — you need at least 250,000 $GRAIL to be eligible (draw.js:19)
3. Assign tickets
Every 250,000 tokens = 1 ticket. It's flat and linear — Math.floor(balance / 250_000). A holder with 1M tokens gets 4 tickets; one with 500K gets 2 (draw.js:20).
4. Seed the RNG with a Solana blockhash
The system fetches the latest finalized blockhash from Solana and uses it as the random seed (draw.js:231-235). This is the core fairness mechanism — the blockhash is:
Unpredictable — nobody (including the site operator) can know or control what the next finalized blockhash will be
Publicly verifiable — anyone can look up that blockhash on a Solana explorer and confirm it existed at that time
Recorded in every draw — the seed field is stored and shown in draw history
5. Deterministic weighted pick
The blockhash is hashed into a 32-bit integer via FNV-1a (draw.js:171-178), then fed into a Mulberry32 PRNG (draw.js:180-188). The weighted pick walks the ticket pool — each holder's chance is exactly their_tickets / total_tickets (draw.js:191-199).
How it's fair
Proportional odds: your chance scales linearly with how much you hold. The exact odds are displayed per winner (e.g., "4.32% ODDS").
No insider advantage: the seed comes from Solana's blockchain, not from any server-controlled value. The operator can't pick the seed.
Deterministic and reproducible: given the same holder list and the same blockhash, anyone running the same algorithm gets the same winner. The code is open — both the server (draw.js) and frontend have identical logic.

English

@ColinRobinson__ Please finish before posting it so you don’t confuse people.
English









