Overview
Privacy Cash is a privacy protocol on Solana that enables confidential transactions using zero-knowledge proofs. The protocol allows users to shield and withdraw SOL (with SPL token support coming soon) without revealing transaction linkages. The program is fully audited by Accretion, HashCloak, Zigtur and Kriko, and verified onchain with hash:Quick start
Get started with Privacy Cash in minutes
Installation
Install dependencies and set up your environment
Privacy Cash SDK
Integrate Privacy Cash into your project
GitHub Repository
View the source code and contribute
How it works
Privacy Cash implements a privacy protocol with two core operations:Shield SOL
Deposit SOL into a privacy pool, generating a commitment that is added to a Merkle tree. The commitment contains your amount and a secret keypair, but reveals nothing about the owner.
The implementation uses zero-knowledge proofs to ensure that withdrawals cannot be linked to deposits, providing privacy for Solana transactions.
Key features
Zero-knowledge privacy
Privacy Cash uses Groth16 zero-knowledge proofs on the BN254 elliptic curve to verify transactions without revealing sensitive information. Each transaction proves:- The spender owns valid commitments in the Merkle tree
- The input and output amounts balance correctly
- Nullifiers have not been used before (preventing double spends)
Merkle tree commitment scheme
Commitments are stored in a sparse Merkle tree with:- Height: 26 levels
- Root history: 100 previous roots maintained for proof flexibility
- Poseidon hash: Gas-efficient hash function optimized for zero-knowledge circuits
UTXO model
Privacy Cash implements a UTXO (Unspent Transaction Output) model similar to Bitcoin and Tornado Cash Nova:Fee structure
Deposit fee
0% - Deposits are completely free
Withdrawal fee
0.25% - Small fee on withdrawals (25 basis points)
Fees are configurable by the protocol authority and include a 5% error margin for tolerance.
Supported tokens
Mainnet: USDC, USDT, ORE, ZEC, stORE, jlUSDC, jlWSOLDevnet: USDC, USDT, ORE, ZEC, stORE, jlUSDC, jlWSOL (testnet versions)
Additional SPL tokens can be enabled by the protocol authority through the
initialize_tree_account_for_spl_token instruction.Program addresses
Security
Privacy Cash has been audited by multiple security firms:- Accretion - Smart contract security audit
- HashCloak - Zero-knowledge proof audit
- Zigtur - Cryptography review
- Kriko - Full protocol audit
Architecture
The Privacy Cash repository is structured as follows:Next steps
Quick start guide
Start using Privacy Cash with our quick start tutorial
Install dependencies
Set up your development environment