BitcoinMachine
TERM_DEF // TRANSACTION / LOCKTIME
LOCKTIME
Locktime. Transaction-level field forbidding inclusion before a block-height/">block height or Unix time.

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.
Locktime — at a glance
TRANSACTION
Locktime is part of the SEQUENCE / LOCKTIME sub-family of transaction-level concepts. A 4-byte tx-level field specifying the earliest absolute time (block height < 500M, or unix time ≥ 500M) at which the tx can be mined. Transaction-level field forbidding inclusion before a block height or Unix time.
Why it exists
DESIGN
Some contracts (e.g. Lightning HTLC timeout paths) require a transaction to be valid only AFTER a certain time. Absolute locktime gives the protocol a way to say "this is a future-dated tx, don't mine it before time T".
Mechanism
HOW IT WORKS
nLockTime is checked against either the current chain tip's height or its median-time-past (BIP-113). If nLockTime is non-zero, at least one input must have sequence < 0xffffffff or the locktime is ignored.
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.
Locktime — SEQUENCE / LOCKTIME
EXAMPLE
nLockTime values: 0 no locktime; tx valid immediately 500,000 block height — valid once chain reaches 500k blocks 1,700,000,000 unix timestamp — valid once chain median time past ≥ this 0x500000000 (≥ 500M) interpreted as unix time, not block height For locktime to apply: at least one input must have sequence ≠ 0xffffffff. Median Time Past (BIP-113): the median timestamp of the last 11 blocks, used for time-based locktimes to prevent miner timestamp games.
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 output/">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
Locktime
Transaction-level field forbidding inclusion before a block height or Unix time.
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.