Provably Fair
Every Flip and every Pull outcome can be verified by you, after the fact, using public-key cryptography and a permanent record on the Solana blockchain. Here's exactly how — and how to verify it yourself.
The problem provably-fair solves
If we generate a random outcome on our server, how do you know we didn't run it 1000 times and pick the result that benefits us? You can't — unless we commit to the seed before you played, in a way we can't change after.
The 4-step protocol
1. Commit (before you play)
Server generates a 32-byte random seed. We compute SHA-256(seed) — a one-way hash. We post the hash on Solana as a memo transaction. The seed itself is kept secret.
seed: 7f3a8b2e... (32 bytes, secret until reveal)
hash: SHA-256(seed) = 9c4d2e8a1f... (64 chars hex)
solana: tx 5abcd123... (memo containing the hash)
2. Display (when you load the listing)
You see the hash and the Solana transaction ID on the card detail page. You can click the Solana ID to view the transaction on solscan.io and confirm the hash was anchored on-chain BEFORE you played.
3. Play
You commit to the play. The server uses the secret seed to compute the outcome:
| Game | Computation |
|---|---|
| Flip | seed[31] % 2 === 0 ? WIN : LOSE (last byte even = win) |
| Pull | seed[0] % stackSize = index of card you receive |
4. Reveal
After the result is shown, we publish the seed itself. You can:
- Compute SHA-256 of the revealed seed
- Compare to the hash we anchored on Solana
- If they match, the seed is genuine — we couldn't have changed it after seeing your play
- Apply the outcome computation yourself and confirm the result
Verify a Flip outcome step-by-step
Say your Flip resulted in WIN. The reveal page shows:
Seed (hex): 7f3a8b2e91d4c5a6f8e7d3b2c1a0f9e8d7c6b5a4938271605f4e3d2c1b0a9988
Hash (hex): 9c4d2e8a1f6b3d7c5a2e9f8b4d1c6a3e7f9d2b8c5a1e4f7c0b3d6a9e2f5c8b1d
Solana tx: 5abcd1234567890abcdef...
Your outcome: WIN (because seed[31] = 0x88 = 136, 136 % 2 = 0, even = WIN)
Verify it yourself
- Open solscan.io → paste the Solana tx → confirm the memo contains the hash
9c4d2e8a...AND its blocktime is BEFORE your play timestamp - Open any SHA-256 tool (e.g. online-tools/sha256)
- Set input encoding to "hex" → paste the seed
7f3a8b2e... - Confirm the output matches
9c4d2e8a... - Confirm the last byte of the seed (
0x88) modulo 2 = 0 = WIN
SHA-256 is a one-way hash. Knowing the hash 9c4d2e8a... tells you nothing about the seed. We had to commit to the hash first; if we tried to swap in a different seed after seeing your play, the SHA-256 wouldn't match what's anchored on Solana, and you'd catch us. The blockchain is the time-stamped, immutable record — we can't pre-date a Solana transaction.
What if I don't trust SHA-256 / Solana?
SHA-256 has been studied for decades and is currently used by Bitcoin, U.S. government certification, and every major TLS handshake. Solana is a public blockchain with thousands of validators; we can't quietly modify a confirmed transaction. If either of those assumptions breaks, far bigger systems than SlabTrack break first.
What we CAN'T cheat on (and what we can)
| Aspect | Provably fair? |
|---|---|
| The outcome bit (WIN / LOSE / which card index) | ✓ Yes — bound to the committed seed |
| The card pool (which cards are in a Pull stack) | ✗ No — that's seller-curated. Trust the seller's track record. |
| The stated card values | ✗ No — those are seller-set. Cross-check on eBay sold comps. |
| The spread on a Flip | ✗ No — seller-set. Read it before you click. |
Provably-fair guarantees the randomness wasn't rigged. It does NOT guarantee the seller picked a fair pool or fair pricing. Use eBay sold comps to verify those.
Where the code lives
- Seed generation:
crypto.randomBytes(32)(Node.js native) - Hash anchoring: Solana memo transaction via
@solana/web3.js - Reveal verification: any SHA-256 implementation in any language matches our server's