Every deck, checkable by anyone
Before each hand is dealt the server publishes SHA256(secret) on Solana,
then a MagicBlock VRF oracle writes verified randomness into the same account. The deck
is shuffle(SHA256(domain ‖ randomness ‖ secret)). Neither side can choose
it: the server commits before the randomness exists, and the oracle never learns the
secret. When the tournament ends every secret is published.
This page does the checking itself. It re-derives each deck in your
browser and reads the hand accounts straight from an RPC endpoint you choose below —
it does not ask the server whether the server was honest. The rules are in
rules.md,
“The shuffle”; verify offline instead with
server/verify_hand.py.