This app runs inside the BotSurf browser. Don't have it yet? Get the app or extension now!

Canonical Bridge Withdrawal Prover

Developer Tools · All
0 installs · Verified BotGentz app
Launch App
Opens in BotSurf — nothing to install.
CategoryDeveloper Tools
PlatformAll
Pricing Free
Installs0
Download BotSurf to use — free
No account needed for free apps. Once BotSurf is open, find this app in Apps from the + menu.

About this app

WHAT IT DOES

Canonical Bridge Withdrawal Prover enables users to claim cross-chain withdrawals from canonical bridges by submitting Merkle proofs that verify the withdrawal transaction on the source chain. The tool reads your connected wallet address, the bridge contract address, the withdrawal transaction hash, Merkle proof data, token address, token amount, recipient address, destination chain ID, and the bridge state root. It validates all inputs, displays the proof structure and withdrawal status, and submits the proof to the bridge contract in a single transaction. This is the final step in the cross-chain withdrawal process—once the proof is verified on-chain, the tokens are released to the recipient on the destination chain.

HOW TO USE

Connect your wallet on the destination chain where you want to claim the withdrawal. Enter the canonical bridge contract address, the withdrawal transaction hash from the source chain, the token address, withdrawal amount, destination chain ID, and the recipient address. Provide the Merkle proof (as a comma-separated list of hex strings) and the bridge state root from the source chain. Click "Verify proof & preview" to validate the proof data and check the current withdrawal status. The tool will display the withdrawal status (not yet proven, proven, or already claimed) and show a summary of all inputs. Review everything carefully, then click "Prove & claim withdrawal" to submit the Merkle proof on-chain and claim your tokens.

THE REAL MECHANISM — MERKLE PROOF VERIFICATION WITH STATE ROOT VALIDATION

Unlike simple token transfers, canonical bridges use Merkle proofs to verify that a withdrawal was legitimately initiated on the source chain. The tool constructs the withdrawal leaf by hashing the transaction hash, token address, amount, destination chain ID, and recipient address. It then submits this leaf along with the Merkle proof and the state root to the bridge contract's proveWithdrawal function. The contract verifies that the proof is valid against the state root and that the transaction hash has not already been used. If the proof is valid, the contract marks the withdrawal as proven and makes the tokens available for claiming. The tool reads the withdrawal status using getWithdrawalStatus, which returns two booleans: proven and claimed. This allows users to check whether a withdrawal has already been processed, preventing duplicate claims. All proof elements are validated as 32-byte hex strings, and the tool uses ethers.js BigNumber for amount parsing with the token's decimal precision. Gas costs are reported using receipt.effectiveGasPrice.

WHAT IT CANNOT SEE

Cannot verify off-chain bridge security—this tool has no visibility into the bridge's validator set, security audits, or vulnerability history. It cannot ensure proof generation accuracy—the tool relies on the user to provide the correct Merkle proof and state root. It cannot predict proof verification times—the tool cannot estimate how long the proof submission will take to finalize. It cannot detect if the bridge contract contains vulnerabilities or malicious code—the tool does not audit the bridge logic. It cannot recover funds if the proof is invalid or if the bridge contract differs from the expected interface.

PLEASE NOTE — EVM CHAINS ONLY

This tool exclusively supports EVM-compatible chains where ethers.js can connect via standard JSON-RPC. It does not support non-EVM chains such as Solana, Tron, Starknet, SUI, TON, Aptos, Bitcoin, Cosmos, or XRP. The bridge contract must implement the specific interface expected by this tool (proveWithdrawal, getWithdrawalStatus). The Merkle proof must be generated from the same bridge state root used by the contract. Always test with small amounts on a testnet before claiming mainnet value. This tool is a bridge withdrawal interface, not a financial advisor or security auditor. Cross-chain withdrawals carry inherent risks—review the bridge's documentation and security guarantees before use.

Similar Apps

Log in to BotGentz

Suggest an App

Tell us what you'd find useful — if we build it, we'll email you the moment it's ready.