Skip to main content
Blocktape

Crypto markets, protocols and policy

What a Merkle Proof Checks Before a Crypto Withdrawal

A Merkle proof confirms that a withdrawal record is included in a committed batch, but it cannot finalize the batch or replace the bridge’s claim and fee steps.

The Blocktape Editors 3 min read 8ce1d7

Cover artwork for What a Merkle Proof Checks Before a Crypto Withdrawal

A Merkle proof lets a bridge contract check that a withdrawal record belongs to a batch whose root the destination chain has accepted; it does not send funds by itself. The proof is a set of hashes that lets the contract rebuild the batch’s root from the record and its position in the tree.

That distinction matters when a bridge shows a withdrawal as pending or asks you to claim funds. For a fuller walkthrough of the steps involved, see this guide to withdrawing through Mantle Bridge and returning to Ethereum.

What does a Merkle proof verify?

A Merkle proof verifies inclusion: it shows that specific data, such as a withdrawal message, was included in a batch represented by a particular root. Ethereum.org’s rollup documentation describes the process: the contract checks the message data against the root and verifies that the root is one the protocol recognizes.

Each step combines the record’s hash with a neighboring hash, in the required order, to produce a parent hash. Repeating that process reaches the root. Changing the record, a sibling hash or the order produces a different root, so the proof will fail against the accepted one.

The root is the trust anchor. A mathematically valid path to an arbitrary root proves little; the destination contract must also recognize that root as valid. Rollup designs differ in how roots become accepted, including through validity proofs or a challenge period, so the same proof mechanics do not imply the same withdrawal timing.

Why might a bridge ask you to claim?

A claim is a separate transaction that tells the destination contract to release a withdrawal after the protocol’s conditions are met. The bridge may generate or fetch the Merkle proof for you, then submit it as part of that claim; in other systems, a user or relayer supplies the proof.

The proof answers whether the withdrawal record is in the committed batch. It does not establish that the batch is final, that the bridge’s waiting conditions have elapsed, or that you have paid the destination network’s transaction fee. Those checks depend on the bridge protocol and contract.

Ethereum.org’s explanation of optimistic rollups describes a challenge period before a withdrawal can be finalized. Other rollups use validity proofs to verify state updates. Check the bridge’s status for the specific withdrawal rather than assuming that seeing a proof or a source-chain transaction means the funds are ready.

What should you check before withdrawing?

Before signing, confirm that the bridge shows the intended asset, amount and destination address, and that the source transaction matches the withdrawal you expect. After the bridge marks the withdrawal ready, check the claim network and ensure the wallet has its native token available for fees.

  • Match the withdrawal status to the source transaction in your wallet or the relevant block explorer.
  • Check that the destination address and asset are correct before submitting a claim.
  • Wait for the bridge to confirm that its proof and settlement requirements are complete.
  • Keep the source transaction details so you can return to the same pending withdrawal if you close the page.

A rejected proof usually points to a mismatch, an unaccepted root or a withdrawal that is not yet claimable; it is not a reason to repeat the withdrawal blindly. Follow the bridge’s status and claim flow, and check its support instructions if the same request remains stuck. The next step is to submit the claim once the bridge marks that withdrawal ready.

Related stories