BitcoinMachine
TERM_DEF // TRANSACTION / SCRIPTPUBKEY
SCRIPTPUBKEY
ScriptPubKey. The script/">locking script attached to an output; defines who can spend it.

This page sits in the Transaction section — How money moves: inputs, outputs, fees, signatures, sighash flags, and the formats that wrap them. Read on for what it is, why it exists, how it works under the hood, and what to watch out for.
ScriptPubKey — at a glance
TRANSACTION
ScriptPubKey is part of how value moves on Bitcoin. The locking script attached to an output; defines who can spend it. Bitcoin does not have account balances — instead, every coin exists as a UTXO (unspent transaction output) locked by a script. Your wallet's "balance" is just the sum of UTXOs whose locks your keys can satisfy.
Why it exists
DESIGN
The UTXO model is what makes Bitcoin transactions auditable, parallel-verifiable, and resistant to replay attacks. Every input directly references a specific previous output by txid + index. There is no shared state to lock, no "account version" to clash on, no oracle to consult — each input is a self-contained spending proof, and nodes can verify thousands of them in parallel.
Mechanism
HOW IT WORKS
A transaction has one or more inputs (each pointing at a UTXO being spent) and one or more outputs (each creating a new UTXO). Inputs supply the unlocking data; outputs specify the new locks. The fee is the difference between input sum and output sum, paid to the miner who includes the tx in a block. Once mined and buried under enough confirmations, the spend is for all practical purposes irreversible — the UTXOs it consumed are gone, the ones it created are spendable.
1. Wallet selects UTXOs whose total value covers the spend amount + estimated fee (coin selection). 2. Wallet builds the transaction body: version, inputs (each with prev txid + vout + sequence), outputs (each with value + scriptPubKey), locktime. 3. Wallet computes the sighash for each input (which parts of the tx the signature commits to — controlled by the SIGHASH flag). 4. Wallet signs each input with the right private key. Witness/scriptSig is populated with the resulting signatures + pubkeys. 5. Tx is broadcast to peers. Mempool propagation: tens of seconds globally. 6. A miner includes it in a block. Confirmation count grows by 1 per block; after ~6 the tx is effectively final.
A minimal 1-input → 1-output transaction
EXAMPLE
version : 02000000 (4 bytes, little-endian) inputs : 01 (CompactSize count) prev_txid: 7b1eabe0... (32 bytes, the UTXO being spent) vout : 00000000 (which output of that tx, 4 bytes) scriptSig: empty in SegWit (witness lives elsewhere) sequence : ffffffff (4 bytes) outputs : 01 (CompactSize count) value : a086010000000000 (100,000 sats = 0.001 BTC, 8 bytes) scriptPubKey: 76a914<pubkey hash>88ac (P2PKH lock, 25 bytes) locktime : 00000000 (4 bytes) fee = sum(input values) − sum(output values) (paid to whichever miner includes this tx in a block)
ATOMIC
A transaction is either fully accepted into a block or fully rejected. There is no partial spend.
IMMUTABLE INPUTS
A UTXO can only ever be spent once. After that, it is permanently consumed.
NO BALANCES
Bitcoin tracks UTXOs, not balances. Your wallet computes a balance by summing the UTXOs it controls.
IRREVERSIBLE
After ~6 confirmations (~1 hour), reversing the tx would require more proof-of-work than the honest network produces.
Things that catch people out
PITFALLS
  • address-reuse/">Address reuse degrades privacy — every reuse links more of your UTXOs together publicly. Modern wallets generate a fresh address per receive.
  • Fee estimation matters: under-pay and your tx sits in the mempool for hours; over-pay and you tip the miner more than necessary. Use a fee estimator.
  • "Change outputs" must go back to a fresh address you control. A missing change output sends the difference to the miner as fee — a known footgun.
  • RBF (Replace-By-Fee) lets you re-broadcast a tx with a higher fee. Useful for stuck txs but means a 0-confirmation tx is never truly final.

TERMINOLOGY
ScriptPubKey
The locking script attached to an output; defines who can spend it.
Transaction (Tx)
A signed payload spending one or more UTXOs and creating new ones; every state change in Bitcoin is a tx.
Raw Transaction
The hex-serialized bytes of a transaction, ready to broadcast or analyze.
Transaction ID (TXID)
HASH256 of a transaction's pre-witness serialization; used to reference outputs by (txid, vout).
wTXID (Witness TXID)
HASH256 of the full transaction including witness data; commits to signatures and used in the witness commitment.
Input
A reference to a previous output being spent, plus the data (scriptSig/witness) authorizing the spend.
Output
An (amount, scriptPubKey) pair created by a transaction; spendable later by a tx whose input references it.
UTXO (Unspent Transaction Output)
An output that hasn't been spent yet; your "balance" is the sum of UTXOs you can sign for.