BitcoinMachine
TERM_DEF // TRANSACTION / SIGHASH_DEFAULT
SIGHASH_DEFAULT
SIGHASH_DEFAULT. Taproot's 0x00 byte (omitted in serialization) meaning SIGHASH_ALL with the implicit-default flag.

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.
SIGHASH_DEFAULT — at a glance
TRANSACTION
SIGHASH_DEFAULT is part of the SIGHASH sub-family of transaction-level concepts. Taproot-era default (0x00) — like SIGHASH_ALL but excluded from the signature for byte savings. Taproot's 0x00 byte (omitted in serialization) meaning SIGHASH_ALL with the implicit-default flag.
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.
SIGHASH_DEFAULT — SIGHASH
EXAMPLE
Flag value : 0x00 (implicit — sig is exactly 64 bytes) What is signed : all inputs + all outputs (same as SIGHASH_ALL) Difference : the flag byte is omitted from the witness, saving 1 byte Usage : Taproot key-path spends
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
  • SIGHASH_DEFAULT only exists in Taproot — legacy and SegWit-v0 sigs MUST carry an explicit flag byte.
  • 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.

TERMINOLOGY
SIGHASH_DEFAULT
Taproot's 0x00 byte (omitted in serialization) meaning SIGHASH_ALL with the implicit-default flag.
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.