Overview
A transaction output is one of the fundamental components of a Bitcoin transaction. Each output specifies two things: an amount of bitcoin (denominated in satoshis) and a locking script (scriptPubKey) that defines the conditions under which those funds can be spent. Once created, an output exists as a UTXO (Unspent Transaction Output) until it is consumed as an input in a future transaction.
Output Structure
Transaction Output:
┌─────────────────────────────────────┐
│ Value: 50,000 satoshis (0.0005 BTC)│
│ │
│ Locking Script (scriptPubKey): │
│ OP_DUP OP_HASH160 │
│ <pubkey_hash> │
│ OP_EQUALVERIFY OP_CHECKSIG │
└─────────────────────────────────────┘
A transaction can have multiple outputs:
Output 0: 0.5 BTC → Recipient
Output 1: 0.3 BTC → Change back to sender
(Remaining: 0.001 BTC implied fee)
Outputs and the UTXO Set
The set of all unspent transaction outputs at any given time — known as the UTXO set — represents the complete state of bitcoin ownership. Unlike account-based systems, there are no "balances" in Bitcoin. Instead, a wallet's balance is the sum of all UTXOs it can spend.
Change Outputs
When spending a UTXO that contains more bitcoin than the intended payment, the sender must create a change output that returns the excess to themselves (minus the transaction fee). Failing to include a change output would result in the difference being entirely consumed as a miner fee.
Input: 1.0 BTC (from a previous output)
Output 0: 0.3 BTC → Recipient
Output 1: 0.6999 BTC → Change (back to sender)
Fee: 0.0001 BTC (implicit: input - outputs)
Common Misconceptions
A common mistake is conflating outputs with addresses. An address is simply a human-readable encoding of the locking script conditions. Multiple outputs can use the same address (though this is discouraged for privacy). Also, the transaction fee is not an explicit output — it is the implicit difference between total inputs and total outputs.