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

Shielded Pool Withdrawal Tool

Security · All
0 installs · Verified BotGentz app
Launch App
Opens in BotSurf — nothing to install.
CategorySecurity
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 Shielded Pool Withdrawal Tool enables users to withdraw assets from privacy-preserving shielded pools. It reads shielded pool contract state, user address, wallet balance, and asset contract state for ERC-20, ERC-721, and ERC-1155 tokens. The tool processes withdrawal amounts, token IDs, recipient addresses, relayer addresses, fee amounts, nullifier proofs, and commitment proofs. It supports withdrawFromPool for standard withdrawals, batchWithdrawFromPool for multiple assets in one transaction, and withdrawWithProof for proof-based withdrawals. The tool reads gas price, block timestamp, chain ID, transaction nonce, approval state, contract owner state, pool size, nullifier set, and withdrawal status before execution.

HOW TO USE

Connect your wallet, select the target network, and enter the shielded pool contract address. Choose the asset type (ERC-20, ERC-721, or ERC-1155) and enter the asset contract address. For ERC-20, enter the withdrawal amount in token units; for ERC-721/1155, enter the token ID. Specify a recipient address (defaults to your wallet) and optionally a relayer address. Enter the nullifier proof (required) and commitment proof (optional). The tool will fetch pool state, check if the contract is active, and display the pool size. Once confirmed, it submits the appropriate withdrawal transaction, automatically selecting the correct method based on the provided proofs and asset type.

TECHNICAL MECHANISM

Unlike standard transfer tools, this executor interacts with shielded pools that require nullifier proofs to prevent double-spending. It first reads the pool's owner() and isActive() to ensure the contract is operational. The tool checks the pool state via poolSize() to provide context on the anonymity set. For withdrawals, the tool validates the nullifier proof against the pool's nullifier set using nullifierUsed() to ensure it hasn't been spent. The tool selects the optimal method: withdrawWithProof when both nullifier and commitment proofs are provided, withdrawFromPool for standard withdrawals, or batchWithdrawFromPool for multiple assets (ERC-1155). It handles relayer addresses to enable gasless transactions where supported. Gas costs are calculated using receipt.effectiveGasPrice for accurate post-EIP-1559 fee accounting.

WHAT IT CANNOT SEE

This tool cannot verify that the nullifier proof or withdrawal proof is correct beyond the pool contract's verification. It cannot detect if the proof was generated fraudulently or if the nullifier has already been used. It also cannot guarantee that the withdrawal is untraceable if the recipient address is re-used. The tool cannot verify that the recipient address is the intended withdrawal destination or that the relayer is trustworthy. It also cannot detect if the pool has been compromised or if the privacy guarantees have degraded.

PLEASE NOTE

This tool supports EVM-compatible chains. Withdrawing from a shielded pool is irreversible—verify all parameters carefully before signing. The pool contract must implement the withdrawal functions expected by this tool. The nullifier proof is required to prevent double-spending; ensure it is generated correctly off-chain. Using a relayer may improve privacy by obscuring the source of the withdrawal. For full privacy, avoid reusing recipient addresses or patterns. This tool does not generate proofs—for that, use the appropriate off-chain 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.