Merkle Proof Verifier·BitcoinStats.io

Tools · Privacy-first

Merkle Proof Verifier

Recompute a Bitcoin Merkle branch from a transaction ID or 32-byte leaf hash. Compare the result with an expected Merkle root, the commitment inside an optional 80-byte block header, or both.

A matching branch proves only that the supplied leaf and path produce the supplied root. It does not validate header proof of work, active-chain membership, confirmations, transaction validity, or block acceptance.

Local input

Describe the proof

Use conventional displayed big-endian hashes. Add branch siblings from leaf level upward, one hash per line. The zero-based transaction index determines whether each sibling is hashed on the left or right.

Examples:

Nothing is uploaded. Verification starts only when you press “Verify locally”.

Runs locally

Your proof data stays in this browser.

Local input: A transaction ID or leaf hash, zero-based transaction index, Merkle branch siblings, and optional expected root or serialized block header. Network effect: None when verifying. Proof data is processed in this page and is not sent to BitcoinStats, a node, an explorer, analytics, browser storage, or the URL.

Leaf + branchBrowser SHA-256dRoot comparison
After the page assets load, verification works offline. Inputs are not added to the URL, browser storage, analytics, or a server request.

Purpose and limits

Verify the commitment without overstating it

Order comes from the transaction index

At each level, an even index places the current hash on the left; an odd index places it on the right. The index then shifts right by one bit.

Bitcoin uses double SHA-256

Displayed hashes are reversed to Bitcoin’s serialized byte order before each pair is hashed. The final digest is reversed back for conventional display.

A header is still not a chain proof

The optional header lets this tool compare its embedded root and show its hash. No difficulty target, proof of work, header chain, or current best-chain lookup is performed.

This verifier accepts an ordinary transaction Merkle branch. It does not accept partial-merkle-block serialization, witness commitments, or a coinbase witness reserved value.