CoinJoin is the primary technique for breaking the deterministic link between Bitcoin transaction inputs and outputs. Three implementations have dominated the space: Whirlpool (Samourai Wallet), JoinMarket, and WabiSabi (Wasabi Wallet). Each uses a different coordination model, privacy guarantee, and fee structure — and the landscape shifted dramatically after U.S. authorities arrested Samourai Wallet’s developers in April 2024.
This guide compares all three CoinJoin methods technically, evaluates their current operational status, and helps you decide which approach — if any — fits your privacy requirements.
What Is CoinJoin
A CoinJoin is a collaborative Bitcoin transaction where multiple participants combine their inputs and outputs into a single transaction. When constructed correctly, an outside observer cannot determine which input funded which output.
Standard Bitcoin transactions create a clear trail: input A (0.5 BTC) → output B (0.3 BTC) + output C (0.2 BTC change). Chain analysis firms map these flows across the entire blockchain to cluster addresses and link identities to transactions.
CoinJoin breaks this by combining multiple participants’ inputs: if five people each contribute 0.1 BTC to a transaction with five identical 0.1 BTC outputs, an observer sees five possible sources for each output. The anonymity set — the number of indistinguishable participants — is the core privacy metric.
CoinJoin is not mixing in the traditional sense. Participants retain custody of their funds throughout the process. No trusted intermediary holds or has access to anyone’s Bitcoin. The coordinator facilitates the transaction construction but never controls the funds. Understanding this distinction is fundamental — CoinJoin is a cryptographic privacy technique, not a custodial service.
For a broader context on why transaction privacy matters and how it fits into Bitcoin’s privacy toolkit, UTXO management is a prerequisite. See our UTXO management guide for the fundamentals.
Whirlpool Explained
Whirlpool was Samourai Wallet’s CoinJoin implementation, designed around fixed denomination pools and a zero-link architecture that separated the coordinator’s knowledge from the transaction structure.
How Whirlpool Worked
Whirlpool operated with fixed-size pools: 0.5 BTC, 0.05 BTC, 0.01 BTC, and 0.001 BTC. Every output in a pool was the exact same denomination, providing equal anonymity set for all participants.
The process:
- Tx0 (premix): Your UTXO was split into pool-sized chunks plus a fee output. This was the “entry” transaction that created your pool-ready UTXOs.
- Initial mix: Your premix UTXOs entered the pool and were combined with 4 other participants’ UTXOs in a 5-input, 5-output transaction. All outputs were identical in size.
- Free remixing: After the initial mix, your outputs could participate in unlimited additional mixes at no extra cost. Each remix compounded the anonymity set.
Whirlpool used a blind signing scheme (ZeroLink) where the coordinator facilitated the transaction but could not link inputs to outputs. Participants registered their inputs with the coordinator, received a blinded credential, and used that credential to register their output on a separate connection. The coordinator could verify the credential was valid without knowing which input it corresponded to.
Current Status (Post-Samourai)
In April 2024, U.S. authorities arrested Samourai Wallet’s founders and seized the Samourai Wallet domain and coordinator infrastructure. The Whirlpool coordinator that powered all Samourai CoinJoin operations was shut down.
Since then:
- The original Whirlpool coordinator is offline and not expected to return while legal proceedings continue
- Community forks of the Samourai/Whirlpool codebase exist (notably Ashigaru wallet), but these operate with smaller liquidity pools and less battle-tested coordinator infrastructure
- Sparrow Wallet previously integrated Whirlpool and allowed users to mix using Samourai’s coordinator. This integration no longer functions with the original coordinator. Sparrow maintains the code but it requires a running Whirlpool coordinator to connect to
- The legal case has created significant uncertainty about the future of Whirlpool-style coordinated mixing in the U.S. jurisdiction
For users who previously used Whirlpool, our Whirlpool tutorial covers the historical workflow. The concepts remain relevant even if the original infrastructure is offline — understanding Whirlpool’s model helps evaluate alternatives.
JoinMarket Explained
JoinMarket takes a fundamentally different approach: instead of a centralized coordinator, it uses a maker-taker market where participants offer liquidity for CoinJoin transactions in exchange for fees.
How JoinMarket Works
Makers are participants who leave their Bitcoin available for CoinJoin at all times. They set a fee (typically 0.01-0.1% of the CoinJoin amount) and wait for someone to include their UTXOs in a mix. Makers earn passive income on their Bitcoin while improving their own privacy.
Takers initiate CoinJoin transactions. They select makers from the order book, construct the transaction using the makers’ UTXOs alongside their own, and broadcast it. Takers pay the makers’ fees and the on-chain transaction fee.
This market-based model means:
- No single coordinator controls the CoinJoin process
- Makers’ bots can run independently — they communicate via an IRC-like messaging layer or via Tor-based directory nodes
- The taker chooses how many makers to include, directly controlling the anonymity set
- CoinJoin amounts are flexible — no fixed denominations like Whirlpool
Technical Details
JoinMarket uses a system of “mixdepths” — five separate accounts within a single wallet. When you send Bitcoin through JoinMarket, it moves from one mixdepth to the next through successive CoinJoin transactions. Each mixdepth acts as a separate compartment, preventing cross-contamination of UTXOs.
A typical JoinMarket workflow for a taker:
# Start the JoinMarket software
cd joinmarket-clientserver
source jmvenv/bin/activate
# Check the order book
python scripts/ob-watcher.py
# Run a CoinJoin with 8 makers, sending 0.5 BTC
python scripts/sendpayment.py -N 8 -m 0 wallet.jmdat 50000000 DESTINATION_ADDRESS
JoinMarket also supports a “tumbler” mode that automatically performs a series of CoinJoins across multiple mixdepths with randomized timing, amounts, and maker selection — designed to thoroughly break transaction graph analysis over time.
Strengths
- Decentralized: No central coordinator to shut down. If one message relay goes offline, others take over.
- Flexible amounts: No fixed denominations. Mix any amount.
- Earn yield: Makers earn fees for providing liquidity — one of the few ways to earn non-custodial Bitcoin yield.
- Resilient: The most legally resilient CoinJoin option because there’s no company or coordinator entity to target.
- Proven: Running since 2015. The longest-operating CoinJoin implementation.
Weaknesses
- Technical complexity: JoinMarket requires running a full Bitcoin Core node and the JoinMarket software. Installation involves Python dependencies, configuration files, and command-line operation. This is not consumer software.
- Liquidity: The order book has less liquidity than Whirlpool had at its peak or WabiSabi currently has. Large CoinJoins may require waiting for sufficient maker availability.
- UX: Despite improvements with JAM (JoinMarket Web UI), the user experience remains significantly more complex than Wasabi or the former Samourai Wallet.
- Slower: A tumbler run with multiple rounds can take hours or days, depending on configuration and desired privacy level.
WabiSabi (Wasabi Wallet) Explained
WabiSabi is the CoinJoin protocol used in Wasabi Wallet 2.0 and later. It replaced Wasabi’s original ZeroLink protocol with a more flexible system that supports variable-amount outputs while maintaining coordinator blindness.
How WabiSabi Works
WabiSabi uses a keyed verification anonymous credential scheme. In simpler terms: participants prove to the coordinator that they’ve contributed a certain amount of Bitcoin without revealing which specific input they own. The coordinator can verify the math checks out (total inputs ≥ total outputs + fees) without learning the mapping between inputs and outputs.
Unlike Whirlpool’s fixed denominations, WabiSabi allows variable output amounts. A participant contributing 0.5 BTC might receive outputs of 0.3 BTC and 0.2 BTC, or 0.15 BTC across multiple outputs. The protocol creates outputs that overlap in size across participants, generating ambiguity without requiring exact denomination matching.
The process:
- Input registration: Participants register their inputs with the coordinator, receiving anonymous credentials proportional to their input value.
- Output registration: Participants use their credentials (on separate Tor circuits) to register output addresses. The coordinator cannot link outputs to inputs.
- Transaction signing: The coordinator constructs the CoinJoin transaction and distributes it. Each participant signs their input. If all signatures are valid, the transaction is broadcast.
Automatic CoinJoin
Wasabi Wallet 2.0 made CoinJoin automatic. When you receive Bitcoin in Wasabi, it’s automatically queued for CoinJoin. The wallet continually participates in rounds, gradually improving the privacy of your UTXOs without manual intervention. You can send Bitcoin at any time — the wallet intelligently selects UTXOs based on their privacy score.
Coordinator Model
Wasabi Wallet defaults to zkSNACKs’ coordinator, run by the company behind Wasabi. However, the WabiSabi protocol supports multiple coordinators, and Wasabi 2.0 was designed to allow users to connect to alternative coordinators. In practice, zkSNACKs’ coordinator handles the vast majority of WabiSabi CoinJoin volume.
In June 2024, following the Samourai arrests, zkSNACKs announced it would begin screening inputs to its coordinator, blocking UTXOs flagged by chain analysis. This was a controversial decision that fundamentally changed the tool’s positioning: a privacy tool now cooperating with the surveillance infrastructure it was designed to circumvent. Some users migrated to alternative coordinators or other CoinJoin methods in response.
Strengths
- Best UX: Automatic CoinJoin with no manual configuration. Deposit and the wallet handles the rest.
- Flexible amounts: No fixed pool sizes. Mix any amount without denomination constraints.
- Large anonymity sets: WabiSabi rounds can include many participants (often 50-150 inputs) in a single transaction, creating large anonymity sets.
- Active development: Wasabi Wallet receives regular updates with UX and protocol improvements.
- Privacy scoring: The wallet assigns each UTXO a privacy score (anon set), helping you understand which coins are well-mixed.
Weaknesses
- Coordinator centralization: While the protocol supports multiple coordinators, the ecosystem relies heavily on zkSNACKs. A single point of failure and influence.
- Input screening: The zkSNACKs coordinator now screens inputs. UTXOs flagged by chain analysis firms may be rejected. This undermines the permissionless nature of the tool.
- Coordinator fees: The coordinator charges a 0.3% fee on fresh inputs. Remixes are free, but the initial fee is higher than JoinMarket for most amounts.
- Desktop only: Wasabi Wallet runs on Windows, macOS, and Linux. No mobile version.
- Company jurisdiction: zkSNACKs is a registered company, making it subject to regulatory pressure — as demonstrated by the input screening decision.
Comparison Table
| Feature | Whirlpool | JoinMarket | WabiSabi (Wasabi) |
|---|---|---|---|
| Privacy Model | Fixed denomination, ZeroLink blind signing | Maker-taker market, flexible amounts | Anonymous credentials, variable amounts |
| Cost | One-time Tx0 fee (3.5-5%) | Maker fees (~0.01-0.1%) + mining fees | Coordinator fee (0.3%) + mining fees |
| Liquidity | Low (coordinator offline) | Moderate (order book dependent) | High (largest active pool) |
| Ease of Use | Simple (when operational) | Complex (CLI, full node required) | Very simple (automatic) |
| Current Status | Offline (coordinator seized April 2024) | Operational (decentralized, no shutdown risk) | Operational (with input screening) |
| Anonymity Set Per Round | 5 (per mix, compounds with remixes) | Variable (taker chooses, typically 4-12) | Large (50-150+ per round) |
| Coordinator Risk | Single coordinator (proven vulnerable) | No coordinator (peer-to-peer market) | Default coordinator (input screening active) |
| Free Remixing | Yes (unlimited) | No (each round costs fees) | Yes (after initial mix) |
| Mobile Support | Was mobile (Samourai) | No | No |
| Full Node Required | No (but recommended) | Yes | No (uses backend server) |
The Current State After Samourai
The Samourai Wallet case reshaped the CoinJoin landscape. Here’s where things stand:
Legal Uncertainty
The arrests of Samourai’s developers on money laundering and unlicensed money transmission charges created a chilling effect across the entire Bitcoin privacy ecosystem. The legal theory — that CoinJoin coordination constitutes money transmission — is being contested but hasn’t been resolved. The outcome of this case will likely define the legal boundary for Bitcoin privacy tools in the United States and influence policy globally.
What Happened to Whirlpool Users’ Privacy
When the Whirlpool coordinator was seized, authorities potentially gained access to coordinator logs. While ZeroLink’s blind signing prevents the coordinator from linking inputs to outputs within a single round, metadata (IP addresses if Tor wasn’t used, timing data, registration patterns) could provide some deanonymization capability. Users who consistently used Tor have stronger privacy protection.
The Current Best Options
For maximum censorship resistance: JoinMarket. Its decentralized architecture has no coordinator to seize. Running JoinMarket as a maker on your own node is the most sovereignty-preserving option. The technical barrier is the trade-off.
For usability: Wasabi Wallet with the caveat that the default coordinator screens inputs. If your UTXOs are from standard sources (exchanges with KYC), the screening is unlikely to affect you — but it defeats part of the purpose if the coordinator can selectively deny service.
For post-mix spending: Regardless of which CoinJoin method you use, proper post-mix behavior is critical. Consolidating mixed outputs, sending to a KYC exchange immediately after mixing, or combining mixed and unmixed UTXOs in a single transaction undoes the privacy gains. Spend from mixed outputs thoughtfully, use separate wallets for mixed funds, and understand UTXO management.
Alternative Privacy Approaches
CoinJoin isn’t the only path to Bitcoin privacy. Silent Payments provide receiver privacy without mixing. PayJoin (P2EP) provides sender-receiver collaborative privacy in normal transactions. Running your transactions through your own node (connected to wallets via Tor) prevents address leakage to third-party servers.
The most effective privacy strategy combines multiple techniques: CoinJoin for breaking input-output links, Silent Payments for receiving without address reuse, proper UTXO management for preventing post-mix linkage, and self-hosted infrastructure for keeping your transactions off third-party servers.
CoinJoin Explained from the
Advanced Bitcoin Security & Privacy course.
Frequently Asked Questions
Is CoinJoin legal?
CoinJoin as a cryptographic technique is legal. The legal questions center on the coordination service — whether operating a CoinJoin coordinator constitutes money transmission. The Samourai case is the first major test of this theory. Using CoinJoin as a participant is not charged in any current case, but the legal landscape is evolving. Consult legal counsel if you have concerns specific to your jurisdiction.
Does CoinJoin actually work against chain analysis?
Yes, when used correctly. A well-executed CoinJoin with sufficient anonymity set makes deterministic tracing impossible — chain analysis firms must resort to probabilistic heuristics. However, poor post-mix behavior (consolidating outputs, immediate KYC exchange deposits) can undo the privacy gains. The CoinJoin transaction itself is sound; user behavior is usually the weak point.
Can I CoinJoin directly from a hardware wallet?
Not directly. CoinJoin requires interactive signing — multiple rounds of communication during the transaction construction process. Hardware wallets are designed for single-transaction signing. You need a software wallet (Wasabi, JoinMarket, or Sparrow when connected to a coordinator) to participate in CoinJoin. Post-mix, you can send the outputs to a hardware wallet for cold storage.
How much does CoinJoin cost?
JoinMarket is cheapest for takers — typically 0.01-0.1% in maker fees plus mining fees. Wasabi’s WabiSabi charges 0.3% on the coordinator fee for fresh inputs, with free remixing. Whirlpool’s Tx0 fee was a flat rate per pool (roughly 3.5-5% for the smallest pool, lower percentage for larger pools). All methods also incur standard Bitcoin mining fees for the on-chain transactions.
What’s the minimum amount worth CoinJoining?
Below 0.01 BTC, the mining fees for CoinJoin transactions consume a disproportionate share of your funds. JoinMarket’s flexible amounts work for any size, but the fees eat into small amounts. Wasabi’s automatic mixing works down to small amounts but may take longer to include small UTXOs in rounds. Practically, CoinJoin provides the best cost-efficiency for amounts above 0.05 BTC.
Should I run my own JoinMarket maker?
If you’re already running a Bitcoin node, adding a JoinMarket maker is a meaningful contribution to the CoinJoin liquidity pool. You earn small fees while improving your own privacy through constant participation in mixes. The setup requires comfort with Linux command-line operations and a commitment to keeping the software running. It’s the most sovereignty-aligned option for ongoing Bitcoin privacy.
{“@context”: “https://schema.org”, “@type”: “FAQPage”, “mainEntity”: [{“@type”: “Question”, “name”: “Is CoinJoin legal?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “CoinJoin as a cryptographic technique is legal. The legal questions center on the coordination service — whether operating a CoinJoin coordinator constitutes money transmission. The Samourai case is the first major test of this theory. Using CoinJoin as a participant is not charged in any current case, but the legal landscape is evolving. Consult legal counsel if you have concerns specific to your jurisdiction.”}}, {“@type”: “Question”, “name”: “Does CoinJoin actually work against chain analysis?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “Yes, when used correctly. A well-executed CoinJoin with sufficient anonymity set makes deterministic tracing impossible — chain analysis firms must resort to probabilistic heuristics. However, poor post-mix behavior (consolidating outputs, immediate KYC exchange deposits) can undo the privacy gains. The CoinJoin transaction itself is sound; user behavior is usually the weak point.”}}, {“@type”: “Question”, “name”: “Can I CoinJoin directly from a hardware wallet?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “Not directly. CoinJoin requires interactive signing — multiple rounds of communication during the transaction construction process. Hardware wallets are designed for single-transaction signing. You need a software wallet (Wasabi, JoinMarket, or Sparrow when connected to a coordinator) to participate in CoinJoin. Post-mix, you can send the outputs to a hardware wallet for cold storage.”}}, {“@type”: “Question”, “name”: “How much does CoinJoin cost?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “JoinMarket is cheapest for takers — typically 0.01-0.1% in maker fees plus mining fees. Wasabi’s WabiSabi charges 0.3% on the coordinator fee for fresh inputs, with free remixing. Whirlpool’s Tx0 fee was a flat rate per pool (roughly 3.5-5% for the smallest pool, lower percentage for larger pools). All methods also incur standard Bitcoin mining fees for the on-chain transactions.”}}, {“@type”: “Question”, “name”: “What’s the minimum amount worth CoinJoining?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “Below 0.01 BTC, the mining fees for CoinJoin transactions consume a disproportionate share of your funds. JoinMarket’s flexible amounts work for any size, but the fees eat into small amounts. Wasabi’s automatic mixing works down to small amounts but may take longer to include small UTXOs in rounds. Practically, CoinJoin provides the best cost-efficiency for amounts above 0.05 BTC.”}}, {“@type”: “Question”, “name”: “Should I run my own JoinMarket maker?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “If you’re already running a Bitcoin node, adding a JoinMarket maker is a meaningful contribution to the CoinJoin liquidity pool. You earn small fees while improving your own privacy through constant participation in mixes. The setup requires comfort with Linux command-line operations and a commitment to keeping the software running. It’s the most sovereignty-aligned option for ongoing Bitcoin privacy.”}}]}