Coin Control, Read Backwards: The UTXO Mistakes a Privacy Audit Penalizes and the Habit That Prevents Each One
Every line in a privacy report that mentions consolidation or dust is a coin-selection decision somebody made. Usually that somebody was an algorithm minimizing fees. This piece works from the penalty back to the habit, not the other way round.
You buy bitcoin three times. Once on a KYC exchange, once from a friend in cash, once at an ATM. Three UTXOs, three addresses, three histories no outside observer can connect. Then you set up a hardware wallet, hit "send all," and sign one transaction with all three as inputs. A few weeks later you paste one of the old addresses into our privacy audit and the report shows a line you didn't expect: toxic consolidation, two identified origins, linked to that exact transaction. None of the three purchases was the mistake. Letting the wallet decide what to spend together was.
Every penalty is a selection you didn't make
If you've read any coin control guide, you know the mechanics: a balance is a set of unspent outputs, each with its own history; a multi-input transaction asserts common ownership of every input; wallets pick inputs unless you intervene. Bitcoin Optech traces how those automatic strategies evolved from first-in-first-out to fee minimization, with privacy-motivated tweaks such as Bitcoin Core's 2022 preference for input sets of a single output type. What none of those algorithms knows is which input came with your passport scan. To the selector, they're amounts.
What the guides mostly skip is how the mistake looks to something reading the chain afterwards. That's the useful part: it tells you which habit prevents which line.
Dust: the report separates "received" from "spent", and so should your wallet
Our audit flags an output as dust when it is worth 1,000 satoshis or less and arrived in a transaction paying 20 or more distinct addresses. Both conditions, never one alone: a small payment from one person isn't dusting, and a genuine batched withdrawal pays amounts people actually requested. The threshold sits above the network's standard 546-sat dust limit on purpose, because real campaigns use slightly larger amounts to make sure the output is spendable and the bait works.
Then the state decides everything. Unspent dust appears as a warning with a penalty of zero, because the attack hasn't worked yet; spent dust adds a flat 12-point base penalty, applied once however many pieces were spent, because the link is now public. The report doesn't name the sender as a service or an exchange either, since a mass fan-out looks almost identical to a legitimate batch withdrawal and calling it an attacker would be an inference the chain doesn't support.
The matching habit is freezing. BIP-329, the wallet label export format, includes an optional spendable field on output records for exactly this. Whatever your wallet calls it, an unrecognized tiny output gets marked unspendable the day it arrives and stays that way.
Wide consolidation: five inputs is the line, and labels don't matter
Toxic consolidation, as our audit defines it, requires at least two inputs that trace back to exchanges the tool can identify, and carries a 25-point base weight multiplied by the confidence of that identification. Coverage of identified exchanges is partial, so plenty of real consolidations would score nothing under that rule alone.
That's why a second, label-free signal exists. A transaction with five or more distinct input addresses and at most two outputs is a wide consolidation: 18 base points if you signed it, 9 if you only received from it. No exchange needs to be named. Joining N addresses in one transaction ties them to each other on-chain forever, and anyone who knows the origin of one, a KYC exchange for instance, knows all N. That's an observed fact, not a deduction about who you are.
The two-output cap is what keeps this from misfiring on CoinJoins, which also have many inputs but from different owners, and return as many outputs as inputs. Penalizing that would punish people for improving their privacy.
The deliberate consolidation procedure
Consolidating isn't the problem; consolidating blind is. Merging twenty small pieces that share an origin lowers future fees and tells the chain nothing new. This sequence keeps both:
- Open the UTXO view and read every label before selecting anything. An unlabeled coin either gets its label now or stays out. Unknown origin doesn't consolidate.
- Select coins of one label only. One consolidation per origin, never one for the whole balance.
- Wait for a low-fee window. This is the least urgent transaction you will ever make; paying peak fees for it buys you nothing.
- Send to a fresh, never-used address. Receiving the consolidation on a reused address stacks a second flag on the first.
- Keep distinct input addresses below five when you can. From five upward the transaction registers as a wide consolidation whether or not any origin is identifiable.
- Label the new output as soon as it confirms, with the same origin as the pieces it replaced.
A consolidation already on-chain can't be undone. What you control is never again signing those coins alongside anything you want kept apart.
What the wallet must actually let you do
Four open-source wallets document the relevant features on their own sites, and that's the test worth applying to whatever you use: Sparrow's FAQ describes a UTXOs screen where you select several coins and click "Send Selected"; Electrum's FAQ states that when you freeze an address "the funds in that address will not be used for sending bitcoins"; Bitcoin Core lists coin control as choosing your inputs in the GUI, and its lockunspent RPC specifies that a locked output "will not be chosen by automatic coin selection"; Wasabi makes a label mandatory on every send and its transaction preview warns about interlinking labels or using non-private coins. If your wallet offers none of these, it doesn't have coin control, whatever the feature is called. No recommendation among the four is implied here.
Once the habit is in place, the report is how you check it held. Penalties add up and land in three published bands: up to 20 points is mild, up to 45 moderate, above that severe. A single signed wide consolidation stays mild on its own; the same transaction with two identified exchanges among its inputs moves to moderate. Every line shows its full formula and links to the transaction on a public explorer, so you verify it rather than take the number on trust.
Run your current wallet through the privacy audit before you migrate it: a clean report means the one consolidation you're about to sign is the only place left to break it, and you now know what the report would say.
More in Privacy and self-custody
Last updated: October 12, 2026