A Bitcoin wallet balance is not one account value stored on the network. It is the total of separate unspent transaction outputs, usually shortened to UTXOs, that the wallet can authorise for spending.
When you make a payment, the wallet chooses one or more UTXOs as inputs. Each selected output is spent in full. The new transaction then creates new outputs: one for the recipient and, when the selected inputs exceed the payment plus the fee, one that returns the remainder as change.
A UTXO is a spendable output
Every Bitcoin transaction has at least one input and one output. An input points to a previous transaction output and supplies the data needed to satisfy that output’s spending conditions.
The Bitcoin developer guide describes an output as waiting in the UTXO set until a later input spends it. If a wallet shows a balance of 100,000 satoshis, the amount may come from one 100,000-satoshi UTXO, ten 10,000-satoshi UTXOs or many outputs of different sizes.
The network does not merge those outputs just because the same wallet controls them. They remain separate until a later transaction spends them.
Each UTXO is identified by:
- the transaction ID that created it;
- the output index inside that transaction, often called the vout;
- an amount in satoshis;
- a locking script that defines the condition for spending it.
A wallet tracks outputs it can spend by finding scripts associated with its keys or descriptors.
Inputs spend outputs whole
Suppose a wallet controls three UTXOs:
| UTXO | Value |
|---|---|
| A | 30,000 sats |
| B | 55,000 sats |
| C | 90,000 sats |
The user wants to pay 70,000 sats and the wallet estimates a 2,000-sat fee. If the wallet selects A and B, the inputs total 85,000 sats. The transaction can create a 70,000-sat payment output and a 13,000-sat change output.
85,000 inputs − 70,000 payment − 2,000 fee = 13,000 change
UTXO A and B no longer exist as unspent outputs after confirmation. The recipient’s 70,000-sat output and the wallet’s 13,000-sat change output are new UTXOs. UTXO C remains untouched.
A wallet does not “take 15,000 sats from B” and leave the rest in the old output. Spending an output consumes it. Any remainder must appear in a new output, or it becomes part of the transaction fee.
Change is a new payment back to the wallet
A change output looks like an ordinary Bitcoin output. It is normally sent to a fresh address controlled by the same wallet.
This matters for privacy. Reusing one visible address makes it easier for an observer to link payments and follow later activity. A fresh change address does not make the transaction private, but it avoids a simple form of address reuse.
Wallet interfaces often hide change from the user. A block explorer may show two outputs without labelling which one is the payment and which one is change. An outside observer can make guesses, but the transaction format itself does not include a “change” flag.
If selected inputs match the target closely enough, a wallet may create no change output. Whether that is efficient depends on the cost of creating and later spending change.
Coin selection changes fees
Bitcoin fees depend mainly on transaction weight and the chosen fee rate, not on the face value sent. Each additional input adds data that must be included and signed. A wallet that needs five small UTXOs can therefore produce a larger transaction than a wallet that can fund the same payment with one large UTXO.
That is why two wallets sending the same amount at the same fee rate can pay different fees.
Read Does a Bitcoin Fee Depend on the Amount Sent? for the transaction-size calculation. The UTXO view explains where the size difference comes from: more selected inputs usually mean more weight.
Coin selection is the wallet’s process for choosing which outputs to spend. Bitcoin Core’s wallet implementation includes multiple selection approaches. Its Branch and Bound algorithm searches for an input set close enough to the target that it may avoid creating change. The implementation evaluates “waste” using current and expected long-term fee costs as well as excess value.
The wallet also has to respect practical constraints:
- the selected inputs must cover the payment and fee;
- inputs with very low value may cost more to spend than they contribute at a high fee rate;
- a large number of inputs can make the transaction too heavy;
- some selections expose more links between previously separate payments;
- avoiding change now may be better than creating an output that costs more to spend later.
Different wallets can make different choices from the same UTXO set.
Small outputs can become uneconomical
A small UTXO is not automatically unspendable. Its usefulness depends on the fee rate and the weight required to spend it.
If spending an output adds 68 virtual bytes and the fee rate is 20 sat/vB, that input contributes about 1,360 sats to the fee. A UTXO worth less than or only slightly more than that may have little effective value at that fee rate. The exact input weight depends on the script type, so this is an illustration rather than a universal threshold.
At a lower fee rate, the same output may be economical. Wallets sometimes consolidate small UTXOs when fees are low, but consolidation has trade-offs: it can link previously separate outputs and creates an on-chain transaction of its own.
Do not consolidate merely because a wallet displays many outputs. The fee, privacy effect and future spending needs all matter.
One balance can contain different histories
Each UTXO came from a particular previous transaction. A wallet may therefore contain outputs from salary, an exchange withdrawal, a refund and a private payment at the same time.
Selecting several of them as inputs in one transaction reveals that one spender could authorise all of those outputs. This is the common-input-ownership heuristic. It is a useful clue for chain analysis, but it is not proof in every case because collaborative transactions can have inputs from multiple participants.
A privacy-aware wallet may offer coin control so the user can select specific UTXOs or avoid combining them. Manual control also creates risk: selecting too little, choosing low-value outputs at a high fee rate or misunderstanding change can make a payment more expensive or less private.
Confirmations create the next set of outputs
Before confirmation, a transaction’s outputs may be treated as unconfirmed UTXOs by wallets that allow spending unconfirmed change. That creates a dependency: the child transaction depends on the parent being accepted.
If the parent fee is too low, a recipient or spender may use a fee-bumping technique. Child Pays for Parent explains how a higher-fee child transaction can make miners consider the package.
After confirmation, nodes update the UTXO set: they remove the outputs spent by the transaction’s inputs and add the newly created outputs. The full transaction history remains in the blockchain, while the UTXO set is the smaller working view of what can still be spent.
A practical wallet checklist
Before sending:
- Review the fee rate and estimated fee, not only the amount.
- Check whether the wallet is using many inputs.
- Confirm that the destination and amount are correct.
- Let the wallet generate a fresh change address unless you understand the alternative.
- Use coin control only when you understand the fee and privacy effects.
- Avoid treating a block explorer’s change guess as a guaranteed fact.
For most users, automatic coin selection is appropriate. Understanding UTXOs is still useful because it explains why fees change, why a wallet may show several coins behind one balance and why a transaction often has an unfamiliar output back to the sender.





