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).

Because zk.money is non-custodial and powered by immutable smart contracts, any crypto held in zk.money wallets remains completely under the user's control. No one can spend or move funds in zk.money, apart from the user themselves. There is no privileged admin role in the system and there is no centralized zk.money server whatsoever with admin keys to move funds.

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 $2,500.

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.