To interact with the bitcoin blockchain, you require a piece of software that can broadcast to the chain; these software “wallets” are interfaces that help you execute commands that are within the consensus of the protocol. Depending on the type of wallet you’re using, you might have access to more features, while others prefer to abstract complexity away from the user, and that’s their design choice.
When you use bitcoin in a non-custodial manner, you can always take your private keys and migrate to a wallet with more options. As you become more comfortable with the process, you can unlock access to various advanced features that exchanges, custodial services and simple hot wallets won’t give you. One of those options is coin control which allows you to select different strategies for transferring coins from one wallet to another.
Automatic coin selection
If you’ve used a bitcoin wallet in the past and have not heard of coin control, then you’re probably using an automatic coin selection strategy. This coin management option is by far the most popular form of coin selection used in bitcoin wallets and applications.
In an automatic selection, the application picks the coins on behalf of users to fulfil a payment request once issued. This operation varies from wallet to wallet and is dependent upon the desired outcome of optimisation, and most times, it’s geared towards speed and convenience. Automatic selection strategies can provide a near frictionless user experience and are suitable for most introductory level bitcoin wallets.
When you send bitcoins to someone else, the bitcoin client you’re using randomly selects which of your addresses will send the coins. The alternative would be to use coin control, where you can choose exactly which of your addresses will be the sending addresses. You can be even more specific and select which of your unspent outputs (UTXO) will be sent for the transfer in question.
How does coin control work?
If you’re using a non-custodial bitcoin wallet with coin control would have access to all the addresses used to accept bitcoin. If you don’t re-use the same address, which is a best practice then you should have multiple BTC addresses on your wallet, holding a UTXO. In the case that you did re-use an address, you might have several UTXOs attached to that address.
When you send bitcoins to someone else or another wallet, you can use coin control; you choose which addresses will send and, even more specifically, which of your unspent outputs will be the sending inputs.
Depending on the method in which you acquired that UTXO, you can keep your KYC and Non-KYC UTXOs separate and later use mixing services or a CoinJoin if you need to obscure the ownership of certain UTXos. Coin control helps you avoid address reuse by putting the responsibility of controlling your coins back into your hands, and it should be an option everyone should be practising.
If the bitcoin wallet you’re currently using doesn’t have coin control, I will encourage you to set up a separate wallet with coin control features and move a UXTO to it and start playing around with coin control until you’re comfortable with the process.
What are the benefits of coin control?
Coin control feature empowers you to protect your privacy better since you’re able to move a specific UXTO that might have metadata on you from an exchange; you can keep other UTXOs from being linked back to you. In addition, you can also manage the network fees you need to pay to spend the account balance.
Types of coin control
If you’re wondering what your options are regarding coin control, then the list below should be helpful as a jumping-off point. Here are some popular algorithms currently implemented by bitcoin wallets that optimise for speed or lower fees. Depending on the wallet you’re using, you might have some or all of these options on hand.
Depending on the size of your UTXO sets, and the addresses you used or re-used, there might be a coin control rule that is better for your specific transfer than whatever the wallet is defaulting to, which is often a FIFO or LIFO option.
First In First Out (FIFO) / Last In, First Out (LIFO)
The default strategy spends the oldest/youngest coins first.
Pruned FIFO
Similar to FIFO, but the smallest coins are filtered out in the post-selection step.
High priority first
Coins are selected by priority (calculated by value x age). Up until February 2016, a portion of each block (50kB) was reserved for high-priority transactions by default. This algorithm, therefore, optimised for transaction speed.
Minimise fees
Spending the lowest number of coins reduces the byte size of the transaction, resulting in a lower fee.
Minimise future fees
Spending the maximum number of inputs to merge coins as a single change output for future use. This strategy can optimise for speed as the transaction size (and therefore cost) is increased. However, merging coins can also lead to a loss of privacy as coins, their addresses, balances, and historical transaction data are intertwined.
Below are algorithms that optimize for privacy
Target sized change
Wallet aims to minimize the value difference of target input and change output.
Branch & Bound (BnB)/Exact change
Wallet finds an input set equal in value to the target, avoiding change outputs. If the wallet cannot find an exact match, it refers back to a “knapsack” solver, which selects inputs that minimise the change output to within 0.01 BTC.
Blackjack
Accumulates inputs until the target value (+fees) is matched, and does not accumulate inputs that go over the target value (within a threshold).
Accumulative input
Accumulates inputs until the target value (+fees) is reached, skipping detrimental inputs.
Freezing coins
Freezes certain coins or clusters from their wallet’s UTXO pool to either prioritise or avoid using when funding outgoing payment requests. This technique aids automatic selection strategies to become more private but also relies on the practice of successfully labelling coins.
Take more control over your coins
Coin control might not be the most popular way to manage your coins, but I hope I was able to convince you about its importance in managing your bitcoin. If you are to become a sovereign individual, it’s important that you know and has experience in all your wallet has to offer you so you can use bitcoin in a way that doesn’t cost you fees you shouldn’t be spending and doesn’t affect your financial privacy.
While not your keys, not your coins, is part of the journey, there are still rules that your letting others set for you when managing your coins with default settings. So learn to take control of your bitcoin by using coin control.
Do you manage your own funds?
Holding bitcoin in a wallet where you have the signing rights isn’t simply about eliminating custodial risk but also about taking full responsibility for how your funds are used. Since there is no middleman between you and broadcasting to the chain when you run a node and have a signing device, you have complete control over these funds, and they are moved on the chain.
Coin control offers some interesting options that might not concern the average holder, but if you’re someone who conducts regular transfers like a business, or someone running a lightning node, coin control can save you on fees and optimise your operations.
Share your coin control story
Do you hold the keys to your bitcoin and had to use coin control in the past? We’re always keen to hear from bitcoiners who are taking full control over their funds and how they use the options available to them.
Let us know in the comments down below.