SolMix
checking…
Open the mixer
Solana mixer · zero-knowledge privacy pool · no KYC

Solana remembers
every wallet you
ever touched.
A Solana mixer
is where it stops.

SolMix is a SOL mixer built as a zero-knowledge privacy pool. A fixed amount of SOL goes in. The same amount comes out to a wallet with no history. Nothing on chain joins the two.

No account · no email · no KYC · no wallet connection to withdraw
~0.001 SOL per note, flat — almost all of it rent paid to the chain, not to us.

trace — following one walletillustration
14:027Kq4…y9Ba 9FhR…2mQd0.1 SOL
14:039FhR…2mQd Bn2X…tL7v0.1 SOL
14:05Bn2X…tL7v hop #20.1 SOL
14:07Bn2X…tL7v pool · commitment 0x8f3c…deposit
the link ends here
19:41??????? 4TzP…kR1sno link
20:14??????? Qm8W…3xEhno link
21:58??????? Ld6N…9cFuno link
Hops don't help — every hop is a public transfer. The pool and the wait are what cost an observer something. Addresses shown are illustrative, not live chain data.
network
program
merkle depth
deposits in pools
relayer
withdraw delay
01

Your Solana wallet is a public document

Pseudonymous is not private. It means your name is missing from the ledger until somebody supplies it once — and then it is attached to everything you have ever done.

explorer — any address, no permission, no cost
address7Kq4…y9Ba
balancereadable
counterpartieseveryone you ever paid
timestampsyour timezone, your habits
tokens & NFTseverything you have held
first txand every one since
identity— until one link supplies it
  • ONE LINKA withdrawal from a KYC exchange ties an address to a verified identity in that exchange's database. Paying a merchant ties it to an invoice. Publishing a donation address ties it to you in public, permanently.
  • THEN IT SPREADSClustering heuristics group addresses that move funds together. Name one address in a cluster and the label propagates. Analytics firms do this at scale and sell the result.
  • WHAT IT COSTSPay a colleague and they can see your balance. Take a salary on chain and everyone paid by that wallet can compute it. Hold something worth taking and the fact is public, alongside the hours you are active.
  • WHAT A MIXER CUTSExactly one connection: deposit wallet ↔ withdrawal wallet. Both transactions stay public. What disappears is any on-chain way to say they belong to the same person.
02

How the Solana mixer works

The design is old, public and deliberately boring. Anything novel in this position would be a reason to walk away, not a feature. Four moving parts, and none of them requires trusting the person running it.

01

The commitment

Your browser draws two random field elements — a nullifier and a secret — and hashes them into Poseidon(nullifier, secret). The chain receives a fixed amount of SOL and that one hash. It learns nothing else, and the two numbers never leave your machine.

02

The tree

Commitments are appended to a Merkle tree twenty levels deep — room for just over a million deposits. The program stores only the root and one node per level; an indexer replays deposit events so your browser can rebuild a path.

03

The proof

Withdrawing is a Groth16 proof of one sentence: I know the nullifier and secret behind some leaf of this tree. Everything hinges on some. Three values go public — root, nullifierHash, extDataHash — and none names your leaf.

04

The nullifier

The chain runs the pairing check (~110,000 compute units through Solana's BN254 syscall) and creates an account keyed by the nullifier hash. Spend the same note twice and the account already exists, so it fails. It records that a note was spent, never which one.

DEPOSITS — ALL IDENTICAL 0.1 SOL · 0x8f3c… 0.1 SOL · 0x21ae… 0.1 SOL · 0xc07d… 0.1 SOL · 0x5b92… MERKLE TREE depth 20 · one root no sender stored SHARED POOL Groth16 proof “I own some leaf” fresh wallet no history no on-chain link between the two ends
The cryptography guarantees the crowd is real. The crowd is what hides you.

Two more parts sit either side of the pool. Before it: deposits land in a holding wallet run by this service and wait there, because a pool deposit is final — the program stores no sender and has no refund instruction, and any instruction able to return your money would be an instruction able to move somebody else's. After it: a relayer broadcasts your withdrawal so a brand new wallet never has to be funded first. The recipient and the exact fee are bound into the proof, so a relayer can refuse to send but cannot redirect or overcharge. The full mechanism.

Tumbler, mixer, privacy pool get used as synonyms and they are not. A Solana tumbler takes your SOL and sends different coins back — it holds your funds, and it knows exactly which output matches which input, so your privacy is a promise rather than a property. A SOL mixer is the same arrangement with better manners: more hops, staggered timing, split payouts, and still somebody else's wallet in the middle. A privacy pool is non-custodial — the program's only way to release funds is to whoever presents a valid proof, so the operator cannot pay themselves your deposit because no instruction exists that would do it. SolMix is the third kind. Which is which.

03

The pools, live and unflattered

Every pool has two anonymity numbers: how many deposits it holds, and how many of those the operator does not already hold the notes for. The second is smaller and much less flattering. It is the one that describes your actual exposure, so it is printed here.

PoolDepositsNot the operator'sPool address
reading the chain…

Read live from this instance. A thin pool is a thin pool and no proof system tops it up — take the deepest one your budget allows, and while a pool is shallow treat the smaller number as the true one.

04

What SOL mixing costs

About 0.001 SOL a note. Flat, never a percentage. Measured rather than estimated — scripts/measure-costs.js reads the lamport deltas off a real deposit and a real withdrawal.

ItemRoughlyPaid to
nullifier account rent~0.00097 SOLthe chain, permanently
transaction fees~0.00001 SOLvalidators
relayer marginshown before you confirmthe relayer
percentage of your depositnone
waiting long enoughfreethe step people skip

97% of it is the nullifier record, and it is nobody's margin: the entry marking a note spent has to survive as long as the pool does, or the note could be spent twice. Because the charge is flat, the same ~0.001 SOL is 1% of a 0.1 SOL mix and 0.01% of a 10 SOL one — which makes choosing a pool a privacy decision rather than a budget one.

05

Four things we will not tell you

Every one of these appears on competing mixers. Each is struck out here because it is either false or unfalsifiable, and a privacy tool that lies in its marketing has already told you how it handles the parts you cannot check.

100% anonymous

Your anonymity is arithmetic on the crowd around you. One of 400 is real cover. One of 2 is a name tag. The number is on the pool table above, not in a slogan.

Untraceable

Both of your transactions are on a public ledger and will stay there forever. The claim is that they cannot be joined — not that they vanish.

Zero logs

The site runs on a server, and servers see request IPs. Any mixer swearing otherwise is asking you to believe something you cannot check. Use Tor or a VPN; that is a better answer than a promise.

Bank-grade security

There is no bank here and nothing to reset. Lose your note and the SOL stays in the pool permanently — that is the direct price of nobody having custody of it.

The claim, stated narrowly enough to be tested: your deposit and your withdrawal cannot be linked on chain. How much that is worth depends on the depth of the pool and on your patience. Everything past the withdrawal is your operational discipline, not our product.
06

Proof, trust, and the parts that are still weak

Using any mixer means accepting claims you cannot see. These are read live from this instance, including the one that reads badly.

trusted setup
reading…
upgrade authority
reading…
beacon unpredictable
reading…

Why a ceremony at all. A proof system needs public parameters, and generating them requires secret randomness — toxic waste that has to be destroyed, because anyone who kept a copy can manufacture a valid proof for a deposit that was never made. The pool would pay out, the proof would verify, and no contract audit would ever surface it. So several people take turns instead, each folding in fresh randomness: forging afterwards would need every secret in the chain, and a single honest contributor is enough. The last step mixes in the hash of a Bitcoin block that had not yet been mined, so going last is no advantage. Every fingerprint, and where it was published, is listed on the Proof & trust tab. A contribution nobody published is the operator's word — and the operator's word is the thing a mixer exists to replace, so those are marked rather than counted.

07

Solana mixer FAQ

The questions people actually ask, including the ones with unwelcome answers.

What does SolMix actually do?
One thing: it breaks the on-chain link between the wallet that deposits and the wallet that withdraws. Your SOL sits in a pool of identical deposits and comes out as a withdrawal that matches every other. Nothing else about your coins becomes more private than it was.
What do I actually have to do?
Choose a pool, save the note your browser generates, send that exact amount, leave it a while, then withdraw to a wallet that has never been used. No account, no email, nothing to sign up for.
What does a mix cost?
About 0.001 SOL per note, flat. Roughly 97% of that is a permanent on-chain record that stops the note being spent twice; it is paid to the chain, not to us. There is no percentage cut.
How long should I wait before withdrawing?
Longer than feels necessary. Withdrawing minutes after depositing pairs the two transactions on the clock alone, and no amount of cryptography repairs that. Waiting also lets more deposits pile in behind yours.
Can the operator work out which withdrawal is mine?
Not from the proof — it carries nothing that points at a deposit. The real exposure is a thin pool where most of the deposits belong to the operator, who recognises their own and reaches yours by elimination. That number is printed on the pool picker.
What if I lose the note?
The SOL stays in the pool permanently. There is no recovery path and no instruction in the program that could create one. This is the direct cost of nobody having custody of your funds.

More: the step-by-step walkthrough, the long answers, or how to check you are on the real domain.

Mix SOL without asking anyone's permission

No account, no email, no documents, and no wallet connection to withdraw. Pick a pool, save the note your browser generates, and take your time before you withdraw.