Glossary

Change Output

The UTXO returned to the sender when a Bitcoin transaction spends more than the payment amount, like getting change from cash.

Key Takeaways

  • A change output is the UTXO returned to the sender when a Bitcoin transaction consumes more value than the payment requires, functioning like receiving change after paying with a larger bill.
  • Change outputs are a major privacy concern: chain analysts use heuristics like round amount detection and address type matching to identify which output is the payment and which is the change, enabling chain analysis to trace spending patterns across transactions.
  • Using coin control, matching address types, and avoiding round payment amounts are practical ways to reduce the information change outputs reveal about your wallet.

What Is a Change Output?

A change output is the portion of a Bitcoin transaction that sends unspent funds back to the sender. Because Bitcoin uses the UTXO model, individual UTXOs cannot be partially spent. When a transaction consumes a UTXO, the entire value must be accounted for: part goes to the recipient, part goes to the miner as a fee, and any remainder returns to the sender as a new UTXO called the change output.

The concept mirrors physical cash. If you hold a $20 bill and owe someone $12, you hand over the entire $20 and receive $8 back. UTXOs work the same way: the full UTXO is consumed as an input, and the difference (minus transaction fees) comes back as change. Unlike cash, however, every change output is permanently recorded on the blockchain, creating a traceable link between transactions.

How It Works

Every Bitcoin transaction follows a simple accounting rule: the total value of inputs must equal the total value of outputs plus the transaction fee. Change outputs exist to satisfy this rule whenever the selected inputs exceed the payment amount.

  1. Your wallet scans its UTXO set and selects one or more UTXOs as transaction inputs
  2. It creates a payment output sending the desired amount to the recipient
  3. It calculates the remaining balance after subtracting the payment and the transaction fee
  4. If any value remains, it creates a change output sending those funds to an address controlled by your wallet
  5. The transaction is signed, broadcast, and once confirmed, your wallet now controls the new change UTXO instead of the original inputs

A Concrete Example

Suppose your wallet holds two UTXOs: one worth 0.6 BTC and another worth 0.5 BTC. You want to pay someone 0.7 BTC.

Inputs:
  UTXO A: 0.6 BTC
  UTXO B: 0.5 BTC
  Total:  1.1 BTC

Outputs:
  Payment:  0.70000000 BTC  (to recipient)
  Change:   0.39990000 BTC  (back to your wallet)
  Fee:      0.00010000 BTC  (to miner)
  Total:    1.10000000 BTC

Your wallet consumed both UTXOs entirely and created two new UTXOs: one for the recipient and one returning the surplus to you. The original UTXOs no longer exist in the UTXO set.

Changeless Transactions

If the selected inputs happen to exactly match the payment amount plus fees, no change output is needed. Modern wallet software like Bitcoin Core uses a coin selection algorithm called Branch and Bound (BnB) that specifically searches for input combinations that avoid creating change. Eliminating the change output saves transaction fees (fewer bytes to write) and improves privacy by removing a data point analysts can use.

Change Address Derivation

Wallets built on the HD wallet standard derive change addresses from a dedicated internal keychain. The BIP 44 family of derivation paths separates receiving and change addresses using an index in the path:

m / purpose' / coin_type' / account' / change / index

change = 0  →  External chain (receiving addresses)
change = 1  →  Internal chain (change addresses)

Examples:
  m/84'/0'/0'/1/0   First native SegWit change address
  m/86'/0'/0'/1/0   First Taproot change address
  m/86'/0'/0'/1/1   Second Taproot change address

A fresh change address is generated for every transaction. This prevents address reuse, which would make it trivial for anyone to track your entire spending history by watching a single address.

Change Detection Heuristics

Although change addresses are separate from receiving addresses, the blockchain records every output publicly. Chain analysis firms use several heuristics to determine which output in a transaction is the payment and which is the change:

Round Amount Heuristic

If a transaction produces outputs of 0.8 BTC and 0.31838477 BTC, the round amount is likely the payment and the irregular amount is the change. This also applies to fiat-round amounts: an output that converts to exactly $500 USD at the current exchange rate is probably a deliberate payment, not leftover change.

Address Type Matching

Wallets typically use a consistent address format. If all inputs and one output share the same type (for example, P2WPKH) but the other output uses a different format (like P2PKH), the matching output is likely change. The mismatched output is assumed to be the payment, since recipients often use different wallet software.

Fresh Address Heuristic

If one output goes to an address that has never appeared on the blockchain before, it is likely a change address. Wallets generate fresh change addresses for each transaction, while payment addresses often have prior history from being shared or published.

Common Input Ownership

All inputs in a standard transaction are assumed to belong to the same entity. Combined with change detection, this lets analysts cluster addresses into wallet profiles and map out an entity's full transaction graph across the blockchain.

Wallet Fingerprinting

Beyond output analysis, wallet software leaves identifiable traces in transactions: input/output ordering conventions, fee estimation strategies, version fields, locktime values, and whether replace-by-fee is signaled. These fingerprints narrow down which software created the transaction, further aiding change identification.

Privacy Best Practices

Change outputs are one of the biggest privacy leaks in Bitcoin. Each heuristic on its own may be unreliable, but combined they give analysts high confidence in tracing funds. Several techniques can reduce the information your change outputs reveal.

Coin Control

Coin control lets you manually select which UTXOs to include as transaction inputs. This prevents your wallet from automatically combining UTXOs from different sources (for example, mixing a UTXO received from a KYC exchange with one from a private sale). Wallets like Bitcoin Core, Sparrow, and Electrum all support coin control.

Match Address Types

Use the same address format for all outputs in a transaction to defeat the script type heuristic. If your wallet uses P2TR (Taproot) addresses, ensure the change address is also P2TR. As Taproot adoption grows, the uniform bc1p address format makes all outputs look identical regardless of the underlying spending conditions.

Avoid Round Amounts

When sending payments, avoid amounts that are round numbers in BTC or their fiat equivalent. A payment of 0.04817293 BTC is harder to distinguish from the change output than a payment of exactly 0.05 BTC.

Eliminate Change Entirely

The most effective privacy technique is to avoid creating change at all. Select UTXOs whose combined value closely matches the payment plus fees. Bitcoin Core's Branch and Bound algorithm attempts this automatically. When it succeeds, the transaction has only payment outputs and no change to analyze.

PayJoin

PayJoin transactions include inputs from both the sender and the receiver. This breaks the common input ownership assumption because the inputs no longer belong to a single entity. PayJoin transactions look identical to normal transactions on the blockchain, making them effective even when only used occasionally.

Use Cases

Standard Payments

Nearly every Bitcoin transaction creates a change output. When you buy goods, send funds to another wallet, or pay for services, your wallet automatically handles change creation and returns the surplus to a fresh address you control.

UTXO Consolidation

UTXO consolidation deliberately combines many small UTXOs into a single larger one during low-fee periods. The resulting transaction has many inputs and a single output (all change, no payment). This reduces future transaction costs because spending fewer inputs requires less block space, measured in virtual bytes.

Fee Management

Change outputs interact directly with fee estimation. Adding a change output increases the transaction size, which increases the fee. If the change amount is very small (below the dust limit of 546 satoshis for legacy outputs or 294 satoshis for SegWit outputs), the wallet typically adds it to the miner fee instead of creating a dust UTXO that would cost more to spend than it is worth.

Risks and Considerations

Privacy Degradation

Change outputs create a traceable chain of linked transactions. Each time you spend a change UTXO, it connects the current transaction to the previous one. Over time, this chain reveals spending patterns, frequency, and approximate wallet balance to anyone watching the blockchain. For a deeper analysis, see the Lightning Network privacy analysis which covers how on-chain transaction patterns affect overall privacy.

UTXO Bloat

Every change output adds a new entry to the global UTXO set that every full node must store. Billions of transactions over Bitcoin's history have created a growing UTXO set. Changeless transactions help reduce this bloat because they consume inputs without creating additional UTXOs beyond the payment itself.

Transaction Cost Overhead

A change output adds roughly 31 vBytes (for a P2WPKH output) to the transaction size. At high fee rates, this overhead becomes significant. Bitcoin Core's CoinGrinder algorithm, introduced in version 27.0, specifically minimizes input set weight at high fee rates to reduce total transaction cost, though it still creates change outputs. For background on how fees work, see the Bitcoin fee market dynamics deep dive.

Dust Change

When change amounts fall below the dust threshold, they are absorbed into the miner fee. This means you lose those satoshis rather than recovering them. While each individual loss is tiny, frequent transactions with near-exact UTXO matches can accumulate meaningful dust losses over time.

How Layer 2 Solutions Address the Change Problem

The change output problem is fundamentally tied to the UTXO model on Bitcoin's base layer. Layer 2 solutions and off-chain protocols can sidestep it entirely.

Spark, for example, enables Bitcoin and stablecoin transfers without creating on-chain UTXOs for every payment. Because transactions settle off-chain, there is no need to select inputs, create change outputs, or worry about change detection heuristics. Users can send exact amounts without leftover change, eliminating both the privacy leaks and the fee overhead that change outputs introduce on Layer 1. For a broader comparison of the UTXO model and its alternatives, see the UTXO model vs. account model research article.

This glossary entry is for informational purposes only and does not constitute financial or investment advice. Always do your own research before using any protocol or technology.