Understand
How it works
Notes, the tree, proofs and the relayer.
Notes and the tree
A note is Poseidon(amount, owner, blinding, asset): a commitment that hides its contents. Every note goes into a Merkle tree of depth 26 kept by the program on chain (about 67 million leaves). Each note is also published encrypted to its owner, so your browser can find yours by trying to decrypt them.
Proofs
A transaction spends up to two notes and creates up to two. Your browser proves, with a Groth16 proof (Circom circuit, about 34,000 constraints), that the spent notes are in the tree, that you own them, and that amounts balance. The program verifies the proof on chain with Solana's native elliptic-curve support in about 200,000 compute units.
Nullifiers
Spending a note reveals its nullifier, a value derived from the note and your key. The program records it, so the same note can never be spent twice, yet nobody can tell which note it came from.
Relayer
The relayer signs and pays the payout transaction, so your wallet never appears in it. The proof fixes the recipient, amount and fee: the relayer can submit it or not, but cannot change where the money goes.