Privacy

How to Transfer Crypto Privately with Zero-Knowledge Proofs

Every crypto transaction is public by default. Mixoor uses Groth16 zero-knowledge proofs to break the on-chain link between your deposit and withdrawal wallets — here's exactly how it works.

By Jorge Rodriguez · 6 min read · 2025-04-20

The problem: every transaction is public

Blockchain explorers show the sender, recipient, and amount of every transfer. If someone knows one of your wallet addresses, they can trace your entire financial history — including holdings, trading patterns, and which services you use.

This isn't hypothetical. On-chain analytics companies routinely map wallet clusters for compliance, surveillance, and even competitor analysis. Privacy on public blockchains requires explicit tooling.

How Mixoor breaks the link

Mixoor uses a specific type of zero-knowledge proof called Groth16 running over the BN254 elliptic curve. The entire flow happens in three steps:

01
Deposit into the privacy pool

You send crypto into the Mixoor smart contract. Instead of recording your address, the contract stores a cryptographic commitment — a Poseidon hash of a random secret that only you know. Your deposit becomes one anonymous leaf in a Merkle tree with up to 1,048,576 entries.

02
Generate a zero-knowledge proof

When you want to withdraw, Mixoor generates a Groth16 proof entirely in your browser. This proof says: "I know the secret behind one of the commitments in the tree" — without revealing which one. Your secret never leaves your device.

03
Withdraw to any wallet

The proof is submitted to the smart contract (directly on Solana/Sui, or via a relayer on Ethereum/BNB). The contract verifies the proof on-chain, checks the nullifier hasn't been used, and releases the funds to your chosen recipient address.

Why this makes transfers private

After the process, there is no on-chain data connecting your deposit wallet to the withdrawal wallet. An observer sees two separate events — an inflow and an outflow — with no cryptographic link between them.

🔒No wallet link

Deposit address and withdrawal address are never connected on-chain or off-chain.

🛠Client-side proof

The ZK proof is generated in your browser. Your secret never touches any server.

On-chain verification

The smart contract itself verifies the proof. No trusted third party involved.

🚀Non-custodial

Funds stay in the contract. Only a valid proof can authorize a withdrawal.

Supported chains and fees

Mixoor runs the same circuit and security model across four chains. The fee is a flat percentage deducted from the withdrawal — no deposit fee.

ChainAssetMin DepositFee
SolanaSOL, USDC0.05 SOL / 10 USDC0.15%
EthereumETH0.05 ETH0.25%
BNB ChainBNB0.025 BNB0.25%
SuiSUIgas only0.15%

Frequently asked questions

Is this the same as Tornado Cash?

No. Mixoor is an independent protocol with separate smart contracts, operated by SmithiiDev. It is not affiliated with Tornado Cash or any sanctioned entity.

Can anyone see my deposit amount?

The deposit transaction is public (blockchain is transparent), but the link between your deposit and the recipient address is broken by the ZK proof.

What happens if I lose my note?

Your deposit note (the secret) is the only way to generate the withdrawal proof. If you lose it, the funds remain in the pool permanently. Always back up your note.

Ready to transfer privately?

Connect your wallet and make your first private transfer in under 2 minutes.

Launch Mixoor →