Withdraw

You can get funds out of zk.money by providing an Ethereum address. Your zk.money balance goes down, and that amount, less the fees below, arrives at that address on Ethereum.

How to get funds out of zk.money

  1. Enter the Ethereum address and the amount. Predicate screens the address first, and a blocked address stops the withdrawal here, before anything moves. See Limits for how address screening works.
  2. Confirm with your passkey. The Oxide enclave co-signs, your device computes a zero-knowledge proof of the withdrawal, and the amount leaves your balance on the Aztec Network.
  3. The funds are released to your address on Ethereum. The Aztec Network proves the block on Ethereum, and a relayer sends the transaction that releases the funds and takes the tip. The address you entered is fixed when you confirm, so nobody can send the funds anywhere else.

A withdrawal usually takes about an hour from that proof. zk.money tells you when a stage is taking longer than that.

What it costs

A withdrawal costs $0.20, and the address you entered receives the rest — $0.10 for the Ethereum transaction that releases your funds on the portal side, and $0.10 to top up the fee-paying contract.

What to watch for

  • Nothing warns you if the amount is over the cap. zk.money warns you before a deposit that is too large, but not before a withdrawal. One over $2,500 fails when you make it.
  • Withdrawals need a live Oxide enclave to co-sign. zk.money runs one by default, so there is nothing for you to set up. If none is running, withdrawals wait until one is. See Trust model.

Troubleshooting failed withdrawals

If a withdrawal does not arrive, one of these is usually the cause. In every case your funds are still yours.

  • Predicate blocked the withdrawal address, or could not answer. zk.money refuses the withdrawal before anything moves. Your funds stay in your zk.money balance.
  • The amount was at or below the fees. zk.money does not check this before you send, so the transaction is submitted and then fails. Your funds stay in your zk.money balance.
  • Nobody took the release job. Your funds have left your zk.money balance and are waiting on Ethereum. After one hour, zk.money offers to let you send that last transaction yourself, with your own gas, and you keep the tip.

If none of these is it, Settings in the web wallet has Report a bug, and a place to send feedback.