Skip to main content

Private Transfers

Send private, anonymous transactions using Privacy Cash to protect your financial privacy. Privacy Cash enables private transfers of USDC, USDT, and SOL using zero-knowledge proofs and Merkle trees to break the link between depositors and withdrawers.

What is Privacy Cash?​

Privacy Cash is a privacy protocol on Solana that allows users to transfer cryptocurrencies privately. It uses zero-knowledge proofs to ensure that withdrawals cannot be linked to deposits, providing privacy for Solana transactions.

Privacy Cash Resources:

How Privacy Cash Works​

Privacy Cash uses a two-step process to ensure transaction privacy:

1. Shield (Deposit)​

Shield SOL/USDC/USDT: Deposit your cryptocurrency into a privacy pool, generating a commitment that is added to a Merkle tree. This breaks the link between your deposit and your identity.

2. Withdraw​

Withdraw to Any Address: Withdraw cryptocurrency from the privacy pool to any recipient address using zero-knowledge proofs. The zero-knowledge proofs ensure that withdrawals cannot be linked to specific deposits.

Technical Implementation​

  • Zero-Knowledge Proofs (ZK Proofs): Cryptographic proofs that allow you to prove you have a valid deposit without revealing which specific deposit it is
  • Merkle Trees: Data structures that efficiently store commitments and enable privacy-preserving withdrawals
  • Privacy Pools: Shared pools where deposits are mixed, making it impossible to link specific deposits to withdrawals

How reply.cash Shows Private Transfers​

On reply.cash, private transfers are displayed as two separate transactions for clarity:

1. Topup Transaction​

The initial deposit into the Privacy Cash pool. This is your "shield" transaction that adds your funds to the privacy pool.

Important: Private topups require that you use a different wallet to topup a new wallet. There's no privacy benefit in sending the same amount of money to the same wallet.

2. Transfer Transaction​

The withdrawal from the privacy pool to the recipient, shown with the anonymity set indicator.

Anonymity Set​

The anonymity set represents the number of other users in the privacy pool at the time of your transaction. A larger anonymity set provides better privacy because your transaction is mixed with more other transactions, making it harder to identify which deposit corresponds to which withdrawal.

Understanding Anonymity Sets:

  • Small anonymity set (1-10): Lower privacy - easier to potentially link deposits and withdrawals
  • Medium anonymity set (10-100): Moderate privacy - reasonable protection
  • Large anonymity set (100+): High privacy - very difficult to link transactions

reply.cash displays the anonymity set so you can make informed decisions about when to withdraw for maximum privacy.

How to Use Private Transfers​

Option 1: Direct Send Option​

  1. Navigate to "Send" in the app
  2. Select "Private Transfer" or "Privacy Mode"
  3. Choose the asset (USDC, USDT, or SOL)
  4. Enter the recipient's wallet address
  5. Enter the amount you want to send
  6. Review the anonymity set
  7. Confirm the transaction

Pin private transfers as a quick action for faster access:

  1. Go to Settings β†’ Payment Preferences
  2. Find "Private Transfers" in the list
  3. Tap the pin icon (πŸ“Œ) to pin it to quick actions
  4. Private transfers will now appear at the top of your send screen

πŸ“– Learn more: Setting Preferred Payment Methods - Configure quick actions

Privacy Cash Tips & Best Practices​

How Does Privacy Cash Work?​

Privacy Cash uses zero-knowledge proofs (ZK proofs) and Merkle trees to break the link between depositors and withdrawers. When you deposit, your transaction is added to a Merkle tree. When you withdraw, you prove you have a valid deposit using a ZK proof, without revealing which specific deposit is yours.

What If Observers Try to Guess Based on Amount?​

Wait before withdrawing and split into different amounts.

If you deposit a unique amount (e.g., 1.234567 SOL), observers might try to link your deposit to your withdrawal if you withdraw the same amount. To maximize privacy:

  • Wait: Don't withdraw immediately after depositing
  • Split amounts: Break large deposits into multiple smaller amounts
  • Use round numbers: Round amounts are harder to track than unique amounts
  • Check anonymity set: Wait for a larger anonymity set before withdrawing

Fees​

Privacy Cash fees are transparent and competitive:

  • Deposits: 0% fee - No cost to deposit into the privacy pool
  • Withdrawals: 0.35% + 0.006 SOL - Small fee for privacy protection

Example: Withdrawing 100 SOL costs 0.35 SOL (0.35%) + 0.006 SOL = 0.356 SOL total fee.

Can I Directly Withdraw to CEXs or Centralized Apps?​

⚠️ Highly Recommended: Withdraw to a clean, new non-custodial wallet first (like Phantom, Solflare, or Backpack), then send from that wallet to centralized exchanges or apps.

Why?

  • Centralized exchanges may link your withdrawal to your account
  • Using an intermediate wallet adds an extra layer of privacy
  • Prevents direct connection between your Privacy Cash withdrawal and your exchange account

Recommended Flow:

  1. Withdraw from Privacy Cash β†’ New clean wallet (Phantom/Solflare/Backpack)
  2. Send from new wallet β†’ Centralized exchange (Coinbase, Binance, etc.)

Privacy Considerations​

Maximum Privacy Tips​

  1. Use different wallets: Always use a different wallet for topups than your main wallet
  2. Wait for larger anonymity sets: Check the anonymity set before withdrawing
  3. Split amounts: Break unique amounts into multiple transactions
  4. Use intermediate wallets: Withdraw to a new wallet before sending to exchanges
  5. Avoid timing patterns: Don't withdraw immediately after depositing

What Privacy Cash Protects​

βœ… Transaction amounts: Amounts are hidden in the privacy pool
βœ… Sender identity: Deposits cannot be linked to specific users
βœ… Recipient identity: Withdrawals cannot be linked to specific deposits
βœ… Transaction timing: Timing patterns are obscured in the pool

What Privacy Cash Does NOT Protect​

❌ Recipient address: The final recipient address is visible on-chain
❌ Wallet balance: Your wallet balance is still visible
❌ Exchange deposits: Direct deposits to exchanges may be linked

Security & Audits​

Privacy Cash has been fully audited by multiple security firms:

  • βœ… Accretion - Security audit
  • βœ… HashCloak - Security audit
  • βœ… Zigtur - Security audit
  • βœ… Kriko - Security audit

The program is verified on-chain with hash: c6f1e5336f2068dc1c1e1c64e92e3d8495b8df79f78011e2620af60aa43090c5

Troubleshooting​

Transaction Failed​

  • Ensure you have sufficient balance for fees (0.35% + 0.006 SOL)
  • Check that the anonymity set is sufficient
  • Verify your wallet is connected properly
  • Try again after a few minutes

Low Anonymity Set​

  • Wait for more users to join the pool
  • Check the Dune Analytics dashboard for current pool statistics
  • Consider splitting your transaction into smaller amounts

Privacy Concerns​

  • Always use a different wallet for topups
  • Withdraw to an intermediate wallet before sending to exchanges
  • Avoid withdrawing immediately after depositing
  • Use round amounts when possible

External Resources​

See Also​


Privacy Cash enables financial privacy through zero-knowledge proofs. Always use best practices to maximize your privacy protection.