Skip to main content

Output | Bitcoin Glossary | Mapping Bitcoin

Output

Protocol

Also known as: transaction output, txout

A transaction component in Bitcoin defining an amount and a locking script. Unspent outputs (UTXOs) collectively represent all current bitcoin ownership.

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.