Depositing
Deposits move funds from your public wallet balance into the Nullmask shielded pool.
Steps
Navigate to the Shield screen
Select the token (ETH or ERC-20)
Enter the amount
If your wallet is on the wrong network, you'll be prompted to switch to the base chain (e.g., Ethereum Mainnet)
For ERC-20 tokens, approve the token allowance if needed
Confirm the deposit transaction in your wallet
What Happens
Your wallet sends a
deposit()transaction to the Nullmask contract on the base chainThe transaction includes the deposit amount plus a small gas escrow (to cover the guard's gas costs)
The deposit enters a pending state
The guard service screens your address
Once approved, a note is created in the Merkle tree representing your shielded balance
The deposit appears in your shielded balance (typically within 15-30 seconds)
Deposit Statuses
Pending
Awaiting guard review
Approved
Note added to Merkle tree
Rejected
Funds refunded to depositor
Reverted
Depositor withdrew pending deposit
ERC-20 Deposits
For ERC-20 tokens:
The app checks if the contract has sufficient allowance
If not, you'll be prompted to approve the token
The deposit transfers tokens via
safeTransferFromFee-on-transfer tokens are supported — the actual deposited amount is measured via balance delta
Gas Escrow
Each deposit includes a small ETH gas escrow sent alongside the deposit. This escrow:
Pays the guard's gas costs for approving or rejecting the deposit
Is paid to the guard regardless of the outcome
Is refunded if you withdraw a pending deposit
Withdrawing a Pending Deposit
If your deposit is still pending (not yet approved or rejected), you can withdraw it:
Call
withdrawPendingDeposit()on the contractBoth the deposit amount and gas escrow are refunded
Last updated