Merkle Tree Verifier
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Merkle Tree Verifier lets you cryptographically verify that a specific piece of data (leaf) is part of a merkle tree, given the merkle root and a proof path. Paste your leaf data (as a hex string), the expected merkle root, and the proof (a list of sibling hashes), and the tool computes the root from the leaf and proof, then compares it to the expected root. It returns a clear VALID or INVALID result with visual indicators. This is essential for developers working with merkle-based airdrops, whitelists, or any system that uses merkle proofs for off-chain data verification against an on-chain root.
HOW TO USE
Enter the leaf data (the value you want to prove inclusion for) as a hex string starting with 0x. Enter the merkle root (the expected root hash) as a hex string. Enter the proof as a comma-separated list of hex strings (the sibling hashes along the path from leaf to root). Click "verify" to run the verification. The tool computes the root from the leaf and proof using keccak256 hashing (standard Ethereum merkle tree), then compares it to the provided root. The result displays a VALID or INVALID badge along with the leaf, root, and proof for review. Use the "clear" button to reset and start a new verification.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2's keccak256 hashing function. It takes the leaf hash and each sibling hash from the proof, concatenates them in the correct order (sorted lexicographically, as per standard Ethereum merkle implementations), and hashes the concatenation to compute the next level up. This process repeats for each sibling in the proof until a computed root is obtained. The computed root is then compared (case-insensitive) to the user-provided root. The tool validates that all inputs are valid hex strings starting with 0x and handles missing prefixes by adding them automatically. The verification is performed entirely client-side—no data is sent to any server, and no blockchain connection is required for the core verification.
WHAT IT CANNOT SEE
This tool cannot verify off-chain merkle proofs that are malformed or use non-standard hashing (e.g., different hash functions, different concatenation orders, or padded leaf hashing). It cannot prove that the merkle root corresponds to a specific off-chain dataset—you must trust that the root was generated correctly. It cannot verify the authenticity of the merkle root or leaf data beyond what you provide—if the root is fraudulent, the verification will still pass. It cannot read on-chain roots in this version without a contract address and ABI. It cannot verify proofs for non-hex data—you must hash your data first. It cannot detect or handle multiple leaves in a single proof.
PLEASE NOTE
Works exclusively with standard Ethereum merkle trees using keccak256 hashing and lexicographic sorting (as used in OpenZeppelin's MerkleProof library). The tool is read-only and runs entirely client-side—no data is sent to any server. This is a free developer tool—use it for debugging and proof verification, but always verify critical results against an on-chain source or your own implementation. The tool does not connect to the blockchain for core verification; all verification is based on the inputs you provide.