Skip to content
ihategas.xyz

Merkle Proof

Root and OpenZeppelin-compatible proofs from an address list.

Runs offline

one per line

Paste addresses, one per line, to build a Merkle root and export a proof.

About merkle proof

A Merkle tree compresses a list of thousands of addresses into a single thirty-two byte root, so a contract can verify membership without storing the list. Each claimant supplies a short proof — one hash per level of the tree — and the contract recomputes the root from their leaf. This builds an OpenZeppelin-compatible tree, sorting each pair before hashing so proofs need no left-or-right flags. The leaf format has to match the contract that will verify the proof: hashing an address alone and hashing an address with an amount give different trees.

Common questions

What is a Merkle proof used for in crypto?

To prove an address or leaf is in a committed set without publishing the whole set on chain — common in airdrops and allowlists. The contract stores a root; claimants present a proof path that hashes to that root.

Are these proofs OpenZeppelin-compatible?

Yes — the tree layout and proof encoding match OpenZeppelin MerkleProof helpers. A proof from elsewhere may use a different sort or hash scheme and fail even when the address is genuinely on the list.

Does building a proof publish my address list?

Not to us — the tree is built in the browser from the list you paste. Anyone who later sees the root and a proof learns that one leaf was included, which is the intended public fact of a claim.

More developer tools