Coin Control
Manually selecting which UTXOs to spend in a transaction, giving users control over privacy and fee optimization.
Key Takeaways
- Coin control lets you manually choose which UTXOs to spend in a transaction, overriding your wallet's automatic coin selection algorithm. This gives you direct control over privacy, fees, and fund management.
- Privacy is the primary motivation: combining UTXOs from different sources in a single transaction links those addresses together on-chain, enabling blockchain analysis firms to cluster your activity. Coin control prevents this by letting you keep separate contexts separate.
- Fee optimization is the second major benefit: selecting fewer, larger inputs reduces transaction weight and cost, while avoiding dust UTXOs that cost more in fees to spend than they are worth.
What Is Coin Control?
Coin control is a wallet feature that allows you to manually select which specific UTXOs (unspent transaction outputs) to use as inputs when building a Bitcoin transaction. Every Bitcoin transaction consumes one or more UTXOs as inputs and creates new UTXOs as outputs. Without coin control, the wallet automatically decides which UTXOs to combine using built-in algorithms. With coin control, you override that decision.
Think of UTXOs as individual bills in your physical wallet. If you have a $50 bill, two $20 bills, and a handful of coins, you might choose to pay with the $50 rather than combining the smaller denominations. In Bitcoin, the same logic applies: each UTXO has a different value, history, and privacy profile, and which ones you spend together has real consequences.
Coin control matters because of a fundamental property of Bitcoin's UTXO model: when multiple inputs appear in the same transaction, blockchain observers assume they belong to the same entity. This is known as the common input ownership heuristic, and it is the primary tool chain analysis firms use to track Bitcoin flows. Coin control lets privacy-conscious users break this assumption by carefully selecting which UTXOs to spend together.
How It Works
When you send Bitcoin without coin control, the wallet runs a coin selection algorithm to choose inputs automatically. Bitcoin Core, for example, runs four different algorithms in parallel and picks the result with the lowest "waste score." These algorithms optimize for fees and change output efficiency, but they do not consider privacy context: they may freely combine UTXOs from an exchange withdrawal with UTXOs from a private peer-to-peer payment.
With coin control enabled, you see a list of every UTXO in your wallet along with its value, address, confirmation count, and (if you label them) its source. You manually check which UTXOs to include, and the wallet uses only those as inputs.
Coin Selection Algorithms
Understanding what coin control overrides helps explain why it matters. Bitcoin Core uses these four algorithms, evaluated by a waste metric that balances fee cost against long-term efficiency:
- Branch and Bound (BnB): introduced in Bitcoin Core v0.17.0, this algorithm searches for an exact-match input set that requires no change output at all. It uses depth-first search with pruning, producing smaller transactions when a match is found.
- Knapsack: the legacy algorithm that runs 1,000 randomized iterations, picking UTXOs with 50% probability from largest to smallest. It almost always produces a change output.
- Single Random Draw (SRD): randomly shuffles UTXOs and adds them until the target is met. This increases UTXO diversity over time and reveals less about wallet composition.
- CoinGrinder: added in Bitcoin Core v27.0, this algorithm searches for the input set with minimal weight. It activates only at elevated fee rates (above approximately 30 sat/vB by default), preventing excessive fee spending when the mempool is congested.
The waste metric formula compares all four results:
waste = selectionTotal - target + inputs × (currentFeeRate - longTermFeeRate)This encourages consolidation during low-fee periods and spending fewer inputs when fees are high. But none of these algorithms consider where your UTXOs came from: that is why manual coin control exists.
UTXO Labeling
Coin control is most effective when paired with UTXO labeling. Each time you receive Bitcoin, you tag the resulting UTXO with its source and privacy characteristics: "exchange withdrawal," "peer-to-peer sale," "post-CoinJoin," or "unknown dust." When building a transaction, you select only UTXOs from the same context.
Wallets like Sparrow Wallet and Bitcoin Core support labels natively. This practice is especially important for users who acquire Bitcoin through both KYC (know-your-customer) exchanges and private channels: mixing those UTXOs in a single transaction permanently links your identity to the private funds on the public blockchain.
Use Cases
Privacy Protection
The most critical use case for coin control is preventing address and UTXO linkage. When you spend UTXOs from two different addresses in a single transaction, blockchain observers infer that you control both addresses. Over time, this clustering can reveal your entire transaction history.
Coin control prevents this by enforcing separation. Practical rules include:
- Never mix KYC and non-KYC UTXOs in the same transaction
- Spend CoinJoin outputs individually to preserve the anonymity set
- Exclude unknown small UTXOs that may be part of a dust attack designed to de-anonymize your wallet
- Use separate wallets or HD wallet accounts for different privacy contexts
For a deeper look at Bitcoin privacy techniques including CoinJoin and PayJoin, see our research on transaction privacy.
Fee Optimization
Every input you add to a transaction increases its size, measured in virtual bytes. Input sizes vary by script type:
| Script Type | Approx. Input Size |
|---|---|
| P2PKH (Legacy) | 148 vBytes |
| P2SH-P2WPKH (Nested SegWit) | 91 vBytes |
| P2WPKH (Native SegWit) | 68 vBytes |
| P2TR (Taproot) | 57.5 vBytes |
Without coin control, a wallet might select eight small UTXOs totaling around 600 vBytes, costing roughly 12,000 sats at 20 sat/vB. With coin control, selecting a single large UTXO can reduce the transaction to around 150 vBytes, cutting the fee by 75%. During high-fee periods (the mempool spiked to over 800 sat/vB during the April 2024 halving), this difference can save tens of thousands of satoshis per transaction.
For more on how Bitcoin fees work, see our fee market dynamics research.
UTXO Consolidation
Coin control enables strategic UTXO consolidation: combining many small UTXOs into fewer large ones during low-fee periods. This reduces future transaction costs because spending one large UTXO later requires only one input instead of many. The key is timing: consolidate when the fee rate is low (5 to 20 sat/vB historically) so the consolidation transaction itself is cheap.
Avoiding Dust
Bitcoin Core defines dust as a UTXO whose value is less than three times the fee required to spend it. The thresholds vary by output type:
| Output Type | Dust Threshold |
|---|---|
| P2PKH (Legacy) | 546 satoshis |
| P2SH | 540 satoshis |
| P2WPKH (Native SegWit) | 294 satoshis |
| P2WSH | 330 satoshis |
| P2TR (Taproot) | 330 satoshis |
Coin control lets you exclude dust-value UTXOs from transactions so they do not inflate your fee cost. It also lets you identify suspicious dust sent to your addresses as part of a dust attack, where an adversary sends tiny amounts to many addresses hoping recipients will spend them and reveal address linkage.
Wallets That Support Coin Control
Not all Bitcoin wallets expose coin control. It is typically found in wallets designed for advanced users or those with a privacy focus:
- Bitcoin Core: enable via Settings > Wallet > Enable coin control features. Also available through RPCs like
fundrawtransactionandwalletcreatefundedpsbtfor programmatic UTXO selection using PSBTs. - Sparrow Wallet: widely regarded as the best UTXO management interface, with full coin control, labeling, and CoinJoin integration.
- Electrum: supports coin control alongside multi-signature and Lightning features.
- Wasabi Wallet: privacy-focused wallet with coin control and built-in CoinJoin.
- Trezor Suite and BitBox App: hardware wallet companion apps that support manual UTXO selection.
- BlueWallet: one of the few mobile wallets offering coin control, along with PSBT support for coordinating with hardware signing devices.
For a broader comparison of wallet architectures, see our research on self-custodial vs. custodial wallets.
Why It Matters
Coin control is a cornerstone of Bitcoin self-custody. Automated coin selection algorithms optimize for fees but are blind to privacy context. Without coin control, even a privacy-conscious user can inadvertently link their entire transaction history by letting a wallet combine the wrong UTXOs.
For developers building on Bitcoin infrastructure, understanding coin selection is essential. The UTXO model that underpins Bitcoin differs fundamentally from account-based systems, and how a wallet manages UTXOs directly affects user privacy and cost. Layer 2 solutions like Spark abstract away UTXO management for everyday payments while preserving self-custody, but on-chain coin control remains critical for users managing their own base-layer funds.
Risks and Considerations
Complexity and User Error
Coin control requires understanding the UTXO model, transaction structure, and privacy implications. Selecting the wrong UTXOs can be worse than automatic selection: for example, accidentally combining a post-CoinJoin UTXO with a KYC exchange withdrawal undoes the privacy gained from mixing. Labeling discipline is essential but easy to neglect over time.
Change Output Leakage
Even with careful input selection, change outputs can leak information. If you spend a 0.5 BTC UTXO to send 0.1 BTC, the 0.4 BTC change goes to a new address in your wallet. Analysts can often identify the change output by its amount, address type, or position in the transaction. Techniques like replace-by-fee can sometimes be used to adjust transactions, but change output analysis remains a persistent privacy challenge.
Over-Consolidation Risk
Consolidating too aggressively creates large single UTXOs that reveal your total balance when spent. If you consolidate 50 small UTXOs into one 2 BTC output and then spend 0.01 BTC from it, the 1.99 BTC change output reveals your holdings. Balance your consolidation strategy against the privacy cost of creating large outputs.
Wallet Compatibility
Many consumer wallets do not support coin control at all. Mobile wallets and custodial services generally handle coin selection internally without user input. If coin control is important to your use case, you need to choose a wallet that supports it, which may mean trading off convenience for control.
This glossary entry is for informational purposes only and does not constitute financial or investment advice. Always do your own research before using any protocol or technology.