Overview
On UTXO chains, funds are not tracked as a single balance. Instead, every amount you own exists as a separate, discrete unit called an Unspent Transaction Output, or UTXO. Think of it like physical cash: instead of one running total, you are holding a collection of individual bills and coins, each one is either spent in full or not spent at all.
A UTXO wallet is a collection of these individual UTXOs. What you see as your "balance" is simply the sum of every UTXO your wallet currently holds. You might have received funds from five different deposits over time, and your wallet could be holding five separate UTXOs as a result, not one adjustable number.
How a transaction works
Every UTXO transaction has inputs (the UTXOs you are spending) and outputs (the new UTXOs being created).
A UTXO cannot be partially spent. If you want to send an amount, your wallet selects one or more existing UTXOs whose combined value covers it, and consumes them entirely.
Example:
- You hold two UTXOs: one worth 1 BTC, one worth 0.5 BTC.
- You want to send 1.2 BTC. Your wallet selects both UTXOs as inputs (1 + 0.5 = 1.5 BTC), since neither one by itself is enough.
- The transaction creates two new outputs:
- 1.2 BTC is sent to the recipient.
- The leftover amount (minus the network fee) is sent back to a new address you control. This leftover is called change.
- The two original UTXOs no longer exist. You are left with one new UTXO, the change, until your next deposit or transaction.
This is why a wallet can end up holding many UTXOs over time, sometimes hundreds or thousands, since every deposit and change output adds one more UTXO to the wallet.
Why UTXO count matters
The amount of UTXOs a wallet holds is not a trivial matter, since it directly affects what that wallet can do:
- A wallet with a few but properly-sized UTXOs can perform most transactions cleanly.
- A wallet with many small, fragmented UTXOs may struggle to perform the same transaction; it would cost it more in network fees to do so, or it would run into a limit of 250 UTXOs per transaction.
Network fees
On UTXO-based chains, network fees are driven by the size of the transaction in bytes, not by the amount being sent. Size scales with the number of inputs and outputs: each additional input or output adds bytes, and therefore network fees to the transaction, regardless of whether you are moving $10 or $10 million. This is why a wallet with many small UTXOs can end up paying disproportionately high network fees relative to the amount transferred, since covering the requested amount needs more inputs. It is also why consolidating a large or fragmented UTXO set (or using a selection strategy that manages this automatically) directly reduces future transaction fees, rather than simply improving the transaction’s reliability.
Fireblocks supports up to 250 UTXOs as inputs in a single transaction. If the amount you are sending cannot be covered by combining up to 250 of your available UTXOs, the transaction cannot go through until some UTXOs are consolidated into larger ones.
This is why the choice of which UTXOs to spend on any given transaction matters as much as having enough funds in the first place.
Why UTXO selection matters
The decision of which UTXOs Fireblocks selects as inputs for a given transaction carries real consequences: how much you will pay in network fees, whether the transaction will go through at all, and how healthy your wallet will stay over time.
Related articles
- Understanding UTXO Selection at Fireblocks: how Fireblocks chooses which UTXOs to spend.
- UTXO Management API: labels, filters, and explicit UTXO selection.