Learn

|

Custody

What is a UTXO?

Unspent transaction outputs are discrete portions of bitcoin

UTXO stands for Unspent Transaction Output, and is the technical term for a discrete portion of bitcoin. Put simply, your UTXOs are your bitcoin that you’ve received, but not yet spent.

Amounts of bitcoin exist as records of transactions on the Bitcoin blockchain. Owning bitcoin means that there’s a transaction on the blockchain to an address for which you control the private keys. That record of an amount of bitcoin is called a UTXO.

The way Bitcoin works is that transactions have inputs and outputs. When a transaction is made, the sender specifies one or more inputs and one or more outputs, which can be of any amount, ranging from fractions of a bitcoin to multiple whole bitcoin:

  • Input(s): An input in a bitcoin transaction references a previous unspent transaction output (UTXO) and is used to fund the new transaction. It includes the previous transaction’s ID, the specific output being spent, and a signature to prove ownership.
  • Output(s): An output in a bitcoin transaction specifies the recipient of the bitcoin and the amount to be transferred, which can be an address controlled by the sender.

When a UTXO is spent as an input, it’s destroyed, and one or more UTXOs are created as the output. The one exception to this input-output system is the first transaction in each block, called the “coinbase.” The coinbase transaction has no input since it is newly issued bitcoin entering circulation as a reward to the miner, according to the strict supply schedule.

You can look at any given block on the blockchain for yourself and find the assorted transactions, each with one or more inputs and outputs, alongside the inputless coinbase. The network of nodes running Bitcoin’s software maintains a record of all UTXOs, known as the “UTXO set,” which represents all valid coins in the system.

Comparison with the account model

This UTXO model is different from the “Account model” used by banks. In the Account model, balances are tracked as single figures that are adjusted with each transaction, while the UTXO model treats each transaction output as a discrete, spendable unit.

  • Account model: Balances are updated by debiting and crediting accounts, similar to how banks manage cash balances. When you deposit or withdraw any amount, your balance will adjust accordingly.
  • UTXO model: Each transaction output is like a separate piece of physical cash (paper notes and metal coins). When you make a payment, you must select specific notes or coins to use. As part of the transaction, you might receive change in return, which are new notes or coins in your wallet.

A key difference to this physical cash analogy is that the recipient of a bitcoin payment receives it as a unified UTXO, not as an assortment that matches the inputs. Overall, what this means is that your bitcoin holdings are simply a collection of outputs from previous transactions that you haven’t yet spent, hence “Unspent Transaction Outputs” or UTXOs.

Understanding UTXOs and fees

When you make a transaction on the Bitcoin blockchain, you need to pay a transaction fee (aka on-chain fee) to get it added to a block and be “confirmed.” Transaction fees are paid to the miner who adds the block and offers an incentive to get transactions confirmed sooner.

In any given transaction, the fee amount is simply the difference in amounts between the inputs and outputs. If the total amount of the inputs is 1 bitcoin, and the total amount of the outputs is 0.99 bitcoin, then the fee payable to the miner is 0.01 bitcoin.

Bitcoin blocks have a limited amount of space and are only added on average every 10 minutes. This ensures the entire blockchain remains small enough to be downloaded and verified on an average laptop computer, helping Bitcoin stay decentralized by keeping participation open to all. Fees are therefore based on the amount of data a transaction requires, rather than its financial value. Transactions that occupy more bytes of data, such as those with many inputs and outputs, pay more in fees, since they’re using more of the scarce resource of block space.

Fees and UTXO sizes

Fees are measured in satoshis per virtual byte (aka “sats/vbyte”). Since the market for fees is free and open, anyone can include any amount of fee for their transaction, and miners can select which transactions to include in a block. Fees can be competitively bid up, especially during periods of high network traffic. Higher fees means it’s more expensive to have your transaction added to the blockchain, even for transactions with a single input and output, since each input and output incur a cost based on the bytes of data they require.

This becomes a problem for low-value UTXOs.

When fees are high, using a low-value UTXO as an input can become uneconomical, since the fee cost to include that UTXO could be a significant percentage of its value – as in you might end up spending half of the UTXO’s value just on fees. What’s more, if the cost of including a specific UTXO as an input surpasses its value, it effectively becomes unspendable. Such low-value UTXOs, which cost more in fees to spend than they’re worth, are often referred to as “dust” – they’re lost.

For example, a single input could require between 57.5 vbytes for a Taproot transaction to 148 vbytes for standard P2PKH transaction (or more for complex transactions like multi-sig), so if fee rates were to reach 200 sats/vbyte, the following UTXO sizes or smaller would become unspendable, depending on the transaction type:

  • 57.5 vbytes * 200 sats/vbyte = 11,500 satoshis UTXO
  • 148 vbytes * 200 sats/vbyte = 29,600 satoshis UTXO

What this means is that as fees rise, smaller UTXOs can become uneconomical or even unspendable. UTXOs worth thouands, tens of thouands, or even low hundreds of thouands of sats might cost a third, half, or even their entire value in fees to add to the blockchain. In the long term, fees are expected to rise with increased Bitcoin adoption, as more individuals, businesses, apps, and even governments begin to transact on-chain. When self-custodying your bitcoin, you need to plan accordingly to manage your UTXOs effectively.

How to manage your UTXOs

Using an app like Strike to custody your bitcoin is a way to delegate UTXO management, including the selection of inputs and the setting of fee rates to process your transactions economically. With Strike, you can buy as little as $0.01 of bitcoin either as a one-time purchase or through dollar cost averaging (DCA) via recurring purchase, without affecting UTXOs, since the purchases aren't recorded on the blockchain. However, when you make an on-chain transaction, like sending bitcoin to your own custody, you'll need to manage your UTXOs, as your bitcoin purchases on Strike will be combined into a single UTXO sent to your chosen Bitcoin address.

When you’re ready to take self-custody of your bitcoin, managing your UTXOs becomes crucial and requires that you consider a number of factors, suchas fee rates, privacy, and the economic viability of your future transactions.

Below are some UTXO management best practices to follow:

  • Not too small: Keep your UTXO’s at least around 1 million satoshis (0.01 bitcoin), to ensure they remain economically viable, even as fees rise. UTXOs as low as 10,000’s or even 100,000’s satoshis may become uneconomical or unspendable in high-fee environments.
  • Not too big: Avoid having all your bitcoin in a single large UTXO. Using a large UTXO as an input in a future transaction can reveal your holdings to your recipient, as they can see which UTXO was used as an input and where the change was sent, potentially affecting your privacy.
  • Diversify your UTXO sizes: If possible, maintain a mix of UTXO sizes, to give yourself options when selecting appropriately sized inputs for future transactions.
  • Segregate UTXOs: Keep UTXOs from different sources separate, including any non-kyc sources, to maintain privacy and prevent traceability by transaction recipients.
  • Time your sends: Monitor fee rates and aim to send transactions when fees are relatively low, but avoid waiting too long as your desired fee rate may not materialize.
  • Avoid reusing addresses: To promote privacy and avoid traceability by your recipients, use a new Bitcoin address each time you transact on-chain.
  • Consolidate when fees are low: Use periods of low fees to combine smaller UTXOs as inputs into larger outputs to ensure future economic viability.
  • Be wary of fee spikes: Sudden increases in fees may be temporary and could subside within hours or days. For non-urgent transactions, waiting might be wise, though long-term fees are expected to rise with increased Bitcoin adoption.
  • Use Lightning: For small transactions, use the Lightning Network. Lightning enables real bitcoin transactions, without recording each one on the blockchain, avoiding on-chain fees and wait times. Transactions on Lightning are instant and low-to-no cost, allowing you to send even single satoshis to friends or your own Lightning wallet.

For a more in-depth explanation of UTXO management and best practices, read this article.

By carefully managing your UTXOs, you can optimize your transaction costs, maintain privacy, and ensure you’re able to spend your bitcoin in the future the way you want, regardless of future fee market conditions.

Lightning

What is the Lightning Network?

The global bitcoin payments network that’s instant, private, and low-to-no cost

Business

What is the Strike widget?

Add a “Buy bitcoin” button to your app

Bitcoin

What is the bitcoin supply schedule?

The pre-programmed pace from zero to 21 million

Markets

What is the Bitcoin halving?

The automatic reduction in Bitcoin’s supply-issuance rate

Lightning

What is a Lightning invoice?

Bitcoin payment requests within the Lightning Network

Lightning

Using Bitcoin to send money abroad

Bitcoin's Lightning Network makes global money transfers faster and cheaper

© 2024 NMLS ID 1902919 (Zap Solutions, Inc.)

Get off zero.

Strike

BitcoinAll in on bitcoinPaymentsSend GloballyBusinessAPI

Platform