ZeroDocumentation
Browse documentation
Getting started

Introduction

One dollar, three levels of privacy, and the cryptography that makes it work.

A dollar that minds its own business

Every USDC payment on Solana is public forever: the amount, the sender, the recipient and their whole history, readable by anyone. Zero fixes that. Its currency, zkUSD, is a dollar backed one for one by USDC that you can spend in three modes, choosing for every payment how much the world gets to see.

Three modes, one token

StandardPrivateShielded
AmountPublicEncryptedHidden
Sender & recipientPublicVisibleUnlinkable
Built onToken-2022Confidential transfersGroth16 shielded pool
Best forDeFi and exchangesPayroll, invoicesPayments nobody should trace

The three modes are one token in three states, and moving between them is a single action in the app. The part that is new to Solana is the last link: money moves between Private and Shielded with the amount hidden the whole way, bound by a zero-knowledge proof that works across two different elliptic curves.

What is under the hood

  • Confidential transfers. Solana’s native encrypted balances: twisted ElGamal on ristretto255, with three zero-knowledge proofs checked by the chain on every transfer.
  • A Groth16 shielded pool. Poseidon note commitments in a 26-level Merkle tree, nullifiers stored as accounts, and a join-split proof verified on-chain with Solana’s BN254 syscalls.
  • A cross-curve bridge. A proof that a ristretto255 commitment and a BN254 commitment hide the same number, so value crosses between the two systems without ever being revealed.
  • One approval, any wallet. Proofs are staged ahead of time so every action fits the transactions today’s wallets sign.

Start here

Search the Zero documentationLocal search · no external service