Using a Solana mixer, start to finish

Four steps and one rule. The rule is: save the note before you send anything.

TornadoSol severs the on-chain connection between the wallet you pay from and the wallet you end up holding. You put a fixed amount into a shared pool, leave it there, and later take the same amount out somewhere new. Every deposit in a pool is identical, so nothing in the withdrawal points back at yours.

  1. Pick a denomination. Pools accept one exact figure. Choose the busiest pool you can afford — the number of deposits already sitting in it is, quite literally, your privacy.
  2. Save the note. Your browser generates it before any money moves. Copy it somewhere durable. Nobody can recover it for you and nobody is storing a copy.
  3. Send the exact amount. Not a lamport more or less. The pool takes exact multiples or nothing.
  4. Wait, then withdraw. Paste the note, name a destination with no history, and let the relayer broadcast it. The destination never has to hold SOL first.

The two things that decide how well this works

Pool size and time. Everything else is detail. A withdrawal that lands ninety seconds after the matching deposit is trivially paired by timing alone, no matter how sound the proof is — see how the pool actually works. And extra hops between wallets afterwards achieve nothing: every hop is public, so a chain of five addresses is a chain of five public addresses.

Finish on a clean address. Withdraw straight into an exchange deposit address tied to your identity and you have handed the connection back. Use a wallet with no past and no plans.

What can go wrong

Three things, in order of how often they happen: losing the note, sending an amount that is not an exact multiple of a denomination, and withdrawing too soon. The first is unrecoverable, the second gets held for review and returned, the third is silent — it costs you the privacy without any error message.

Ready? Start a mix, or read what it costs first.