Overview

zk.money is an open source, self-custodial wallet that lets people send and receive crypto privately.

zk.money is built on the Aztec Network. The Aztec Network is a fully private, fully programmable network on top of Ethereum. Therefore, your zk.money transactions do not show your balance, amounts, or participants for any transactions that happen inside of zk.money. You also pay no Ethereum gas on payments inside zk.money, although sending a deposit from Ethereum into zk.money requires Ethereum gas, and these deposit transactions from Ethereum are public (as are all Ethereum transactions).

zk.money is self-custodial. No zk.money or Oxide service holds your signing key, and no service or operator in the zk.money system can move your funds without a signature from your device.

An operator, such as an Oxide enclave, a relayer, or an Aztec node, can decline to take part in your transaction, but no operator can spend funds for you. You may also choose to run your own Oxide enclave, relayer and/or an Aztec node.

Before you start

If you lose your passkey, you lose the wallet. zk.money holds no copy of your passkey, and there is no escrow. No one can restore your account if the passkey is lost.

Every deposit, payment, and withdrawal will initially be restricted to be below $5,000.

Each deposit address is single-use. Take a fresh one for every payment you receive, so the payments into your wallet cannot be linked to each other.

High-level glossary

There is a larger glossary at Glossary. This is a high-level overview of important terms.

zk.money is the name of the wallet. zk.money can be run as a web wallet at the zk.money domain, or as a locally-run desktop app. The same passkey gives you access to the same wallet on a different device.

Oxide is a protocol that runs "alongside" the Aztec Network. It provides an independent layer of security against vulnerabilities in the Aztec Network's proving system. It is built on AWS Nitro Enclaves and works by having the user simulate the Aztec Network transaction.

Oxide is a separate protocol from zk.money, and every role in it is permissionless. zk.money runs the default enclave and resolver, but anyone, including you, can run their own and point the wallet at it.

Aztec Network is the decentralized and private network on which your notes and zk.money balance ultimately live.