BitcoinMachine
TERM_DEF // UPGRADES_BIPS / OP_CTV_BIP_119
OP_CTV (BIP
119)
OP_CTV (BIP 119). Proposed covenant opcode committing to the exact spending tx shape.

This page sits in the Upgrades & BIPs section — The proposal process and the major upgrades that shaped Bitcoin. Read on for what it is, why it exists, how it works under the hood, and what to watch out for.
OP_CTV (BIP 119) — at a glance
UPGRADES
BIP 119 is a proposal in the Script family, first published in 2020 with status draft (fork/">soft fork). Proposed covenant opcode committing to the exact spending tx shape. Its technical mechanism: OP_CHECKTEMPLATEVERIFY (CTV) — compare a 32-byte hash to a pre-image of the spending tx. congestion-control trees, vault constructions, payment pools — not yet activated
Why it exists
DESIGN
OP_CTV (BIP 119) exists to solve a specific problem: allow an output to commit to its future spending transaction. Without a written, numbered spec, every wallet and node implementer would interpret the requirement differently — and Bitcoin's value depends on every implementation agreeing exactly. BIP-119 is the single source of truth for this concern, so any new client built today can match the behaviour of every client built since 2020.
Mechanism
HOW IT WORKS
Mechanically, BIP-119 oP_CHECKTEMPLATEVERIFY (CTV) — compare a 32-byte hash to a pre-image of the spending tx. Because this is a soft fork, old software accepts new behaviour without modification — but new behaviour is rejected if old software produces it. Adoption today: congestion-control trees, vault constructions, payment pools — not yet activated.
1. Author drafts BIP-119 against the BIP-2 template — abstract, motivation, specification, rationale. 2. The text + a reference implementation are posted on the bitcoin-dev list and as a PR to bitcoin/bips. 3. Reviewers tear it apart: ambiguities, security concerns, edge cases, interaction with prior BIPs. 4. Once stable, the BIP editor merges it; it gets a number (BIP-119) and the status "draft" or "proposed". 5. Implementations land in Bitcoin Core / wallets / other clients. For consensus changes: activation parameters chosen. 6. After deployment + adoption, BIP-119 is promoted to "final"; deprecated proposals get "replaced" or "withdrawn".
BIP-119 — quick reference card
EXAMPLE
BIP number : 119 Title : OP_CTV (BIP 119) Area : Script First published: 2020 Status : draft Fork class : soft Motivation : allow an output to commit to its future spending transaction. Mechanism : OP_CHECKTEMPLATEVERIFY (CTV) — compare a 32-byte hash to a pre-image of the spending tx. Where it shows up : congestion-control trees, vault constructions, payment pools — not yet activated. Read the spec : https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki
OPT-IN
No authority can force a BIP on anyone. Adoption depends entirely on whether the change is genuinely useful.
NUMBERED
Stable numeric reference — BIP-119 means the same thing across every wallet, miner, and node that has read this spec.
BIP-119 is a soft fork — it changes (or proposes to change) the rules every full node enforces.
DRAFT
BIP-119 is still in draft — reference code may exist but mainnet adoption is partial or pending.
Things that catch people out
PITFALLS
  • BIP-119 is still in DRAFT status — its details can change before activation, and any code built against it may need adjustment.
  • BIP-119 is a soft fork — old clients accept new behaviour but don't enforce it. Validate against an upgraded node to be sure the rule is being checked.
  • Don't confuse "draft" / "proposed" / "final" status — read the BIP header before relying on it in production.
  • The BIP number is just an editorial counter — it doesn't imply correctness or stability. Always cross-reference with the latest bitcoin/bips repo.

TERMINOLOGY
OP_CTV (BIP 119)
Proposed covenant opcode committing to the exact spending tx shape.
Segregated Witness (SegWit, BIP 141)
The 2017 upgrade separating witness-data/">witness data, fixing tx malleability, and introducing weight units.
Taproot (BIP 341)
The 2021 upgrade introducing key-aggregable schnorr-signatures/">Schnorr signatures and Merkleized script trees.
Tapscript (BIP 342)
Script-language updates accompanying Taproot — new opcodes, removed limits.
Schnorr (BIP 340)
The Schnorr signature spec adopted by Taproot.
BIP Process
The community workflow for proposing, discussing, and tracking changes to Bitcoin.
Soft Fork Activation
The mechanism (versionbits, MASF, UASF, Speedy Trial) by which soft forks turn on.
MASF (Miner-Activated Soft Fork)
Activation triggered by miner signaling in block versions.