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:
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.
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.
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.
Deposit address and withdrawal address are never connected on-chain or off-chain.
The ZK proof is generated in your browser. Your secret never touches any server.
The smart contract itself verifies the proof. No trusted third party involved.
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.
| Chain | Asset | Min Deposit | Fee |
|---|---|---|---|
| Solana | SOL, USDC | 0.05 SOL / 10 USDC | 0.15% |
| Ethereum | ETH | 0.05 ETH | 0.25% |
| BNB Chain | BNB | 0.025 BNB | 0.25% |
| Sui | SUI | gas only | 0.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.
Connect your wallet and make your first private transfer in under 2 minutes.
Launch Mixoor →