Skip to main content
Privacy Cash is a privacy protocol on Solana that enables private transfers and swaps without linking your wallet addresses or transaction history. Built with zero-knowledge proofs, an append-only Merkle tree, and a relayer system, Privacy Cash breaks the on-chain link between deposits and withdrawals.

Privacy Cash has privately transferred and swapped $190M+ in volume. The on-chain program, zero-knowledge circuits, and SDK are fully open-sourced, verified on-chain, audited 14 times, and formally verified by Veridise. Privacy Cash is also backed by AllianceDAO.

Private Transfers

Privacy Cash lets you transfer funds to a clean wallet without linking past addresses or transaction history.

To make a private transfer, you first deposit your tokens into Privacy Cash. Later, you can withdraw those tokens to a recipient address.

Privacy Cash breaks the link between deposits and withdrawals using zero-knowledge proofs, an append-only Merkle tree, and a relayer system. Your signed deposit transaction is sent to a relayer, which screens your wallet address through CipherOwl. If your address is flagged as malicious, the deposit is rejected.

The withdrawal process is similar, except the transaction is signed by the relayer. Your withdrawal in the onchain transaction (e.g. on SolScan or Orb) contains no information about the original depositor, breaking the link between deposits and withdrawals. A zero-knowledge proof generated on the client ensures that the relayer cannot modify the recipient address, amount, or other parameters. Any tampering will cause the on-chain transaction to fail.

Each deposit and withdrawal creates a UTXO that is encrypted and submitted to the Solana program on-chain. These encrypted UTXOs are indexed off-chain. Only the user who holds the encryption key can decrypt their UTXOs and spend the balance. The encryption key per user is deterministically derived on the client by the user signing a fixed message and is accessible only to the user, unless it is intentionally or unintentionally leaked (for example, through phishing). Don’t blindly sign messages on phishing sites!
Deposit Fees: 0
Withdrawal Fees: 0.006 SOL (or equivalent for SPL) * number of recipients + 0.35% of withdrawal amount

Private Swaps

Private Swaps is enabled by the same protocol (Solana program and ZK circuits) and SDK that passed 14 audits in total.

How it works:
  1. Your input token is unshielded into an ephemeral wallet on the client
  2. The ephemeral wallet executes a Jupiter swap
  3. The output token is reshielded back to your main wallet
At no point is your main wallet address exposed on-chain during the swap. With private swaps, your private SOL can be swapped into private USDC/USDT/ORE/etc. in our privacy pool. Private swaps will increase your anonymity, because it makes it harder for observers to do amount based analysis (you can partially swap your SOL deposits into USDC).

Swap Fees: 0.008 SOL (or equivalent for SPL) + 0.35% of swap amount + Jupiter fees

Caveats

  1. It’s highly recommended that you withdraw to a clean new non-custodial wallet like Phantom, Solflare, or Backpack first. Then send from the new wallet to centralized apps (e.g. CEXs and Revolut might require manual processing, which may take days or longer).
  2. Although Privacy Cash technically breaks the link between deposits and withdrawals, observers may still make educated guesses by analyzing on-chain activity (for example, via SolScan or other explorers) if a unique amount is deposited and the same amount is withdrawn shortly afterward. For maximum privacy, consider the following best practices:
    • Deposit round, integer amounts
    • Wait at least a day before withdrawing
    • Split withdrawals into multiple chunks and withdraw them over time (for example, withdraw the first portion after one day, then the next portion another day later)
    • Swap a partial amount of your token into a different token
    These steps help reduce timing and amount-based correlation.