How to Prevent and Detect Bitcoin Dust Attacks

The goal of Bitcoin dust attack is to expose your identity and holdings. An attacker will send a small amount of crypto to different wallet addresses hoping the wallet owner will eventually batch or consolidate their UTXOs, including the dust, to use in a future transaction. Once the recipient (you) spends the dust in a transaction, the attacker can connect the dots to associate the dusted address with other addresses you own.  For example, if you inadvertently send the dust to a centralized exchange to cash out, the attacker could target you with a phishing attack to compromise your account or install malware.  Most dust can’t be spent on its own because it’s too small and less than the network fee.   To spend the dust, you must combine the dust with other UTXOs which is exactly what the attacker wants you to do.   How to protect your wallet from bitcoin dusting? You can’t prevent a dusting attack because anyone can send Bitcoin to any address without censorship.  Here are some proactive measures to protect against a dust attack:

  1. Before creating a transaction, regularly scan your wallet for dust size UTXOs.
  2. Most wallets have default dust thresholds that will automatically reject, isolate and freeze suspected dusting UTXOs.  Bitcoin Core has a 546 satoshi dust limit.  
  3. Create a rule in your wallet, if available, that prevents UTXOs under a certain value from being included in a transaction.  
  4. Only use wallets with a Coin Control feature.  The wallet owner can select to include or exclude certain UTXOs from a transaction. 
  5. Use an HD Wallet to generate a new address every time you receive Bitcoin.  Hackers often fine tune their research looking for addresses which have received more than one transaction which can place a target on your back.  
  6. Whitelisting, if provided by your wallet, sets specific addresses and prevents inadvertently sending crypto to an address you haven’t previously authorized.  
  7. Don’t commingle coins from different sources or addresses.  
  8. Practice UTXO management, including a UTXO consolidation strategy.
  9. Execute good crypto operational security.  For example, use a VPN to avoid geolocation and log in to a website from your browser rather than clicking a link in an email the website sent you.  Inadvertently scanning fake QR codes on bogus phishing sites or offline IRL is another exploit hackers will target.  
  10. Avoid signing up for free airdrops of crypto as these sites are often created by the attacker to resemble authentic sites with the purpose of getting you to connect a wallet or disclose an address or other personally identifiable information.
  11. Avoid using vanity addresses which are susceptible to ‘address poisoning’ where the attacker finds your vanity address, creates a similar address to transact with your vanity address hoping you accidentally transact with the fake address instead of your real address at some point in the future.  Double check you’re using the correct address.
As the Bitcoin price goes up and Bitcoin transaction fees increase, dusting attacks are becoming more expensive for the attacker.  The natural reaction for the attacker is to focus their attention on wallets with higher balances which should put Bitcoin wholecoiners on high alert.  What should I do if my wallet is dusted? The proactive actions we suggested in the previous section may help you mitigate a crypto dusting attack. If you’ve been dusted, don’t freak out and don’t spend any Bitcoin dust in a transaction.   In fact, don’t even click on the token to prevent any malicious code in a smart contract from activating.   Pro Tip: Identify the unsolicited dust-size UTXOs.  Freeze the UTXOs you deem as malicious or mark/note as Do Not SpendArchiving the UTXO is your safest option and be cautious if your wallet offers a dust conversion to swap the UTXO for another coin.   The attacker is baiting you to interact with the dust so they can track the transaction, even if it’s a swap, then analyze future transactions until they find a vulnerability.  Software wallets, particularly browser-based, are more frequently attacked with altcoin dusting because these wallets are primarily used for Web3, Decentralized Apps (DApps), and altcoins.   You can use a blockchain explorer to trace the transaction if you receive dust.  Check your address to see who the sender was.  Next, check the sender’s address on the explorer to see how many other dust transactions were created.   Report dusting attacks to your wallet provider and to law enforcement’s cyber division like the FBI’s guidance for cryptocurrency scam victims.  Will I lose my Bitcoin if I spend the dust? Transacting with Bitcoin dust won’t necessarily allow the hacker to drain your wallet but does open the vulnerability for them to de-anonymize the wallet and target you with a phishing attack to eventually gain access.  Crypto dusting with altcoins is more common than Bitcoin dusting because it’s cheaper and more susceptible to smart contracts which do have the ability to access your keys and drain the wallet thanks to blind signing.   Smart contracts are embedded into transactions and most wallets do not show the details of the functions in the smart contact.   The vulnerability of smart contracts is linked to code designed to execute when you link your wallet to a specific website, most commonly a decentralized exchange, which can execute a set of instructions to drain your wallet.  This happens more commonly with DeFi compared to Bitcoin because it’s cheaper to transact and easier to exploit Risks of Promotional Crypto Dusting Not all dust is a scam or attack.   Researchers use dust to gather data.  Governments use dust to identify criminal activity.  Developers use dust to stress test their software.  Marketers use dusting to promote new projects. New crypto projects (NFTs and coins) dust addresses similar to spamming an email address.  The dust UTXOs could be benign and contain promotional messages or simply meant to entice you to search for the project and visit the project’s website.   You still shouldn’t engage (click, transact, swap) with dust, ever! How do you know that the site you’re visiting is legitimate?  What if an attacker created a fake spoofed site (or app) and got it to rank higher than the legitimate site? Even if you’re certain the site is legitimate, once you open the site your IP address can expose city, state, country, latitude, longitude, ZIP code, time zone, ISP and other sensitive data.   Now that the marketer or hacker knows your location, if you interact with the dust you could get doxed and and inadvertently reveal your crypto net worth. Getting doxed by a dusting attack is easier than you might think.  Transacting with dust is always a NO! Personally, accepting airdrops from sites that I haven’t vetted are always a NO!   There’s no such thing as a free lunch. Stay vigilant, trust no one, and do your own research! 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.  The post How to Prevent and Detect Bitcoin Dust Attacks first appeared on Stratus Crypto.

Bitcoin UTXO: What You Need To Know Right Now!

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/vB10 sat/vB50 sat/vB75 sat/vB150 sat/vB250 sat/vB50% maximum fee2.5k sats5k sats25k sats37.5k sats75k sats125K sats25% maximum fee5k sats10k sats50k sats75k sats150k sats2.5M sats10% maximum fee12.5k sats25k sats125k sats187.5k sats375k sats625k sats5% maximum fee25k sats50k sats250k sats375k sats750k sats1.25M sats2.5% maximum fee50k sats100k sats500k sats750k sats1.5M sats2.5M sats1% maximum fee125k sats250k sats1.25M sats1.875M sats3.75M sats6.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) / UTXO5 sat/vB10 sat/vB50 sat/vB75 sat/vB150 sat/vB250 sat/vB50k sat UTXO2.5% max fee5% max fee25% max fee37.5% max fee75% max feeDUST100k sat UTXO1.25% max fee2.5% max fee12.5% max fee18.75% max fee37.5% max fee62.5% max fee500k sat UTXO0.25% max fee0.5% max fee2.5% max fee3.7% max fee7.5% max fee12.5% max fee1M sat UTXO0.13% max fee0.25% max fee1.25% max fee1.8% max fee12.5% max fee6.25% max fee5M sat UTXO0.03% max fee0.05% max fee0.25% max fee0.375% max fee0.75% max fee1.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 UTXO10 sat/vB50 sat/vB100 sat/vB150 sat/vB250 sat/vB500 sat/vB$75,000 BTC 0.0005 = $37.50.000025 BTC fee ($1.87)  5%        Net: $35.630.000125 BTC fee ($9.37) 25%      Net: $28.130.00025 BTC fee ($18.75) 50%        Net: $18.750.000375 BTC fee ($28.13) 75%  Net: $9.370.000625 BTC fee ($46.88) 125% Net: -$9.380.00125 BTC fee ($93.75) 250% Net: -56.25$100,000 BTC 0.0005 = $500.000025 BTC fee ($2.50)  5% Net: $47.50.000125 BTC fee ($12.50) 25% Net: $37.500.00025 BTC fee ($25)      50% Net: $250.000375 BTC fee ($37.50) 75% Net: $12.500.000625 BTC fee ($62.50) 125% Net: -$12.500.00125 BTC fee ($125) 250%       Net: -$75$250,000 BTC 0.0005 = $1250.000025 BTC fee ($6.25)  5% Net: $118.750.000125 BTC fee ($31.25) 25% Net: $93.750.00025 BTC fee ($62.50) 50% Net: $62.50.000375 BTC fee ($93.75) 75% Net: $31.250.000625 BTC fee ($156.25) 125% Net: -$31.250.00125 BTC fee ($312.50) 250% Net: -$187.50$500,000 BTC 0.0005 = $2500.000025 BTC fee ($12.50) 5% Net: $237.500.000125 BTC fee ($62.50) 25% Net: $187.500.00025 BTC fee ($125)    50% Net: $1250.000375 BTC fee ($187.50) 75% Net: $62.500.000625 BTC fee ($312.50) 125% Net: -$62.500.00125 BTC fee ($625) 250% Net: -$375$1,000,000 BTC 0.0005 = $5000.000025 BTC fee ($25)     5% Net: $4750.000125 BTC fee ($125) 25% Net: 3750.00025 BTC fee ($250)    50% Net: $2500.000375 BTC fee ($375)    75% Net: $1250.000625 BTC fee ($625)    125% Net: -$1250.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. The post Bitcoin UTXO: What You Need To Know Right Now! first appeared on Stratus Crypto.

How to Consolidate UTXO Guide & Best Practices

UTXO consolidation is the process of producing a single UTXO from a set of multiple UTXOs by creating a transaction to send Bitcoin from one address that you manage to another.   Consolidating UTXOs is proactive Bitcoin wallet maintenance that can help mitigate future expenses during high fee environments by creating transaction(s) to send Bitcoin to yourself during a low fee environment. Sending Bitcoin from an address you manage to a different address that you manage can optimize transactions and can help to save on network fees in the future.   Fees are typically higher during Bull markets and lower during Bear markets.  Every 210,000 blocks, every ~4 years, the block reward for miners is halved and higher fees have historically been the outcome.  The halving in 2024 could be another catalyst where fees are also likely to go up during the next bull market cycle.   Not having a strategy for UTXO consolidation could be a costly mistake, especially in anticipation of a high fee environment.   Your strategy could be as simple as a calendar reminder to consolidate and clean up UTXOs every 3-6 months.   For example: If you have accumulated 10 BTC over the past 6 years with a weekly recurring buy you will have 312 UTXOs. Consider a strategy of transferring 1 BTC at a time to your new wallet or across multiple wallets.  You’ll end up with 10 Unspent UTXOs each with 1 BTC. Keep reading to learn more about the importance of consolidating UTXOs.   Where do Bitcoin UTXOs come from? First things first.  New Bitcoin enters the market through mining.  Miners are specialized nodes on the Bitcoin Network that validate a new block through a process called mining.  Miner’s costs include electricity rates and hardware (mining rigs).  Miners make money from transaction fees and are rewarded with a Bitcoin block subsidy for every successfully mined block added to the blockchain.  The most common ways to acquire Bitcoin are by purchasing from an exchange, directly via peer-to-peer (P2P) transaction or by collectively participating in a mining pool.   Buying Bitcoin on an exchange, like Coinbase, does not necessarily create a UTXO for each recurring buy until you send Bitcoin off-exchange.  The only exception to this is if your exchange has a dedicated wallet and you’re in possession of the recovery seed.   Sending Bitcoin from your exchange account to the public address of your software (hot) or hardware (cold) wallet creates a UTXO which is cryptographically locked by your keys until/unless you initiate a transaction to spend it.   Each transfer out creates a new UTXO.  These individual UTXOs are added up to display your wallet/account balance.  Your private key grants you access to your funds and is used to sign or verify future transactions.   Over time, as you receive Bitcoin the number of UTXOs in your wallet increases.   You might be wondering, “how much does it cost to use multiple UTXOs in a transaction?” Transaction fees are not calculated based on the amount transferred, rather the number of UTXOs used as inputs to complete the transaction.  For example, if the transaction fee is 50 sats/vByte you will pay 0.0000005 BTC per virtual Byte (vByte).  The average size of a UTXO is ~250 vBytes which will cost 0.000025 BTC (50 x 0.0000005).  If your transaction requires more than one UTXO or if you use multi-sig the data size of the transaction increases by 68-148 vBytes per additional UTXO input. The more UTXOs in your wallet, the more expensive it becomes to exchange your Bitcoin for goods, services or dollars due to rising network transaction fees.   How Does UTXO Consolidation Strategy Work? UTXO consolidation is the process of combining your total UTXO set into fewer UTXOs of a higher denomination.   A UTXO Consolidation strategy is the execution of your personal plan to determine what UTXOs to group together as inputs to create a single (or more) UTXOs.   The strategy behind how you consolidate your UTXOs can be as simple or as complex as you’d like to make it.  Here’s an example of how a UTXO consolidation strategy works in real life. Example: Imagine you had a wad of 200 $1 dollar bills in your pocket and wanted to exchange them for fewer bills of higher denominations so it’s easier to carry around.  

  • Option 1:  Keeping it simple with two $100 bills.
  • Option 2: Ten $20 bills fit nicely in your pocket and are easy to transact with.
  • Option 3: I’d probably go with one $100, one $50, two $20s and $10. 
There’s no limit to the number of options you can choose from and that’s the point.   The most important consideration when consolidating Bitcoin UTXOs is to keep coins (UTXOs) in groups based on how you acquired them to maintain your privacy on the blockchain. Once your strategy takes the source of your Bitcoin into consideration, you’re left with three primary decisions:
  1. Should I consolidate now or wait given the current fee environment?  Establish your boundaries.  For me, 10 sats/vByte is low, 25 sats/vByte is decent, 50 sats/vByte is high, anything above 50+ is too high. I might wait for a dip from 50 to 25 before I consolidate.
  1. What size outputs do I want to manage?  If you have 10 Bitcoin HODLd across 312 UTXOs then consolidating to 10 1BTC UTXOs each sent to a different wallet address sounds reasonable.  If you’re not a wholecoiner yet, I’d consolidate to 1 UTXO per acquisition source to keep it simple.
  1. How many addresses will you use to store your UTXOs?  At least one per source of funds.  The more complicated your strategy, the harder it is to keep track of what you have.  
The goal of your strategy is to make sure you’re not holding a bunch of dust UTXOs that are unspendable because you were too lazy to spend an hour putting a plan into action.     Who should consolidate UTXOs? If you have more than 3 UTXOs from a common source, you’re a candidate for considering consolidating UTXOs.  UTXO consolidation is a good wallet maintenance practice that can be costly to overlook because of Network Transaction Fees which are variable based on supply and demand.   The more transactions competing to be included in the next block the higher the fee (sats/vByte) because each block on the Bitcoin Blockchain is fixed in size up to 4 million weight units (WU) equivalent to 4MB of data.   As Bitcoin adoption increases, we expect a correlated fee environment which would increase transaction fees over time due to competition based on supply and demand economics.    You can bet that Exchanges and Bitcoin payment processors (like Square) have people on staff responsible for managing UTXO consolidation given the transaction volumes they process.  Individual investors (like you) may not even realize the impact that fees could have on your wealth when you finally decide to transfer, spend or cash out some Bitcoin.   Dollar Cost Averaging is great for helping investors ignore the volatility of Bitcoin, but it’s really important to have a UTXO consolidation plan in place.   Consolidating Bitcoin from an Exchange Recurring Buy When I first learned about Bitcoin in 2017 I immediately set up a weekly recurring buy.  In hindsight, I wish I increased my buying levels but it is what it is.  Before Stratus, I was dollar cost averaging into Bitcoin weekly with a fixed amount recurring buy on Coinbase.  I’m still using Coinbase to execute the trades but with Stratus, I have a bot to automate weekly DCA investments which buys the intraweek dips using smart limit orders.  I went from buying on the same day of the week, same time of the day to filling 3 or 4 limit orders depending on volatility.   I upgraded from at the same time and same day of the  Rather than a recurring buy that executes on the same time and same day each week, Stratus fills 3-4 orders per week to lower my cost basis and save on fees even with more executed trades. Thankfully I knew about UTXO consolidation but didn’t consider a strategy until I got my first hardware wallet and paid more attention as network fees increased over the years.    Pro Tip: When you purchase Bitcoin on an Exchange, like Coinbase, UTXOs aren’t created until you transfer out to a non-custodial wallet because the exchange controls public and private keys and your balance is their liability.    I wasn’t one of these savages transferring from Coinbase to cold storage every week or I would have ended up with over 100+ UTXOs and in desperate need for consolidation.   My indecision saved me from dealing with 26,784 vBytes worth of data that cost 1,339,200 sats (0.01339200 BTC) or ~$500 (at $40,000 BTC:USD) in network fees assuming a 50 sats/vByte rate.     Here’s an example of what a UTXO consolidation looks like in the mempool during a low fee environment:
  • Transaction Size: 99,899 Virtual Bytes
  • Inputs: 2,000 (Type: P2SH ‘3’)
  • Outputs: 2 (Type: SegWit ‘bc1’)
  • Fee Rate: 12.4 sats/vByte
  • Total Fees: $766.90
  • Fee savings vs. 50 sat/vByte: $2,356.24
What are the Benefits of UTXO Consolidation? UTXO consolidation is not a common practice for most Bitcoiners and there’s still a lot of uncertainty surrounding the questions getting asked online or warnings to consolidate before it’s too late.  Note – be careful whose advice you’re taking.   Main benefits of consolidating your UTXOs:
  • You can reduce your transaction fees paid to miners by using as few input UTXOs as possible.  
  • As network fees rise over time (post-halving) your UTXOs will become more expensive to spend in the future.  
  • You’re in control.  No one can predict the future, but I’d hate to be in a position where I needed to make a transaction in BTC during a period of All Time High network fees or during network congestion (like surge pricing for Uber).
  • Knock out two birds with one stone by upgrading your legacy Bitcoin address consolidating UTXOs by sending to the more modern Native SegWit bech32.
  • Avoid signing errors stemming from your hardware wallet’s inability to process too many UTXOs in a single transaction due to the limited storage capacity.  
  • Finally, the altruistic benefit for UTXO consolidation helps reduce the Bitcoin Network’s total UTXO Set which makes it easier (less data) for someone to run a full node.  This waterfall benefit makes Bitcoin even more accessible, decentralized, and secure .
Disadvantages of UTXO Consolidation The disadvantages of UTXO consolidation are relatively insignificant including short term network fees and a loss of privacy if you don’t have a strategy in place. You either pay now to consolidate or later when you transact.  If network fees reduce over time, paying to consolidate now could be a disadvantage to the future unknown. Over a long time horizon, fees will likely increase.  The key to overcoming the disadvantage of current network fees is to set a target fee that you’re willing to pay based on the 30/60/90/180/365 day moving average of fee rates.   Privacy is the most overlooked disadvantage for consolidating Bitcoin UTXOs.   Dusting is a tactic used by hackers AND marketers to send small amounts of crypto to addresses with the goal of getting the dust UTXOs batched or consolidated in a transaction. Read this post on mitigating Bitcoin dusting attacks for more information. Can you imagine paying a bill and having your bank account balance displayed to the vendor? The major risk for consolidating UTXOs is not too dissimilar.  If you inadvertently connect a bunch of previously unconnected transactions and their respective outputs you could expose your identity and the total amount of your stack.   UXTO Consolidation and Privacy Sticking with our previous example, let’s assume you have accumulated 10 BTC over the years, congrats! Your exchange recurring buys, mining at home, and consulting on the side created 3 sources of Bitcoin.   If you were smart, you generated a new address every time you received Bitcoin.  You run the risk of outsmarting yourself if you have too many addresses and no metadata describing them stored in your wallet’s interface, on a spreadsheet, or written down. If you consolidate ALL of your accumulated UTXOs into one UTXO, the next time you transact with someone, they will be able to see the transaction input was a 10 BTC unspent UTXO.   Even though the United States no longer issues bills in $500 or $1,000 denominations, those notes are still considered legal tender. In theory, you could walk into a store and purchase a pack of gum with a $1,000 bill if you had one.  But, you never would.  This logic is no different than spending a 10 BTC UTXO in a small transaction or conversion to fiat. You’re basically telling the recipient or anyone with a blockchain explorer tool how much Bitcoin you have and the source of origination.   At the very least, make sure that you consolidate Bitcoin from each different source into different wallets and keep them segregated ideally with varying amounts. Pro Tip: If you are a wholecoiner are consolidating UTXOs when you perceive fees to be low, consider splitting up your wallet transfers into smaller, more conspicuous amounts.  Any Donnie Brasco fans out there will remember Pacino showing Depp how a wiseguy carries a roll of money, “Always put a beaner on top.”   When it comes to spending Bitcoin, you don’t necessarily want to flash your 10 BTC UTXO to the recipient when you could use a 0.25 BTC UTXO to make the (0.015 BTC) transaction.  Best Practices for UTXO Management UTXO Management is seldom discussed and a topic I struggled with early on.   You need to have a process in place to ensure you aren’t making a hasty, irreversible decision which can create significant financial (fees), security and privacy vulnerabilities. Even though UTXO consolidation is as simple as generating a new address (same or different wallet) and creating a low priority (fee) transaction to “send Max” or “sweep” your Bitcoin balance to the new address…it’s still a component of a broader UTXO management strategy. We thoroughly researched this topic and drew from personal experience to produce our definitive list of best practices for UTXO management.   (ps – if you have something to add to the list please email us at hello@stratus.io)
  1. Grab a piece of paper and conduct a quick audit of your Bitcoin Wallets (and accounts).
    • This includes exchanges (Coinbase), online wallets (MetaMask), mobile wallets (Trust), desktop wallets (Electrum), and hardware wallet devices (Ledger).
  1. Access each wallet (ideally w/ a VPN), one by one, making a note of the following:
    • Was I able to login/access ‘x’ wallet and (if applicable) do I have the recovery seed, pin, passphrase, code etc backed up and secured OFFLINE?
    • Note your total wallet balance which is the market value of the aggregated amount of Bitcoin assigned to each wallet address.
    • Provide this list to your estate planning lawyers when setting up a trust to ensure your Bitcoin transfers when you die.  
    • Do you have multiple accounts within the same wallet?
    • Do you have meta descriptions for each sub-account and each address noting the source of the funds (exchange/P2P) and/or a summary of the transaction?
    • Which addresses have received Bitcoin from more than one transaction?
      • Has a reused address received Bitcoin from different sources?
      • Has a reused address received Bitcoin from different senders?
      • Have you sent Bitcoin from a reused address to another address?
      • Have any of the addresses that transacted with the re-used addresses transacted with any other Bitcoin addresses you control?
        • *Note: If you answered ‘yes’ to the previous four questions you have a privacy and security vulnerability.  All re-used addresses and any other addresses you control that transacted with these addresses are potential privacy vulnerabilities because they are now associated on the blockchain exposed to anyone with a block explorer who can connect the dots.
        • Make an offline note or add a meta description to clearly identify the commingled addresses including the other impacted wallets that you control.
          • These addresses are perfectly fine to transact with but we want to draw a line in the sand making sure they are completely isolated from your other addresses now and in the future to maintain maximum personal privacy.  
  1. Verify how many UTXOs you have in your wallet(s).  This is called your UTXO Count. 
    • Count the total number UTXOs in your wallet.
    • How many are clean UTXOs?
    • How many exposed UTXOs?
    • How many UTXOs are leftover dust from a transaction?
    • How many UTXOs are random dust sent to your wallet? (Note: if you find any UTXOs you don’t recognize, make sure you isolate, freeze, archive and report.) 
Some wallets, like Electrum, have an easy to find itemization of your UTXOs.  Other wallets may not be as user friendly and you’ll have to search each address on a blockchain explorer and manually count the number of outputs.  
  1. Determine the amount of Bitcoin for each UTXO output and the destination address.
    • 312 UTXOs totalling 10 BTC could be split into 5 (optimal) – 10 UTXOs of varying amounts within the same wallet.  For example:
      • (10 UTXOs each = 1 BTC) 
      • (1 UTXO = 2 BTC, 2 UTXOs = 0.5 BTC each, 7 UTXOs = 1 BTC each) 
      • (1 UTXO = 5 BTC, 2 UTXOs = 1 BTC each, 1 UTXO = 0.07 BTC, 1 UTXO = 0.3 BTC) 
      • Consider how you may spend these in the future and how much you’re willing to disclose to the recipient since they can see input’s value and the change output.  
      • If you’re switching wallet providers or closing an account use the ‘send max’ or ‘sweep’ option if available to make sure you don’t leave any dust behind.  
  1. Identify and label 15-20 UTXOs max to consolidate at a time in a single transaction.
    • These UTXO clusters should include UTXOs that add up to the target output amounts you identified in the previous step. 
    • Confirm that the UTXOs selected are clean and not exposed due to reusing addresses.  Avoid including dust UTXOs unless you manually confirm their safety to avoid falling victim to a dusting attack.
  1. Generate a new address for each UTXO cluster to receive the output of the consolidation transaction.  Use the most current, efficient and compatible output type like P2WPKH or P2TR to increase privacy while saving up to 38% on network fees.
    • An optional passphrase creates a public address for each group of UTXOs as part of your strategy.  This is an advanced strategy and requires safeguarding the passphrases if you need to recover a specific wallet.  
    • Note: if you’re transferring from a Legacy address to a more current format, limit your inputs to 3 max to reduce the risk of delays or errors due to incompatibility. 
    • If you’re consolidating to a multi-sig wallet, pre-consolidate your UTXOs to a new address first.  On confirmation, send the consolidated UTXO to your multi-sig.
  1. Considerations for optimizing Network Fees:
    • Check current network fees on mempool and compare current fee rate with previous rates to determine if you should consolidate now or wait.
    • Weekends can be less congested and better for low priority transactions.
  1. Now you can create a transaction in your wallet to consolidate UTXOs.
    • Select 15-20 clean UTXOs from your wallet.
    • Verify the receiving address is correct before adding it to the transaction.
    • Pro Tip: Even after you paste it into transaction field, verify the transaction. You could have a virus hiding on your computer waiting until an address starting with bc1 is copied so it can replaces the destination address with the attacker’s Bitcoin address.
    • Set the network fee to ‘low priority’ or enter a specific number of sats/vByte based on the current lowest minimum rates you see on the mempool. 
    • Note: If you’re new here, consider sending 1 of the smaller UTXOs from your batch to test that the transaction completed.  Sending 1 UTXO at a time to a new address is NOT consolidation.  Multiple UTXOs must be added as inputs for the same transaction to produce a single output.
  1. Traders and Dollar Cost Averagers should preemptively consider their withdrawal frequency.  Resisting the urge to transfer out every day or even once per week will result in less UTXOs and less fees in the long run but must be compared with custodial risk.
    • Monthly transfers, for example, result in 12 UTXOs annually
    • Fixed amount transfers or thresholds are another way to reduce your UTXO count.  For example, delay transfers until you have accumulated 0.1 BTC.  Ultimately this is your decision to make.  DYOR
UTXOs on an Exchange vs. Cold Storage Bitcoin bought and held on an exchange remains in a ‘pool’ until you transfer off exchange into self-custody.  It’s similar to how banks work, specifically the difference in using a bank vs. a piggy bank is similar to an exchange vs cold storage device.  Here’s an example: Bank Deposit Let’s say you have $500 cash to deposit with your bank.  After deposit, the teller places the 5 $100 notes into the cash drawer and the bank pools your money with all of the other deposits.  Your 5 $100 bills are not reserved specifically for you.   The guy standing in line behind you may request to withdraw $500, and the teller could give them the notes you just deposited.  Your $500 is credited to your balance and an IOU is displayed as the total sum of your account balance. When you choose to withdraw $500, you receive 5 different $100 bills.   Piggy Bank Deposit This time, instead of depositing your 5 C-notes at the bank let’s slide them into your piggy bank.  When you’re ready to spend your saved $500, you simply open the piggy bank and pocket the same 5 $100 bills.   On-Exchange Custody When you purchase Bitcoin, your exchange holds your crypto in their custody.  If you DCA with a weekly buy, at the end of the year you DO NOT have 52 UTXOs on exchange.  The exchange keeps a transaction record (for tax purposes) but a UTXO is only created for each withdrawal to an off-exchange wallet because you are not ‘spending’ the same UTXO created when you purchased the BTC.  Similar to a bank, your Bitcoin is pooled together with everyone else and your account has an IOU from the exchange reflecting your balance.   Self Custody Wallet If you had a weekly withdrawal schedule from the exchange, then at the end of the year you would have 52 UTXOs (1 UTXO for each withdrawal) in your cold wallet.  You are a prime candidate for UTXO consolidation.  Even if you withdraw once per month, consolidating 12 UTXOs into 3 is going to save on fees down the road.   Banks and Exchanges manage customer deposits similarly.  Whereas piggy banks and self-custodial hardware wallets store your deposits physically which is the essence of self-custody.   How do I Consolidate UTXOs on Ledger Live? Let’s say you have private keys for Bitcoin (BTC) saved to your Ledger cold storage device.
  1. Open Ledger live and select the BTC ACCOUNT that has your UTXOs
  2. Go to ‘Receive’ tab and generate one (1) ‘receive’ address’ COPY THIS ADDRESS
  3. Open the ‘Send’ tab to select the address (from step 2) which will ‘receive’ the BTC.
  4. Select specific UTXOs using manual coin selection also called ‘coin control’ feature you want to send to the new address.  You can repeat this process if you want to send varying quantities to the same or a different address.
  5. Enter the fee rate.  Consolidations should have the LOWEST possible fee rate because it’s ok if the transaction sits in the mempool.  1 sat/vByte used to be common practice.  In a high fee environment, you may have to pay more like 5-10 sat/vByte.  Be patient.
  6. Once you confirm the correct receiving address and amount, Press Send.
  7. Confirm the transaction on your Ledger device with your PIN then check Ledger Live.
How do I Consolidate UTXOs on Coinbase? Short answer: you can’t.   Remember, the Exchange balance that you see when you login references your trade confirmations and liability for the exchange to pay out from their treasury.    These confirmations are IOUs, not UTXOs.  The CEX has an obligation to execute a transaction off-exchange which does not consume a UTXO input that Coinbase unlocks and on confirmation, the transaction locks one UTXO to your address.   Pro Tip: An exchange withdrawal to an external wallet of more than 0.5 BTC should be split up into varying sizes with delays between each transfer to increase your privacy.   If you have 1 BTC on exchange to withdraw here’s an example plan of action: 
  • Generate 4 new unique addresses from your wallet.
  • 08:00am: Send 0.01 BTC to new address 1 as a test (wait for 6 confirmations)
  • 12:00pm: Send 0.5 BTC to new address 2 (wait for 6 confirmations)
  • 2:00pm:  Send 0.25 BTC to new address 3
  • 10:00pm: Send 0.24 BTC to new address 4 which completes your 1 BTC total transfer resulting in 4 UTXOs locked to your public key/public key hash/script hash.
Adjusting network fees when transferring BTC from a Coinbase account is not an option unless you’re using a Coinbase Wallet to customize the network fee but you still need to pay network fees to transfer crypto from Coinbase to the Coinbase Wallet.   If you’re uncomfortable keeping your Bitcoin on Coinbase, create a plan to withdraw at regular intervals but try to adjust timing and always use a fresh address to receive.    —In Summary— You can clean up your wallet’s UTXO count by sending batches of Bitcoin to a different address that you manage.  This is UTXO consolidation. Regularly consolidating these UTXOs by sending smaller transactions to a secondary wallet address can preserve wealth, save on future fees, and help you transact more efficiently. The riskiest position presently is having A LOT of transaction’s of smaller denominations (under $10, under $25, under $50).   Don’t just take our word for it.  The unofficial recommendation from the r/bitcoin community is transferring 0.01 BTC at a minimum (1 million sats) to avoid getting crushed on fees or ending up with Bitcoin dust.   Given the current market conditions, if you’re transferring BTC from an exchange to your cold wallet (Bitbox02, Trezor, Jade, Coldcard) check out the math and consider the marginal cost of transacting with Bitcoin.   It’s all relative and you’re welcome to reach out to us with any questions (team@stratus.io) 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. The post How to Consolidate UTXO Guide & Best Practices first appeared on Stratus Crypto.