Bitcoin Privacy

CoinJoin and UTXO Segregation Deep Dive

Cream and charcoal tiles stay in two separate sewn pockets of an open fabric organiser.

UTXO segregation means keeping coins from different sources apart, so that spending one never exposes the others. A UTXO (unspent transaction output) is one of the separate coins your wallet holds, and each one carries its own public history. CoinJoin is one transaction that several people build together, in which many outputs share the same amounts, so that outsiders looking at the blockchain cannot tell which of those outputs belongs to whom. The two work as a pair: segregation stops you from creating new links between your coins, and CoinJoin cuts links that already exist. This guide follows the whole route, from sorting your coins by source to mixing them and moving them into cold storage on a hardware wallet.

Two panels. What segregation prevents: a 0.1 BTC coin from an exchange, which carries your name, and a 0.05 BTC coin bought without ID are spent together in one payment. Analysts assume one owner, so the payment, and with it the no-ID coin, is now linked to your name for good. What a CoinJoin cuts: your coin, linked to your name, goes into one transaction with four coins from other people, and it creates five equal outputs. Yours could be any of the five, so the trail to your name stops there.
Segregation prevents new links; a CoinJoin cuts old ones. Coins spent together look like one owner’s, so keeping sources apart stops you from linking them for good. After a CoinJoin your output could be any of the equal ones, though outsiders can usually still see that you took part.

Which CoinJoin tools still work (checked 7 November 2026). The tools have changed a lot since this guide first appeared:

  • Samourai’s Whirlpool is gone. US authorities seized Samourai Wallet’s servers in April 2024, and Sparrow Wallet removed its Whirlpool client in version 1.9.0 that same month. Ashigaru, an independent project, revived the Whirlpool design in 2025 with a new coordinator, the server that organizes each mixing round.
  • Wasabi’s original coordinator is gone, but the wallet still works. zkSNACKs switched its coordinator off on 1 June 2024. In Wasabi you now choose an independent coordinator yourself, and Ginger Wallet, a Wasabi fork, comes with its own.
  • The original JoinMarket software is archived and unsafe. It was archived in April 2026, and its page now says “DO NOT USE THIS CODE”: its known vulnerabilities will not be fixed. On 4 November 2026 its maintainers added that every release with PayJoin (v0.7.0 to v0.9.12) lets a malicious receiver take the full value of the coins you spend when you send a PayJoin payment with it. (In a PayJoin, the person you pay adds one of their own coins to the payment; Step 5 explains it.) JoinMarket NG, an independent reimplementation that joins the same market, is the maintained option; Jam 2.0, a web interface that now runs on it, is in beta.

How a CoinJoin works, what each tool costs and what you trust a coordinator with are explained step by step in our lesson CoinJoin in 2026: How Bitcoin Mixing Works and What Still Operates After Whirlpool.

Start with where your coins came from. Coins withdrawn from an exchange that verified your identity (KYC, “know your customer”) are tied to your name; coins bought peer to peer without ID carry no such record, though a seller you pay by bank transfer still sees your name. Chain analysis assumes that all the coins spent in one transaction belong to one person, so a single payment that spends both kinds links them for good. Our guide to Bitcoin and digital identity shows how those links reach your name.

Mix before cold storage. The CoinJoin tools in this guide sign with keys held in a software wallet on an online device, because each round needs quick signatures; Wasabi’s documentation states that a hardware wallet cannot take part directly. The usual route is to send coins from the hardware wallet to the mixing wallet, mix them, and send each mixed coin back to a fresh address on the hardware wallet. Done in that order, the coins you keep for years arrive in cold storage with the link to your identity already cut.

Run the whole route through your own node. A wallet that asks someone else’s server about your addresses tells that server which coins are yours, before and after the mix. Your own node answers those questions at home and checks every transaction against the rules itself. If you are setting one up, our guide to node sync problems and their fixes helps with the first sync.

Sparrow Wallet remains a strong desktop interface for a hardware wallet. It lists every coin, lets you label each one and choose by hand which coins a payment spends (coin control), and connects to your own node. It no longer mixes coins: use it to sort and spend, and a separate tool to mix. These habits are covered further in our advanced wallet privacy strategies and in how wallets build in privacy features.

Step-by-Step Guide to Implementing CoinJoin with Proper UTXO Segregation

Running CoinJoin well takes more than clicking a button in your wallet. The privacy you gain depends on how you handle your coins before, during and after the shared transaction. The steps below work with any of the tools that still operate; where a tool behaves differently, it is named.

Step 1: Sort your UTXOs by source before you mix. List every coin and note where it came from: purchases on an exchange that verified you (tied to your identity), purchases without ID (Bisq, HodlHodl, RoboSats or other peer-to-peer trades), mining rewards, payments from people who know you, and coins from earlier CoinJoins. In Sparrow Wallet, open the UTXOs tab and give every coin a label. Labels live only in your wallet file, so export them (Sparrow uses the BIP 329 format) and keep the file as private as the wallet itself. Many people go further and keep a separate wallet for each source, so coins from different sources can never be spent together by accident. This sorting also tells you which coins need mixing most.

Step 2: Choose a CoinJoin tool that still works. Most tools use a coordinator, a server that gathers the participants and assembles the transaction. A coordinator cannot take your coins, because your wallet checks the transaction and signs only its own inputs. It can stop its rounds, though, and a dishonest one may learn which outputs are yours, so prefer coordinators run by people with a public reputation. As of November 2026 the options are as follows (fees and status change quickly, so check each project’s own pages before you start):

  • Wasabi Wallet with an independent coordinator. You paste a coordinator address in Settings, on the Coordinator tab, and restart Wasabi. Wasabi joins only rounds with no coordinator fee: you pay mining fees, and in rare cases a leftover of at most 10,000 sats per coinjoin goes to the coordinator. Each person can put in and take out different amounts, so little change is left over.
  • Ginger Wallet. A Wasabi fork that comes with its own coordinator. It charges a 0.3% coordinator fee on coins over 0.03 BTC, plus mining fees; smaller coins and remixes pay no coordinator fee. Its coordinator screens coins, and its terms exclude U.S. nationals and anyone located in the U.S. or its territories.
  • Ashigaru Whirlpool. The revived Whirlpool design, on new infrastructure and over Tor only (Tor is a network that hides your IP address). It has fixed pools of 0.025 and 0.25 BTC, an entry fee of 5% of the pool size, and free remixes afterwards. Download it only from ashigaru.rs and verify the signature.
  • JoinMarket NG, optionally with Jam 2.0. There is no central coordinator: makers leave coins available and earn a fee each time they are used, and a taker starts a CoinJoin, picks makers and pays them. Because the taker builds the transaction, the taker learns which outputs belong to which maker, so takers get the stronger privacy. JoinMarket NG is used mainly from the command line and is technical to set up; its getting-started guide walks through installation. Jam 2.0, the web interface, is still in beta.

Choose by amount and comfort. Wasabi or Ginger suit most people mixing on a desktop, because your coins don’t have to match a fixed pool size. Ashigaru’s fixed pools make costs easy to predict, but they leave toxic change (Step 7) and cost at least 125,000 sats per entry. JoinMarket NG avoids a central coordinator in exchange for more setup. If you still run the original JoinMarket from an old node app, stop using it and move the wallet to JoinMarket NG with its backup, recovery and migration guide; if your node’s app store offers Jam or JoinMarket, check which backend it installs.

Step 3: Mix one source at a time. Whatever the tool, a mixing session should never bring together coins you have kept apart.

Two wallets: wallet A holds coins from an exchange, which carry your name; wallet B holds coins bought without ID. Do: each wallet's coins go into a CoinJoin of their own, so the two histories never meet. Don't: put both sources into one CoinJoin. Outsiders can then link the two sources, and your no-ID coins can end up tied to your name.
Mix one source at a time. A CoinJoin hides which output is yours, but your own coins that go in together can still be linked to each other. One wallet per source stops a tool that picks coins by itself from combining them.
  • Wasabi (and Ginger, which is built on it) registers coins for each round automatically; you cannot pick them by hand. Keep each source in its own wallet. In Wasabi you can also hold coins back with Exclude Coins, in the menu of the music box, the coinjoin control at the bottom of the wallet. Its non-private coin isolation setting, on by default in the Default and Enhance Privacy strategies, registers at most one unmixed coin per round, so outside observers can’t use the round’s inputs to link your unmixed coins to each other.
  • Ashigaru starts with an entry transaction called Tx0, which splits your coin into pool-sized pieces and pays the entry fee. If you select several coins for one Tx0, they are spent together in it, so select coins from one source only.
  • JoinMarket NG keeps separate accounts, called mixdepths, inside one wallet. Its privacy guide advises keeping funds with unrelated histories apart and warns that mixdepth numbers are not a privacy score.

Step 4: Let your coins go through more than one round. Your anonymity set is the number of equal outputs your coin could be, from an outsider’s point of view. A bigger crowd is better, but only real participants count: if one surveillance firm put in most of the coins, your real crowd is small (one party posing as many is called a Sybil attack). Remixing, sending a mixed coin through further rounds, helps, though the gains don’t simply multiply, especially if you meet the same participants again.

Two views of the same CoinJoin round with 50 equal outputs. To an outsider, your output is one of 50: a crowd of 50. But if one surveillance firm put in 40 of those coins, only 9 outputs belong to other real people, and your real crowd is 10.
The crowd is only as real as the people in it. Your anonymity set is the number of equal outputs yours could be. One party pretending to be many, a Sybil attack, makes it smaller than it looks.

How each tool handles remixing:

  • Wasabi keeps coinjoining your coins until they reach the anonymity score target of your coinjoin strategy, paying mining fees each round.
  • Ginger, built on Wasabi, charges no coordinator fee on remixes.
  • Ashigaru remixes your mixed coins for free while the client is running, with no further entry fee.
  • With JoinMarket NG, the taker pays the chosen makers’ fees and a mining fee for every CoinJoin. Its tumbler, a script rather than a mixing service, runs a longer sequence of CoinJoins to several destinations, with waits in between. Its privacy guide warns against recombining the payouts right after a run and against treating a finished run as a privacy certificate. As with any mixed coins, spend each payout on its own (Step 5).

Step 5: Spend each mixed coin on its own. After a CoinJoin, treat every mixed coin separately. Never spend a mixed coin together with an unmixed coin or with toxic change, and avoid spending two mixed coins together: coins spent in one transaction look like one owner’s.

Three ways to spend after a CoinJoin. Outsiders assume that all the coins spent in one payment have one owner. A mixed coin spent together with toxic change that is linked to your name: the change ties the mixed coin straight back to you. Two mixed coins spent together: anyone can see they have one owner. One mixed coin spent on its own: nothing else is linked to it, though the person you pay can see your change.
The privacy is won or lost when you spend. Spend each mixed coin on its own, never with toxic change, other unmixed coins or another mixed coin. Coins spent together look like one owner’s.

When a payment is bigger than any single mixed coin, choose one of these options, each with a cost:

  • Pay in parts. Ask the recipient for two addresses and pay each from a different mixed coin, at different times. Nothing on the blockchain joins your coins, but the recipient knows both payments came from you.
  • Pay inside a coinjoin. Since version 2.8.0, Wasabi’s app lets you schedule a payment as one of the outputs of a coinjoin, so you don’t have to mix first and then pay on your own.
  • Spend two mixed coins together, knowingly. Observers will link those two coins to each other. That is a real loss, but much smaller than merging with an exchange coin, because neither coin points back to your history.
  • Plan ahead. If you know a large payment is coming, mix a larger amount, or keep those funds outside your private coins.

If the person you pay supports PayJoin, it adds privacy on top. In a PayJoin the recipient adds one of their own coins to your payment, so an outsider’s assumption that all the inputs share one owner gives the wrong answer. Sparrow can send a PayJoin (BIP 78) when you pay from a payment link or QR code that offers it. Never send a PayJoin with the original JoinMarket software.

A PayJoin, shown two ways. What really happens: you pay a friend 0.02 BTC from your 0.1 BTC coin, and your friend adds a 0.05 BTC coin of their own. The one payment creates 0.08 BTC of change for you and 0.07 BTC for your friend: their 0.05 plus your 0.02. What an outsider sees: two coins of 0.1 and 0.05 BTC with unknown owners going into one payment, and two outputs of 0.08 and 0.07 BTC. Both of the outsider's usual guesses are wrong: the two coins don't have one owner, because one is your friend's, and neither 0.07 nor 0.08 BTC was the amount paid, which was 0.02 BTC.
In a PayJoin, the person you pay adds a coin of their own. It looks like an ordinary payment, but the coins spent no longer share one owner and neither output is the amount paid, so both of an analyst’s usual guesses come out wrong.

Step 6: Move mixed coins to cold storage one at a time. Send each mixed coin in its own transaction to a fresh receiving address on your hardware wallet, and send the whole coin, so no change is created. Do not batch several mixed coins into one transaction to cold storage: that proves they share an owner and undoes the CoinJoin. Space the transfers out over time, and make them through your own node so no outside server sees your addresses. Label each coin in your hardware wallet’s software (for example “mixed, Wasabi, November 2026”): the hardware wallet does not know the coin’s history, and Wasabi’s documentation notes that a mixed coin sent to another Wasabi wallet starts again at an anonymity score of 1. Wasabi can also coinjoin straight into another wallet loaded in Wasabi, such as your hardware wallet’s, which saves a transaction; its documentation warns that this sends every coinjoin output there, whether or not it has reached your privacy target.

Two mixed coins leave the online mixing wallet for the hardware wallet. Mixed coin 1 goes whole, with no change, in transaction 1 to fresh address 1. Mixed coin 2 goes later, whole and with no change, in transaction 2 to fresh address 2. Each address carries a label such as 'mixed, Wasabi'. Do: one coin per transaction, spaced out over time, through your own node. Don't: send two mixed coins in one transfer, which shows they share an owner and undoes the CoinJoin.
Each mixed coin goes to cold storage on its own. Send the whole coin (the mining fee comes out of it), so no change is left, and give it a label in your wallet software: the hardware wallet doesn’t know the coin’s history.

Step 7: Keep toxic change apart. Toxic change is the part of your coin that a CoinJoin hands back unmixed, because equal outputs need equal amounts and your coin rarely matches exactly. It stays directly linked to the coin you put in, and so to your identity if that coin came from an exchange. Fixed-pool tools such as Ashigaru produce it on almost every entry: Tx0 keeps only the pool-sized part and returns the rest to you. The figure follows one 0.03 BTC coin through Ashigaru’s 0.025 BTC pool.

You put in one coin of 3,000,000 sats (0.03 BTC) withdrawn from an exchange that knows your name. Tx0 splits it into a pool-sized coin of 2,500,000 sats plus a small extra for mining fees, Tx0's own mining fee, a 125,000-sat entry fee (5% of the pool size), and a little under 375,000 sats of toxic change that is still linked to your name. Only the pool-sized coin is mixed with coins the same size, and it comes out as one mixed coin of exactly 2,500,000 sats. The cost is 125,000 sats plus mining fees, about 5% of what got mixed.
Only the pool-sized part of your coin gets mixed. Tx0 pays the entry fee and splits off toxic change, which stays linked to the exchange that knows you. Keep it labelled and apart from your mixed coins.

Never spend toxic change together with mixed coins, and never send it to an address tied to your mixed funds. Label it (for example “KYC change”), then spend it where your identity is already known, donate it, or keep it for a later mix together with other coins from the same source.

Step 8: Check your own transactions. After mixing and spending, look at your transactions the way an analyst would. In Sparrow connected to your own Electrum server (Electrs or Fulcrum, which index the blockchain on your node), open each transaction and compare its inputs and outputs with your labels. Confirm that no transaction spends coins you meant to keep apart and that no address was used twice. Avoid pasting your addresses into public block explorers: the site learns which addresses interest you. The Samourai-era analysis sites OXT.me and KYCP.org are gone: as of 7 November 2026 one does not answer and the other is a parked domain. If either name comes back, it is not the original service, so don’t paste your addresses into it.

Common Mistakes to Avoid

1. Merging mixed UTXOs in a single spend transaction. This is the most common CoinJoin mistake. If you combine two CoinJoin outputs as inputs to one transaction, you show they belong to the same person, shrinking your effective anonymity set back toward 1. Spend mixed UTXOs individually; when a payment needs more than one, use the options in Step 5.

2. Sending CoinJoin outputs back to a KYC exchange. Depositing mixed bitcoin to an exchange that knows your identity ties those coins to your name again. The exchange links the deposit to your account, and the chain analysis firms it works with can see that the coin came out of a CoinJoin. Some exchanges also question, freeze or refuse deposits with CoinJoin history. If you want to sell mixed bitcoin, sell it peer to peer without ID checks, for example on Bisq or HodlHodl; our lesson on buying bitcoin without KYC explains how those markets work.

3. Letting someone else’s server see your addresses. A wallet connected to a public Electrum server, a server that indexes the blockchain by address, asks it about every address in the wallet. That server can then link your coins before and after the mix, which defeats the purpose. Connect Sparrow to your own Electrum server (Electrs or Fulcrum) on your own Bitcoin node. Wasabi works differently: it downloads compact block filters and checks them on your computer, so the server that provides them does not learn your addresses, and it can also use your own Bitcoin node through its Bitcoin RPC settings. JoinMarket NG runs on your own Bitcoin Core node or on a light backend called Neutrino.

4. Spending toxic change alongside clean outputs. The change left over when a coin enters a CoinJoin is directly traceable to your original coin. If you spend it in the same transaction as a mixed output, the transaction links your pre-CoinJoin identity to your post-CoinJoin funds. Handle toxic change entirely apart from mixed coins: think of it as radioactive material that contaminates anything it touches.

5. Running CoinJoin with insufficient rounds. A single round with a handful of participants gives a small anonymity set, and against a chain analysis firm with access to exchange data that may not be enough. Let your coins go through further rounds: Wasabi does this automatically until your coins reach your privacy target, Ashigaru and Ginger remix without a further coordinator fee, and with JoinMarket NG a taker pays maker fees for every CoinJoin. More rounds generally help, though the gains shrink when you meet the same participants again, so weigh the cost against the privacy you need.

Frequently Asked Questions

How much does CoinJoin cost in transaction fees?

Costs depend on the tool. As of November 2026, Wasabi with an independent coordinator costs mining fees only, plus, in rare cases, a leftover of at most 10,000 sats per coinjoin that goes to the coordinator. Ginger Wallet charges a 0.3% coordinator fee on coins over 0.03 BTC plus mining fees; smaller coins and remixes pay no coordinator fee. Ashigaru Whirlpool charges an entry fee of 5% of the pool size (125,000 sats for the 0.025 BTC pool), paid once per entry, then remixes for free; mining fees come on top. With JoinMarket NG, a taker pays the chosen makers’ fees plus the mining fee for each CoinJoin, and a maker earns fees instead. A PayJoin costs little more than an ordinary payment: the recipient’s extra input adds a small mining fee, which the sender can cap under BIP 78. Fees change, so check each project’s own pages before you start.

Is CoinJoin legal?

Using CoinJoin is a way of building a Bitcoin transaction. The Samourai case targeted the people who ran a coordination service, not its users: US authorities seized Samourai Wallet’s servers in April 2024, and in November 2025 its founders were sentenced to five and four years in prison after pleading guilty to conspiring to run an unlicensed money-transmitting business. zkSNACKs switched off Wasabi’s original coordinator on 1 June 2024; the wallet still works with independent coordinators. As a user, the risk you are most likely to meet is an exchange questioning, freezing or refusing coins with CoinJoin history. Rules differ by country, so check yours.

Can chain analysis firms “unmix” CoinJoin transactions?

From the blockchain alone, a well-run CoinJoin with equal outputs cannot be undone with certainty: each equal output could belong to any participant. Chain analysis firms instead use probabilistic heuristics and outside data, such as exchange records, timing and amounts, to shrink the effective anonymity set, and they exploit mistakes made after mixing (merging outputs, deposits to exchanges that know you, address reuse). The coordinator is the other weak point: in December 2024 developer Yuval Kogman described ways a dishonest coordinator can trick Wasabi-family clients and the Whirlpool design into revealing which outputs are yours. It cannot steal coins, but it can learn those links, so choose coordinators run by people with a public reputation.

Should I CoinJoin all my Bitcoin or only certain UTXOs?

Prioritize CoinJoin for UTXOs with the highest privacy risk: KYC exchange purchases (directly linked to your identity), payments from known entities, and any UTXOs you plan to use for sensitive transactions. Non-KYC Bitcoin purchased through peer-to-peer methods already has better privacy properties, though CoinJoin still improves it. Bitcoin you plan to hold in cold storage for years benefits from CoinJoin as a one-time operation before storage, providing privacy protection against future chain analysis improvements. For small amounts, or coins that will go back to an exchange that knows you, a CoinJoin is often not worth the cost.

What is the difference between CoinJoin and a centralized mixer?

CoinJoin is a collaborative transaction where several participants build one Bitcoin transaction together; at no point does anyone hold another participant’s funds. Centralized mixers (tumblers) take custody of your Bitcoin, mix it with other deposits, and send back different coins. They carry custodial risk (exit scams), legal risk (money transmission licensing), and often keep logs that can be subpoenaed. CoinJoin is non-custodial: you sign only your own inputs, after your wallet checks that your output is in the transaction. It still involves some trust: a coordinator can stop its rounds and may learn which outputs are yours, so pick one run by people with a public reputation, or use JoinMarket NG, which has no central coordinator (there, the taker who builds each CoinJoin learns which outputs belong to which maker). Always prefer CoinJoin over centralized mixers.

Related Resources

Part of our free Bitcoin course: This topic is covered in CoinJoin in 2026: How Bitcoin Mixing Works and What Still Operates After Whirlpool, from the Advanced Bitcoin Security & Privacy course.
Filed under: Bitcoin Privacy
← Back to All Articles