Bitcoin UTXO: What You Need To Know Right Now!

Sadik

UTXOs, aka Unspent Transaction Outputs, are used to verify how much Bitcoin is locked to each address because your coins are stored on the blockchain, not in your wallet.  

The Bitcoin Blockchain is a ledger database that references the quantity of Bitcoin assigned to UTXOs rather than accounts or balances like traditional banking.  

No one owns Bitcoin.  

The anonymity of Bitcoin exists because the blockchain does not care about individual ownership. 

The Bitcoin network is both transparent and pseudonymous at the same time.  Anyone with a computer can verify the existence of every transaction and the current value of every wallet address on the network.

An individual user has control of their Public Key and Private key which lock and unlock Bitcoin they received, but they don’t actually own Bitcoin.  

You custody your private keys, like passwords, that control addresses which have received Bitcoin

All transactions on the Bitcoin network start by spending OUTPUTS from previous transactions (except miner block rewards called ‘coinbase’). 

The output of a transaction is called an Unspent Transaction Output (UTXO) which has an assigned amount of Bitcoin (BTC) which can be spent in the future.  

Each UTXO (Bitcoin) has two attributes associated with it – the date/time when the coin was created (age) and the price at its creation point (realized price).

Different blockchain protocols use different accounting models to track and manage address balances to prevent double spending.  

  • Account/Balance Model: Balances tracked and maintained in real time for each user using credits/debits similar to your bank. (Ethereum Blockchain)
  • Unspent Transaction Model: Wallet balance is the total sum of the UTXOs assigned to a user’s public address that were recorded to the blockchain and remain unspent (Bitcoin).

How are UTXOs Assigned to Wallet Addresses?

The first step in the transaction process is for your wallet to scan the entire blockchain identifying any UTXOs assigned to your public address.  An open source LevelDB database, created by Google in 2011, is used for storing and indexing the metadata for ALL UTXOs (UTXO set).  

The UTXOs assigned to a wallet address are secured by a cryptographic key pair (randomly generated letters and numbers).   Public keys (like an email address or Venmo handle) and private keys (like a password) are used to sign (authenticate) transactions which spend UTXOs on the Bitcoin network.  

  • Public key: public key used to encrypt (lock) a UTXO to the recipient.    
  • Private key: Unique key, like a password, that signs and decrypts (unlocks) a UTXO to be spent in a transaction.   
  • Public Address:  A Bitcoin Address is the public source or the destination of an amount of Bitcoin (UTXO) that is being spent or received.

For example, when you exchange your dollars (fiat) your wallet address is assigned a UTXO with a fixed amount of Bitcoin based on the BTC:USD exchange rate.

For the Tradfi nerds out there, it’s like double-entry accounting where each transaction has an input and an output.  Unspent outputs are recorded to a database, called the blockchain, and can be used (spent) in a future transaction. 

The amount of BTC your address receives (as little as 0.00000001 BTC) is considered ‘unspent’.  Your wallet adds up all of the UTXOs assigned to your address(es) to display your Bitcoin balance.  

Key differences between traditional banking and Bitcoin:

Banks have ‘account holders’ who make deposits and withdraw money from ‘accounts’.  Banks manage an internal credit and debit ledger to keep a record of the ‘account balance’ acting as a custodian for the account holder’s assets.   

Banks are only required to keep 10% of your deposits.  The other 90% can be used to fund the bank’s payroll or make loans to their other customers.  Remember 2008?

Bitcoin has ‘wallet addresses’ which contain ‘UTXOs’ (credits) verified by an immutable public ledger (blockchain). 

In real life, money is something you give to someone else in exchange for a good or service. 

You transact with another person or business by exchanging physical (paper/coin) money or digital money (Zelle/PayPal).

Physical Money – The paper bills or coins in your pocket with fixed denominations.  

Transacting with a merchant using physical money typically results in the merchant handing you back change representing the difference between the total amount due and the total amount of paper or coin money you handed to the cashier.  

For example, let’s say you walk into a pizza shop to grab a couple slices and a drink for $6.50.  You reach into your wallet, grab a $20 bill and hand it over.  The cashier places the $20 in the drawer and hands back paper notes + coins equalling your change of $13.50.  

Digital Money – A number on a screen that reflects your account balance with your bank or payment app.  

Transacting with a merchant using digital money is more precise.  There is no change given as the exact total amount due is transferred from your bank account through a payment processing network which settles the transaction by transferring funds to the merchant.  

For example, let’s assume you have $10,000 in your bank checking account.  If you use your bank debit card at a restaurant to pay for a $50 dinner for two, your bank doesn’t send the restaurant $10,000 expecting to get $9,950 in change credited to your account.  

The exact amount of $50 is deducted from your account, routed through the payment processing network eventually making it back to the restaurant.  

Bitcoin is digital money.  It’s just numbers on a screen that move around on a network transferring value from one address to another.

These transfers function more like physical money less like digital payments (credit/debit/ACH) because the sender typically receives ‘change’ back as the output of a transaction. 

Key Terms UTXOs:

Transaction: Bitcoin Core Software uses code, called Script, which tells the network 1) amount an address is ‘spending’ (sending to the recipient), 2) whether the sender address (wallet) has enough funds to spend, 3) which address (wallet) will receive the amount and 4) how much change to send back to the sender/spender after mining fees are paid.    

Input:  The value that is spent.  A transaction input includes information pointing to a transaction that created the UTXO and the unlocking script the sender uses to prove ownership.

Output: The value that the recipient receives AND the change due to the spender.  Outputs contain a locking script (scriptSig) which must be unlocked (scriptPubKey) to spend in future.

UTXO: An Unspent Transaction Output (UTXO) is used as an input in a transaction.  The transaction creates a minimum of two outputs.  The recipient receives one (1) UTXO and the sender receives their ‘change’ as one (1) UTXO.  Both UTXOs can be used as inputs in future transactions by either party.  

Transaction Fees: Transaction (txn) Fees, also known as Network Fees, are paid to miners as an incentive to be included in the next block on the Blockchain.  Fees are calculated based on the data size of a transaction not the dollar amount.  The size of each input UTXO, expressed in vBytes, is multiplied by a variable network rate, expressed in fractional Bitcoin (called satoshis) per vByte.  

Blockchain: The Bitcoin Blockchain is a distributed ledger of ALL Bitcoin (digital currency) transactions processed on the decentralized Bitcoin Network.  Bitcoin Blockchain and Bitcoin Network are often used synonymously but they are two different components of Bitcoin.  

Network: The Bitcoin Network is a peer-to-peer (P2P) network of computers (nodes) who run the same Bitcoin Core software protocol.  These nodes communicate across the network to achieve consensus while performing specific tasks like routing, mining (validation), database management, and wallet services. 

Wallet: A hardware device or software specifically designed to store your key pair(s) and create transactions which get broadcasted to the Network and added to the Blockchain once validated by miners.  

UTXOs Role in Bitcoin Transactions

When you log into your exchange account or wallet to create a transaction, you’ll need to enter a few key pieces of information like:

  • Recipient’s address (where to send)
  • The amount of BTC (how much to send)
  • The network fee/priority (High, Medium, Low or No Priority).

When you click send or confirm, your wallet creates a transaction which is really just a message that gets broadcasted to the network and validated by nodes.   The first step in creating a new transaction is for your wallet to select a transaction (input) which will be spent/sent to the receiving address. 

Once the message is created, your wallet signs the message (cryptographic signature) with his private key and broadcasts the message to the network for validation (miners who charge network fee.)  

The message contains a transaction structure and is automatically created by your wallet:

  • Inputs – How many UTXOs required from the sender to complete the payment
  • Amount – How much Bitcoin is being sent to the recipient
  • Outputs – The number of  UTXOs,  their value expressed in satoshis (fractions of BTC), and the destination address for each (recipient UTXO and change UTXO)
  • Lock time – Optional property of a transaction that states the earliest time and date that the transaction is eligible to be broadcast.  

Once the transaction is confirmed by the miner, it’s added to the block and will be stored forever on the blockchain (public ledger) which is maintained by distributed nodes which host and synchronize a publicly available copy of the every transaction included on Bitcoin blockchain since it’s inception on January 3, 2009.   

You don’t need to know all of the technical details.  We cover how Bitcoin transactions function, calculating Bitcoin transaction fees and decoding Bitcoin transactions in detail on other posts.  

This may sound like a lot of moving parts but there are a lot fewer components compared to an average credit card transaction involving 8 parties.  Each middleman takes their cut including the acquiring bank (merchant’s bank), issuing bank (cardholder’s bank), card networks (visa, mastercard), credit card processor, independent sales organizations (ISO), membership service provider (MSP), integrated software vendors (ISV) and payment gateways (authorize.net).  

Bitcoin is the world’s first perfectly engineered digital money.

How UTXOs are Similar but Different from Physical Cash?

Going back to our pizza example using a rough real world example…  

The $20 bill that you spent for a $6.50 pizza and drink becomes one (1) $20 UTXO for the pizza shop once they place the $20 in their cash drawer.  

The US Government issues legal tender in fixed denominations.  The $13.50 you’re due from the pizza shop as change needs to be split up using a combination of notes and coins.

In Bitcoin terms, 6 UTXOs are used as outputs to complete this pizza transaction: one (1) $10 bill, three (3) $1 bills, and two (2) quarters (2 x $0.25 coins).  

You can spend your $13.50 and the pizza shop can spend their $20 for future transactions. 

If this transaction took place on the Bitcoin Network, you spend one (1) $20 value UTXO as an input.  After transaction confirmation, the pizza shop receives one (1) $6.50 UTXO and you receive one (1) $13.50 UTXO as change from the transaction.  

In this transaction example, your $20 input UTXO is destroyed, or consumed and marked unspendable.  

The two (2) brand new UTXOs created as outputs can be spent (or combined with other UTXOs) for future transactions by each respective party.   

These outputs are based on the spot price of Bitcoin to US Dollars at the time of the transaction and the UTXO is expressed in fractions of Bitcoin, called satoshis.  

Your Bitcoin wallet now has a balance of 0.00052117 BTC (~$22.44) made up of 3 UTXOs assigned to your address with one of them being from the pizza shop transaction:

  • 0.00011582 BTC (~$5)
  • 0.00008805 BTC (~$3.80)
  • 0.00031270 BTC ($13.50 change from pizza)

Friday rolls around and you want to take a friend for pizza and pay using Bitcoin.  

Your wallet will locate your 3 available UTXOs to find a combination that’s greater than or equal to the $13 (0.00030166 BTC) to settle your new pizza transaction.  

Even though you have a UTXO with ~$13.50, it’s not enough to cover the transaction fees.

Based on your UTXO amounts, we’ll need to use all 3 UTXOs to cover the cost + transaction fees which are assessed for each UTXO.  

Assuming the average UTXO size is 250vBytes for a P2PKH transaction with 1 input + 2 outputs.  We’re using 3 UTXOs as inputs for this transaction.  Each input P2PKH UTXO is 148 vBytes compared to 68 vBytes for P2WPKH.  Try for yourself on this transaction size calculator or this calculator. 

Pro Tip: Bech32 Native Segwit (P2WPKH) input UTXOs are less than half the size of P2PKH input UTXOs due to the signature and pubKey being moved from the scriptSig to witness.

In our example with 3 inputs and 2 outputs, the total transaction size is 546vBytes (250 + 148 input 2 + 148 input 3).  If the network fee is 25 sats/vByte, it will cost 13,650 sats (546vBytes x 25 sats/vByte) equivalent to ~$5.50 in network fees (0.00013650 BTC X $40,000 BTC:USD).

We need to use 3 UTXOs as inputs, worth ~$22.50, because we don’t have one single UTXO with enough Bitcoin to cover the (pizza) cost plus network fees.  

  • UTXO 1:
    • Fee: 0.00006250 BTC ($2.70)
    • Spendable: 0.00005332 BTC (~$2.30)
    • Change: None
  • UTXO 2:
    • Fee: 0.00006250 BTC ($2.70)
    • Spendable: 0.00002555 BTC (~$1.10)
    • Change: None
  • UTXO 3:
    • Fee: 0.00006250 BTC ($2.70)
    • Spendable: 0.0002502 BTC ($10.80)
    • Change*: 0.00002784 BTC UTXO worth ~$1.20

I’ll receive one change UTXO of 0.00002784 BTC worth ~$1.20 back as change after paying for the pizza and network transaction fees. 

There’s a problem.  Given the current fee environment, it will cost me ~$2.70 in fees to spend a UTXO worth ~$1.20.  This UTXO is called ‘dust’.  Bitcoin dust is unspendable and the next topic we’ll cover below.  

What are Bitcoin Dust UTXOs?

Bitcoin Dust is a UTXO with a tiny amount of Bitcoin leftover from a transaction. 

Because Bitcoin is divisible into 100 million units, called ‘sats’ or satoshis, dust UTXOs can vary in size relative to dust limits.  

Dust limits are equal to the minimum trade buy/sell limit to transact on the network.  When you create a transaction, a minimum limit is displayed.  

The smallest quantity of Bitcoin you can have locked to your address is 0.00000001 BTC (1 sat), currently worth about $0.00043 USD.

Dust UTXOs are unspendable and can range from 1 sat up to the current network cost to spend that UTXO in a transaction.  

For example, if the network rate is 30 sats/vByte and a transaction is ~250 vBytes then the minimum cost to get your transaction picked up by a miner is (250 x 30) = 9,000 sats (0.00009 BTC) worth ~$3.75 at a $43,000 BTC:USD spot price.

Bitcoin dust is inevitable if you transact with Bitcoin or move funds to different addresses for privacy or consolidation.  It’s a problem and there are solutions to cleanup or dust off.

Not all dust UTXOs are leftover change from a transaction.  Marketers use dusting to promote crypto projects and hackers use crypto dusting as a tactic too. Learn how to prevent Bitcoin dusting attacks to protect your privacy and security.

How can I fix my Bitcoin dust problem?

Here are the most common Bitcoin dust cleanup methods:

  1. If your wallet provides a ‘dust cleanup’ option, start by investigating this.  Hierarchical Deterministic HD Wallet coin consolidation is manual or an automatic function depending on the provider.
  1. Use Coin Control in your wallet, if available, to manually select dust UTXOs to use as inputs in the transaction.  Each transaction input UTXO is 148 vBytes of data using PSPKH (~68 vBytes using P2WPK thanks to ‘witness’).  Let’s look at transaction sizes for an example of a P2PKH input and P2PKH output(s).
    1. 1 input – 2 outputs: 226 vBytes 
    2. 2 inputs – 2 outputs: 374 vBytes 
    3. 5 inputs – 2 outputs: 818 vBytes 
    4. 10 inputs – 2 outputs: 1,558 vBytes 

Waiting for a low fee environment to consolidate all of your dust UTXOs in a single self-spend transaction is a common practice.

  1. Your exchange or wallet provider may offer to ‘swap’ your Bitcoin dust for a native token or another coin.  Binance offers Bitcoin dust to BNB and Crypto.com has a dust conversion option.
  1. ‘Dusting Off’ your ‘dust’ address is different from consolidating.  You’re basically sending another Bitcoin UTXO to the address making the address usable again.  You’ll pay transaction fees to dust off and then again when you transact from this address.

There’s no simple fix for Bitcoin dust but there is hope for the future. 

If the price of Bitcoin increases at a higher rate than network fees, today’s dust could be tomorrow’s windfall.  

Over time, the combined dust UTXOs on the network could effectively remove a significant amount of total supply on the market which could contribute to price pressure moving up as long as network fees don’t increase at a correlated rate to the price of Bitcoin.

If network fees increase dramatically, the future cost to consolidate Bitcoin dust will increase and playing the waiting game may not be the most advantageous strategy.  

You’ll need to develop your strategy by personal thresholds.  In order to do this, you must understand the marginal cost to transact with multiple Bitcoin UTXOs.  

Marginal Cost to Move and Transact with Bitcoin

The Bitcoin Network is unique in that the cost to transact is based on the (data) size of the inputs, not the dollar amount transacted.  

The more input UTXOs used in a transaction, the more it costs a miner to store, process and validate due to increased electricity consumption. 

Figuring out the cost to move (spend/transact) a UTXO compared to the actual value of the UTXO is simple math that is often overlooked.  

An ‘input’ UTXO in a transaction is valued as the amount in BTC multiplied by the network fee paid to the miners measured in sats/vByte (we’ll cover this in a minute).  Note that if the transaction originates from an exchange, there may be an additional transaction fee represented as a fixed amount (ie – $0.99 or a % of value).

Example 1: Assuming BTC-USD spot price is $40,000…

0.0002 BTC UTXO is = $8  

Miner Fee (100 sat/vByte) = $6

This $8 value UTXO will cost $6 to spend in a transaction netting $2 in value (0.00005 BTC) output UTXO created.  That UTXO is locked to the recipient’s address and is considered ‘spendable’ to be used as an input in a future transaction.  

Bitcoin UTXOs that have a marginal cost which exceeds the value are considered ‘dust’. 

Assuming ~$40,000 BTC-USD and current fee rate of 100 sat/vByte any UTXOs of less than 0.00025 BTC are considered dust.  Another way of looking at this is taking our average single-sig 1 input : 2 output UTXO size of 245 vBytes we can calculate the following Dust minimum like this: 

  • 1 sat/vByte fee: 245 sat min (0.00000245 BTC) UTXO
  • 5 sat/vByte fee: 1225 sat min (0.00001225 BTC) UTXO
  • 20 sat/vByte fee: 4,900 sat min (0.000049 BTC) UTXO
  • 50 sat/vByte fee: 12,250 sat min (0.00012 BTC) UTXO
  • 100 sat/vbyte fee: 24,500 sat min (0.00025 BTC) UTXO
  • 150 sat/vbyte fee: 36,750 sat min (0.00036750 BTC) UTXO

Bitcoin dust cannot be spent and you may see an error in your wallet UI when creating a transaction using dust due to the paper value not being equal to the marginal cost of the transaction value on settlement. 

A ‘Dust UTXO’ may only become spendable if/when network fees lower or the spot price increases.  Bitcoin has an enforced lower limits which most (wallet) developers hard coded into their software to prevent transactions:

  • P2PKH addresses (starting with ‘1’): Minimum UTXO size of 546 satoshis.
  • P2SH-P2WPKH addresses (starting with ‘3’): Minimum UTXO size of 540 satoshis.
  • P2WPKH addresses (starting with ‘bc1q’): Minimum UTXO size of 294 satoshis.
  • P2TR addresses (starting with ‘bc1p’): Minimum UTXO size of 330 satoshis.

When your best case scenario is to wait for fees to drop significantly or wait for the price of Bitcoin to increase, a risky situation is created since a rise in price is often related to supply constraints due to increased network activity competing for the limited block space.

We can forecast dust thresholds in a rising fee environment to identify scenarios where the cost to transact (move/spend) a small UTXO is = 100% of its value.  

Even if the UTXO is worth something, losing 90% of the value to fees is ludicrous.  

Using round numbers for this example an average 250vByte transaction (single-sig PSPKH 1 in : 2 out), the model below is used to display the minimum UTXO value based on variable transaction fee rates.  You can use this to identify a personally tolerable maximum fee %.  

“A lot of newbies advised to “DCA and withdraw” are going to get wrecked by fees when they try to sell/spend their thousands of tiny dust UTXO. It’s going to be a bad scene.”

– Andreas Antonopoulos – Author Mastering Bitcoin

Table 1: Dust Threshold Model

(250 s/vB x fee) / % 5 sat/vB 10 sat/vB 50 sat/vB 75 sat/vB 150 sat/vB 250 sat/vB
50% maximum fee 2.5k sats 5k sats 25k sats 37.5k sats 75k sats 125K sats
25% maximum fee 5k sats 10k sats 50k sats 75k sats 150k sats 2.5M sats
10% maximum fee 12.5k sats 25k sats 125k sats 187.5k sats 375k sats 625k sats
5% maximum fee 25k sats 50k sats 250k sats 375k sats 750k sats 1.25M sats
2.5% maximum fee 50k sats 100k sats 500k sats 750k sats 1.5M sats 2.5M sats
1% maximum fee 125k sats 250k sats 1.25M sats 1.875M sats 3.75M sats 6.25M sats

Below you’ll find a chart of the maximum fees you will pay based on each UTXO quantity compared with the current network fee.  For example, a 500k (0.01 BTC) UTXO can expect to pay 2.5% fee rate when the mempool is averaging 50 sat/vByte and 7.5% at 150 sat/vByte.

Table 2: UTXO Value to Fee Percentage Comparison

(250 s/vB x fee) / UTXO 5 sat/vB 10 sat/vB 50 sat/vB 75 sat/vB 150 sat/vB 250 sat/vB
50k sat UTXO 2.5% max fee 5% max fee 25% max fee 37.5% max fee 75% max fee DUST
100k sat UTXO 1.25% max fee 2.5% max fee 12.5% max fee 18.75% max fee 37.5% max fee 62.5% max fee
500k sat UTXO 0.25% max fee 0.5% max fee 2.5% max fee 3.7% max fee 7.5% max fee 12.5% max fee
1M sat UTXO 0.13% max fee 0.25% max fee 1.25% max fee 1.8% max fee 12.5% max fee 6.25% max fee
5M sat UTXO 0.03% max fee 0.05% max fee 0.25% max fee 0.375% max fee 0.75% max fee 1.25% max fee

*Estimates above assume single-sig bech32 Native SegWit transactions.  Multi-sig wallets can 2x+ the expected cost to transfer UTXOs. 

As demand for Bitcoin grows over the years, it’s difficult to predict exactly what rates will be.  In December 2023 we saw a drastic increase in fees averaging over 100 sats/vByte as Bitcoin broke $40k on the heels of ETF approval then rebounded over $50k in February 2024.

Smaller UTXOs will continue to decline in value as their fee rate eclipses their stored value which applies pressure to bag holders who have to wait for lower fees to consolidate UTXOs or watch as their wealth is debased due to poor UTXO maintenance. 

Example of $20 Value UTXO’s Cost To Transact Based on Price

Let’s assume you make a $20 buy in January 2024 yielding 50,000 sats (0.0005 BTC). 

Even if the price of Bitcoin soars, network fees aren’t tied to the value of the Bitcoin amount.  Fees are calculated in sats/vByte which represents an amount multiplied by the size of the transaction data.  

In a $1M Bitcoin world, your $20 0.0005 BTC may be worth $500, but we still need to consider the scenario where the network fees are closely correlated with the rising price of Bitcoin.   See the table below and feel free to plug in your own numbers.  

Table 3: Waiting for BTC Price Increases to Consolidate UTXOs

0.0005 BTC UTXO 10 sat/vB 50 sat/vB 100 sat/vB 150 sat/vB 250 sat/vB 500 sat/vB
$75,000 BTC 0.0005 = $37.5 0.000025 BTC fee ($1.87)  5%        Net: $35.63 0.000125 BTC fee ($9.37) 25%      Net: $28.13 0.00025 BTC fee ($18.75) 50%        Net: $18.75 0.000375 BTC fee ($28.13) 75%  Net: $9.37 0.000625 BTC fee ($46.88) 125% Net: -$9.38 0.00125 BTC fee ($93.75) 250% Net: -56.25
$100,000 BTC 0.0005 = $50 0.000025 BTC fee ($2.50)  5% Net: $47.5 0.000125 BTC fee ($12.50) 25% Net: $37.50 0.00025 BTC fee ($25)      50% Net: $25 0.000375 BTC fee ($37.50) 75% Net: $12.50 0.000625 BTC fee ($62.50) 125% Net: -$12.50 0.00125 BTC fee ($125) 250%       Net: -$75
$250,000 BTC 0.0005 = $125 0.000025 BTC fee ($6.25)  5% Net: $118.75 0.000125 BTC fee ($31.25) 25% Net: $93.75 0.00025 BTC fee ($62.50) 50% Net: $62.5 0.000375 BTC fee ($93.75) 75% Net: $31.25 0.000625 BTC fee ($156.25) 125% Net: -$31.25 0.00125 BTC fee ($312.50) 250% Net: -$187.50
$500,000 BTC 0.0005 = $250 0.000025 BTC fee ($12.50) 5% Net: $237.50 0.000125 BTC fee ($62.50) 25% Net: $187.50 0.00025 BTC fee ($125)    50% Net: $125 0.000375 BTC fee ($187.50) 75% Net: $62.50 0.000625 BTC fee ($312.50) 125% Net: -$62.50 0.00125 BTC fee ($625) 250% Net: -$375
$1,000,000 BTC 0.0005 = $500 0.000025 BTC fee ($25)     5% Net: $475 0.000125 BTC fee ($125) 25% Net: 375 0.00025 BTC fee ($250)    50% Net: $250 0.000375 BTC fee ($375)    75% Net: $125 0.000625 BTC fee ($625)    125% Net: -$125 0.00125 BTC fee ($1,250) 250% Net: -$750

The table above is an argument that anti-Bitcoiners are quick to jump on.   Anecdotally, we all deal with similar marginal cost adjustments in real life.  

For example, the $300,000 you borrowed to purchase a home at 6% interest over 30 years comes with a cost to service the debt. Your monthly mortgage payments of $1,799 over 30 years cover both principal and interest.  You’ll pay $347,515 in interest payments alone and a whopping $647,514 total over the lifetime of the loan until it’s paid off.

“Ya but the home increases in value”

Ok, how about that Disney trip you put on a credit card at 15% interest?  Or the Buy Now, Pay later for your kid’s Christmas presents.

If Bitcoin’s price increases alongside miner fees in the coming halving epochs, we may reach a time when self-custody is out of reach for the normal investor let alone developing nations that Bitcoin seeks to liberate from financial overreach.  

The solution (imho) expansion of Lightning (other Layer 2s) to reduce main-net volume and an FDIC-like insurance infrastructure protecting investors who keep their BTC on-exchange.

In the meantime, getting smarter about UTXO management is your responsibility.  

How Multiple UTXOs Increase the Transaction Size

One single Bitcoin transaction can be made up of multiple input UTXOs that are spent in the transaction.  Each input UTXO has three main parts:

  1. Amount in BTC
  2. Locking-Script-Size and 
  3. Locking-Script listing the conditions required to ‘spend’ the output 

These UTXO components represent a ‘weight’ (data size) which is measured in Virtual Bytes (vBytes).  

Network fees are calculated in sats/vByte which represents how many Satoshis are required to be paid per virtual byte (vByte) of data.

Miners prioritize the transactions they select to include in the candidate block based on who’s willing to pay the highest fee.  The Network Fee Rate follows an elastic demand curve and supports Pay-for-Priority where someone who needs a transaction processed faster will pay higher fees.

Using multiple UTXOs as inputs in a transaction adds 68-148 vBytes per UTXO which is multiplied by the network rate of x sats/vByte to calculate your fees.

The biggest transaction ever sent on the bitcoin network happened in 2015 included a whopping 5,568 inputs of 0.00001 BTC combined into one (1) output of 0.05569 BTC and filled the entire block of ~1MB data (999,657 vBytes).  At 1 sat/vByte ~20% of the transaction was paid in fees.  

Luckily there’s a solution to saving money on fees…UTXO batching and consolidation.  

What’s the difference between UTXO Batching and Consolidating?

UTXO Batching is to ‘outputs’ as Consolidating is to UTXO ‘inputs’.

Let’s unpack this…

Batching is a transaction that creates multiple outputs from an input.  

When you transfer Bitcoin from an exchange (CEX) to a cold wallet, for example, your exchange will typically batch together multiple withdrawal requests to save on fees.

Batching many transactions into one also saves space on the blockchain.    

Behind the scenes, the CEX selects 1 input UTXO which gets split up accordingly and sent to the various receiving addresses as multiple outputs.  

Consolidating is using multiple input UTXOs to create an output.  

UTXO Consolidation is sending Bitcoin (BTC) in your wallet to another wallet(s) that you control.  The many UTXOs you accumulated over the years from a weekly DCA are used as inputs to create 1 output. 

It’s like having a stack of twenty single dollar bills in your pocket and asking the cashier for a $20 bill.

If you don’t consolidate your UTXOs, there’s a chance that over time you could have UTXOs that are unprofitable to spend in a transaction because their value is so low compared to the network fee. 

Privacy is also a concern when batching and consolidating UTXOs.  

UTXOs and Privacy on the Blockchain

As soon as you send or receive Bitcoin on the Network, your address is forever linked to the transaction.  

Anyone can see the source of the Bitcoin being sent and the destination address of the receiver.  They can also see the amount of Bitcoin these addresses control.

Your address is pseudonymous to your real identity.  If you share an address you’ve reused for previous transactions, that person is now able to see your entire transaction history. 

Pro Tip – generating a new Bitcoin address to receive Bitcoin for every transaction is highly recommended for privacy on the network.  

It’s easy for someone like me to pass along sage advice, but putting this into practice without a plan is setting yourself up to be doxed.  

When you create a new address to receive Bitcoin, your wallet is programmed to generate a new key pair (public key + private key) which are derived from the same root key (aka – master key).

If you need to transfer wallet providers or restore a hardware wallet after a firmware update, your backup recovery seed is all that’s required to recreate your wallet balances.  

There is no limit to the number of wallet addresses you can create.  By default, each different cryptocurrency you own creates a new account within your wallet.  

Managing Multiple Bitcoin Accounts and Addresses

Your wallet contains a master root key from which all other key pairs are derived each time you generate a new address.  

Here are some options to manage your wallet addresses and segregate your Bitcoin (in no particular order):

Option 1: Create multiple private accounts from one single Hierarchical Deterministic modern wallet. 

Ledger, for example, is an HD wallet which by default can create an infinite number of addresses.  This is one way to ‘batch’ your transactions depending on their source and potential use in the future.  Label your accounts depending on how you are segregating your Bitcoin.  

  • Pros: HD Wallet software interfaces make it easy to apply metadata descriptors like contact details, a description or notes to keep things organized and enhance privacy.
  • Cons: If you’re transferring wallets, your new provider may not be able to replicate the metadata (name/description) for each of your wallet addresses or accounts. 

Option 2: Use multiple (cold) hardware wallets, each with its own recovery seed.  

You will need to determine which wallet is for what Bitcoin addresses to avoid commingling.  For example, if you acquire Bitcoin from a KYC exchange, avoid sending Bitcoin you receive as a payment, gift, or from any other non-KYC source.  

  • Pros: This is a hedge against the unlikely event that your wallet seed is ever compromised ensuring you’re less likely to lose everything.  
  • Cons: Multiple recovery seeds to manage if you need to restore a wallet.  This could be inconvenient if you have only one device that needs to be restored each time you want to transact from a different wallet.  
  • Note: from a privacy perspective, this strategy holds up as long as you don’t mix funds when consolidating or batching UTXOs.

Option 3: Use a

Option 1: Create multiple ‘accounts’ using a HD wallet with a passphrase for privacy and security.  

A passphrase, or 25th word, adds an extra layer of security to your wallet.

  • Pros: Even if someone discovers your recovery seed or happens to generate a duplicate key pair, your funds may still be secured with the passphrase.
  • Cons: You’ll need to store your passphrase in a secure location that is separated from your seed phrase for maximum security.  

Option 4: Transferring your coins from a software wallet or hardware device back to a centralized exchange (CEX), like Coinbase, is like hitting the reset button.  

Create a NEW wallet + recovery seed before creating new addresses and/or accounts.  When you transfer back from the exchange to the new wallets, new UTXOs will be created spent FROM the exchange which can anonymize the source and give you a clean slate. 

  • Pros: A clean slate.  If you made a mistake exposing yourself or linking addresses a transfer to an exchange can help you spend your Bitcoin to multiple addresses. 
  • Cons: A mistake in the destination address or selecting the wrong network to complete the transaction can result in lost coins.  Additionally, as soon as your Bitcoin is transferred to the exchange you’re at the mercy of the CEX’s withdrawal limitations, fund seizure, default, or hack.  Fees are the final consideration as you’ll pay fees to send to CEX and again send back to another wallet. 

Option 5: Utilize a wallet with coin control when spending Bitcoin in a transaction.

  • Pros: Coin Control allows you to select which input UTXOs to spend in a transaction compared to the default alternative allowing the wallet to choose for you.  You can ‘Freeze’ specific UTXOs from being spent in a transaction which can help reduce the likelihood of using too many small UTXOs rather than one larger UTXOs during periods of high network fees. 
  • Cons: You could make a mistake and undo the privacy controls you set up if you’re not careful.  This is for more advanced Bitcoiners.  

Managing UTXOs with CoinControl for Privacy

The challenge with Bitcoin is balancing multiple priorities like privacy, short-term fee savings and long-term fee savings. 

Coin Control is a feature of some wallets which enables users to directly control their UTXO management strategy. 

Wallets that don’t use coin control make those decisions for the user instead, so Coin Control is usually best for advanced users who know what UTXO management strategy they want.

In the previous section we talked about how wallet addresses are public on the blockchain.  

Coin control is important for privacy and allows you to manually spend specific UTXOs to specific wallets.  

For example, maybe you don’t want to mix coins purchased from a KYC Exchange with coins you received as payment for consulting.  If you do mix the coins then anyone with a blockchain scanner can now tie together your balance.  

When you segregate coins during consolidation (sending Exchange 1 UTXOs to Wallet A, and Exchange 2 UTXOs to wallet B, a third party is not able to deduce that a single entity controls both wallets.  

Electrum and Wasabi are more advanced wallets and offer a great Coin Control or ‘privacy control’ functions.  

Most beginner friendly wallets (Trust) and Exchanges (Coinbase) do NOT provide this level of protection.  Coin Selection is an important feature to consider when evaluating off-exchange wallets.  

Automatic Coin Selection in most wallet providers selects UTXO inputs based on different algorithms like: 

  • Accumulative: Wallet selects (accumulates) UTXOs, skipping UTXOs that would negate the ability to equal amount + fees reached.
  • Blackjack: Does not accumulate UTXOs that could go over the amount required. 
  • Branch & Bound: Wallet selects UTXOs equal to the target spend to minimize the need for a change UTXO. 
  • First In, First Out (FIFO) or Last In, First Out (LIFO)
  • Freezing Coins: Prioritization or avoidance by grouped UTXO sets.
  • High Priority First (HPF): Optimized for transaction speed (value x age)
  • Optimal Size: Minimize Fee by selecting the lowest quantity of UTXOs.
  • Minimize Future Fees (Merge): Maximum quantity of coins used to capitalize on a low-fee environment if fees are anticipated to increase in the future.

If you’re sending Bitcoin off-exchange into cold storage, consider using a wallet that supports Coin Control for dust cleanup.  With a coin control function, you can select ‘dust’ UTXOs to include in the same transaction with a larger UTXO which will spend the fees for the entire transaction.  

Pro Tip: Generate a fresh Bitcoin address in your wallet when you transfer BTC from your exchange. 

Always practice prudent recovery seed backup methods.

Understanding your hardware and software wallet limitations is the first step to considering UTXO consolidations. It’s your responsibility to manage coins stored off-exchange.  

After reading this post, you should have a good idea about what UTXOs are, the role of a UTXO playing and a transaction, how they impact your privacy and the marginal cost associated with transacting on the Bitcoin Network.  

Note: Stratus does NOT provide investment, legal or tax advice.  All information in this article is for educational purposes and should not be interpreted as investment, legal or tax advice.  The opinions expressed are those of the author for informational purposes and neither Stratus nor the author are liable for any errors, inaccuracies or omissions.  Digital assets, such as cryptocurrencies or decentralized finance, present unique risks for investors.  For investment, legal, tax, or other financial guidance you should consult your own advisor. 

Leave a Comment