Bitcoin Privacy

Bitcoin CoinJoin Methods Compared

Bitcoin CoinJoin methods comparison - Whirlpool JoinMarket WabiSabi transaction mixing visualization

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:

  1. 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.
  2. 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.
  3. 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 than WabiSabi had while the zkSNACKs coordinator was live. 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:

  1. Input registration: Participants register their inputs with the coordinator, receiving anonymous credentials proportional to their input value.
  2. Output registration: Participants use their credentials (on separate Tor circuits) to register output addresses. The coordinator cannot link outputs to inputs.
  3. 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 received Bitcoin in Wasabi, it was automatically queued for CoinJoin. The wallet continually participated in rounds, gradually improving the privacy of your UTXOs without manual intervention, selecting UTXOs based on their privacy score. This all depended on a live coordinator — with the zkSNACKs coordinator closed since 2024, this automatic flow no longer works by default.

Coordinator Model (and Its Shutdown)

Update (2024): zkSNACKs shut down its WabiSabi coordinator. Wasabi Wallet historically defaulted to zkSNACKs' coordinator, run by the company behind Wasabi, which handled the vast majority of WabiSabi CoinJoin volume. In the months following the Samourai Wallet seizure, zkSNACKs first began screening inputs (blocking UTXOs flagged by chain analysis) and then discontinued its coinjoin coordination service entirely in 2024. Wasabi's default mixing pipeline stopped working the moment that coordinator went away.

The WabiSabi protocol itself is open, and Wasabi 2.0 was designed to let clients point at alternative coordinators. But there is no dominant, well-liquidated default coordinator to replace zkSNACKs, so the out-of-the-box "deposit and it mixes automatically" experience no longer exists. Anyone relying on Wasabi today has to source and trust a third-party coordinator, with all the same structural risk that the input-screening episode exposed — a coordinator can screen, log, or simply switch off.

Design Strengths (Historical)

When the zkSNACKs coordinator was live, WabiSabi's design had real advantages worth understanding — they explain why the protocol was popular and why the coordinator dependency mattered so much:

  • UX: Automatic CoinJoin with no manual configuration. Deposit and the wallet handled the rest.
  • Flexible amounts: No fixed pool sizes. Mix any amount without denomination constraints.
  • Large anonymity sets: WabiSabi rounds could include many participants (often 50-150 inputs) in a single transaction, creating large anonymity sets.
  • Privacy scoring: The wallet assigns each UTXO a privacy score (anon set), helping you understand which coins are well-mixed.

Why the Model Failed

  • Coordinator centralization: The protocol nominally supports multiple coordinators, but the ecosystem relied almost entirely on zkSNACKs. A single point of failure and influence — and when it went, the default experience went with it.
  • Input screening then shutdown: The zkSNACKs coordinator began screening inputs (rejecting UTXOs flagged by chain analysis) and subsequently discontinued its coinjoin service in 2024. Both moves proved the same point: a centralized coordinator can censor you or disappear.
  • Company jurisdiction: zkSNACKs was a registered company, making it subject to regulatory pressure — as demonstrated first by the input-screening decision and then by the shutdown.
  • Coordinator fees: While operational, the coordinator charged a 0.3% fee on fresh inputs (remixes free), higher than JoinMarket for most amounts.

Comparison Table

FeatureWhirlpoolJoinMarketWabiSabi (Wasabi)
Privacy ModelFixed denomination, ZeroLink blind signingMaker-taker market, flexible amountsAnonymous credentials, variable amounts
CostOne-time Tx0 fee (3.5-5%)Maker fees (~0.01-0.1%) + mining feesCoordinator fee (0.3%) + mining fees
LiquidityLow (original coordinator offline)Moderate (order book dependent)None by default (zkSNACKs coordinator closed)
Ease of UseSimple (when operational)Complex (CLI, full node required)Was very simple; now requires sourcing a coordinator
Current StatusOffline (coordinator seized April 2024)Operational (decentralized, no shutdown risk)Default coordinator (zkSNACKs) closed 2024
Anonymity Set Per Round5 (per mix, compounds with remixes)Variable (taker chooses, typically 4-12)Was large (50-150+); depends on any live coordinator
Coordinator RiskSingle coordinator (proven vulnerable)No coordinator (peer-to-peer market)Single coordinator (screened inputs, then shut down)
Free RemixingYes (unlimited)No (each round costs fees)Yes (after initial mix)
Mobile SupportWas mobile (Samourai)NoNo
Full Node RequiredNo (but recommended)YesNo (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 coordinated CoinJoin today: JoinMarket is the only major implementation still operating a live, functioning system. Its decentralized maker-taker market has no coordinator to seize or shut down — the exact failure mode that took out both Whirlpool (seized) and Wasabi's zkSNACKs coordinator (closed 2024). Running JoinMarket as a maker on your own node is the most sovereignty-preserving option. The technical barrier is the trade-off.

For everyday transaction privacy without a coordinator: PayJoin (BIP78, also called P2EP) breaks the common-input-ownership heuristic inside an ordinary payment between a sender and receiver — no fixed denominations, no coordinator, no separate mixing step. It is the most practical privacy technique for people who do not want to run mixing infrastructure.

A note on Wasabi: Wasabi Wallet is no longer a turnkey option. Its default zkSNACKs coordinator screened inputs and then closed in 2024, so the automatic "deposit and mix" flow no longer works out of the box. The WabiSabi protocol is open and can point at a third-party coordinator, but that reintroduces the same single-point-of-failure risk that just played out — so we do not recommend it as a default path.

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.

Part of our free Bitcoin course: This topic is covered in depth in 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 capable of coordinated CoinJoin (JoinMarket is the one still running a live system) to participate. Post-mix, you can send the outputs to a hardware wallet for cold storage.

How much does CoinJoin cost?

JoinMarket, the one major implementation still live, is cheapest for takers — typically 0.01-0.1% in maker fees plus mining fees. For reference, Wasabi's WabiSabi charged 0.3% on the coordinator fee for fresh inputs (free remixing) while the zkSNACKs coordinator operated, and Whirlpool's Tx0 fee was a flat rate per pool (roughly 3.5-5% for the smallest pool, lower percentage for larger pools) — both are now historical since those coordinators are gone. All on-chain CoinJoins also incur standard Bitcoin mining fees.

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 handled small amounts too, but its default zkSNACKs coordinator closed in 2024.) 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.

Related Articles

Filed under: Bitcoin Privacy