Snapshot Merkle Proof

zkRune Whale Chat

Prove you hold 1%+ (10,000,000 zkRUNE) using a cryptographic Merkle inclusion proof. No address revealed. No balance revealed. No screenshot.

01

Step 01

Snapshot

zkRune takes a Poseidon Merkle tree of all holders at a specific block.

02

Step 02

Merkle Path

Your address + balance = a leaf. The API returns your path through the tree.

03

Step 03

ZK Proof

Circuit proves: leaf is in tree (root matches) AND balance ≥ threshold.

04

Step 04

Access

Only hasMinimum=1 and the root are public. Address and balance stay private.

Access Gate

threshold: 10,000,000 zkRUNE · Poseidon Merkle · depth=20

Your address is used only to fetch your Merkle path from the snapshot. It enters the circuit as a private witness — never disclosed in the proof or sent anywhere else.

Option A — Connect wallet to auto-fill address

or

Option B — Enter Solana address manually

Security Model

Why Merkle?

Unlike simple balance checks, the Merkle proof cryptographically binds your (address, balance) to a published root — making self-reported inputs impossible. There is no way to fake a valid path for a non-existent leaf.

What is disclosed?

The proof reveals only: hasMinimum=1 and the root (already public). Address and exact balance are private circuit witnesses — they appear nowhere in the proof.

Circuit

whale-holder.circom — WhaleHolderProof(20). Poseidon(2) leaf + 20-level Merkle path + GreaterEqThan(64) comparator. ~5,600 R1CS constraints · verified against snapshot root.