ZeroDocumentation
Browse documentation
How it works

Private

Encrypted balances and amounts with Solana confidential transfers and three zero-knowledge proofs.

Encrypted balances, native to Solana

The Private mode is built on Token-2022’s confidential transfer extension, Solana’s own encrypted-balance system. Your balance and every amount you send live on-chain as ciphertexts. The chain checks every transfer with zero-knowledge proofs, so it can enforce the rules without ever seeing a number.

How an amount is encrypted

Each account has an ElGamal key pair for its balance and an AES key for a fast readable copy only you can open. Both are derived from a signature your wallet makes, held in memory for the session and never stored. A transfer splits its amount into a 16-bit low half and a 32-bit high half, and encrypts each one to three keys at once:

C = x·G + r·H          one Pedersen commitment to the amount
D_i = r·PK_i            one decrypt handle each: sender, recipient, auditor

The commitment is shared and only the handles differ, so all three parties are guaranteed to read the same amount.

Three proofs, checked by the chain

ProofWhat it guarantees
Ciphertext–commitment equalityYour new balance is exactly your old balance minus what you sent.
Grouped ciphertext validityThe sender, recipient and auditor copies all encrypt the same amount.
Batched range proofNo amount is negative and nothing overflows, so value can never be created.

Solana’s ZK ElGamal Proof program verifies them before Token-2022 touches a balance.

One approval in any wallet

The three proofs weigh about 1.9 KB, more than the 1,232 bytes most wallets can sign in one transaction. Zero splits the work: the relayer verifies your proofs into short-lived proof accounts first, and your wallet then signs one small transfer that points at them. The relayer pays for those accounts, closes them afterwards and cannot move your money with them. Only a transfer signed by you can use them.

Receiving privately

Incoming private payments land in a pending balance, and one tap adds them to your spendable balance. The split is what keeps your own sends safe: money arriving can never change the balance your in-flight proofs were built against.

Search the Zero documentationLocal search · no external service