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

ZK Rollup Withdrawal Prover

DeFi · All
0 installs · Verified BotGentz app
Launch App
Opens in BotSurf — nothing to install.
CategoryDeFi
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

The ZK Rollup Withdrawal Prover enables users to submit zero-knowledge proofs to finalize withdrawals from L2 rollup contracts. It reads rollup contract state, user address, wallet balance, and withdrawal request state. The tool processes withdrawal proof data, withdrawal amount, withdrawal token address, destination address, nonce, root hash, and inclusion proof. It supports proveWithdrawal for single withdrawals, batchProveWithdrawals for multiple withdrawals, and finalizeWithdrawal for completing proven withdrawals. The tool reads ZK proof points (A, B, C), public inputs, proof verification key, gas price, block timestamp, chain ID, transaction nonce, approval state, contract owner state, and withdrawal status before execution.

HOW TO USE

Connect your wallet, select the target network, and enter the rollup contract address. Provide the withdrawal index or nonce, optionally the withdrawal amount, and the destination address (defaults to your wallet). Enter the ZK proof as concatenated hex data. The tool will fetch the withdrawal status, verify if it has been proven or finalized, and display the contract owner. Once confirmed, it submits the appropriate transaction—proveWithdrawal to submit the proof, batchProveWithdrawals for multiple withdrawals, or finalizeWithdrawal to complete an already-proven withdrawal. The tool automatically detects whether the withdrawal is already proven and suggests the appropriate action.

TECHNICAL MECHANISM

Unlike generic proof submission tools, this prover is purpose-built for rollup withdrawal workflows. It first reads the rollup contract's withdrawalStatus() to check the current state—whether the withdrawal is not yet proven, already proven, or finalized. The tool then selects the optimal transaction: proveWithdrawal() when submitting a new proof, or finalizeWithdrawal() when the proof is already accepted and only finalization remains. It reads the contract's owner() for transparency and estimates gas using estimateGas.proveWithdrawal() to warn if the transaction may be expensive. The tool validates the destination address and amount against the withdrawal request state when available. For batch withdrawals, it supports batchProveWithdrawals() with arrays of indices, proofs, amounts, and destinations. Gas costs are calculated using receipt.effectiveGasPrice for accurate post-EIP-1559 fee accounting, and the tool parses the withdrawal status from the contract to display clear feedback.

WHAT IT CANNOT SEE

This tool cannot verify that the ZK proof is correct beyond the verifier contract's implementation. It cannot detect bugs in the rollup circuit or malicious data injection that could lead to invalid withdrawals. It also cannot verify that the withdrawal corresponds to a valid L2 transaction state off-chain. The tool cannot detect if the rollup state root is compromised or if the inclusion proof has been forged. It also cannot verify that the destination address is the intended recipient or that the withdrawal amount is correct.

PLEASE NOTE

This tool supports EVM-compatible chains. Submitting a withdrawal proof is irreversible—verify all data carefully before signing. The rollup contract must implement the withdrawal functions expected by this tool; if functions differ, the transaction may fail. The ZK proof must be generated off-chain using the rollup's prover. If the withdrawal is already finalized, it cannot be reproven. Ensure the destination address is correct before finalizing, as this may be the last opportunity to change it. This tool does not generate proofs—for that, use the rollup's dedicated prover software.

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.