Deposit
You can get funds into zk.money by sending USDC, USDT, or DAI on Ethereum to a new deposit address. That includes the deposit that claims your tag: any of the three works.
What you need
- An active tag. Your first deposit is the one that claims it — see Get started.
- USDC, USDT or DAI on Ethereum, in a wallet you control.
- ETH in that wallet, for L1 gas costs. Gas inside zk.money is covered for you; see Limits.
How to get funds into zk.money
- Open the deposit screen. Your device computes a new deposit address each time, on its own, without asking any server for it. Do not save a deposit address, and do not reuse it. A second payment to the same deposit address lowers your privacy. zk.money publishes the address on the Aztec Network so a relayer knows to watch it, and shows you the deposit fee before you send anything.
- Send the funds from your Ethereum wallet. Send USDC, USDT or DAI to the deposit address, and pay the L1 gas on this transaction.
- A relayer picks the transaction up. It deploys the address and moves the funds into the shared pool, paying the Ethereum gas itself. USDC and USDT are exchanged for DAI through Curve.
- Your balance goes up once Ethereum's message settles on Aztec. zk.money records the deposit before then, but you cannot spend it until it settles.
Deposits should take a few minutes. After 30 minutes without a transaction confirmation, zk.money treats the deposit as late and offers you the exit described in Troubleshooting below.
What a deposit costs
A deposit costs $0.35. Of that, $0.25 goes to the relayers who move your deposit into zk.money, to subsidize their Ethereum gas, and $0.10 tops up the fee-paying contract. The deposit screen shows the $0.35 as a single number before you send.
Note that USDC and USDT are swapped to DAI on entry, so the Curve exchange rate applies as well.
What to watch for
- Each deposit must stay below $2,500. All deposits share a daily system limit as well. Read Limits for more details.
- Every visit to the deposit screen makes a new address. Do not save one, and do not use one twice: a second payment lowers your privacy.
- Send only USDC, USDT or DAI, on Ethereum. Other tokens, and tokens on other networks, may not be recoverable.
Troubleshooting failed deposits
If a deposit does not arrive, one of these is usually the cause:
- No relayer picked up the transaction. After 30 minutes, a "Sweep now" option becomes available, which allows you to send the transaction from your own Ethereum wallet and pay the gas. The tip goes to you.
- The amount is at or below the deposit fee, or above the cap, or the address was used before. zk.money marks the deposit recoverable, and you send the funds back out to an Ethereum address that you provide.
- The deposit is larger than the space left in the shared daily limit. The Ethereum transaction fails and your funds stay at the deposit address. It is not lost: try again later, or send it back to an Ethereum address you control from the activity list.
Every exit above needs your own Ethereum wallet and Ether for gas. These exits are in the web wallet and in zk.money Desktop.
If none of these is it, Settings in the web wallet has Report a bug, and a place to send feedback.