MSTR Cat

Blockchain/Level IV · Protocol depth/4.2 Upgrades/Lesson 5

Covenants and vaults: CTV, OP_CAT and the 2026 debate

The rule that restricts the next spend, and the delay it buys

MaterialsA copy of BIP119 (OP_CHECKTEMPLATEVERIFY)A copy of BIP347 (Re-enabling OP_CAT in Taproot)Bitcoin Core source code for script validation logicA block explorer with transaction inspection capabilities

Wonder

  1. Why can a standard Bitcoin script verify who holds the keys but not where the coins go next?
  2. What specific constraints does OP_CHECKTEMPLATEVERIFY impose on future transactions?
  3. Why would re-enabling a single concatenation opcode, by soft fork, open the door to covenants?

Explore

    Part ICovenant proposals: CTV and OP_CAT

  1. Standard Bitcoin scripting verifies ownership of a key or hash, but it cannot restrict where the coins go after unlocking. A covenant changes this by imposing conditions on the `scriptPubKey` of descendant outputs. This mechanism is often compared to meal vouchers: unlike cash, which spends anywhere, these funds are restricted to specific partner restaurants. Proposed uses include vaults with delayed withdrawal paths, congestion control, and simpler Lightning designs.
  2. Jeremy Rubin proposed OP_CHECKTEMPLATEVERIFY (CTV) in 2019. This opcode embeds a hash of a future transaction template into the current UTXO. To spend it, the spending transaction itself must match this exact template; no signature is involved in the verification step. It pins the next move before executing the current one. Any deviation in amounts, destinations, or script structure causes the validation to fail immediately, ensuring strict adherence to the predefined path.
  3. CTV’s limitation is rigidity: the next transaction’s outputs are fixed when the coins are locked, so fees must be handled another way, for example with an anchor output and child-pays-for-parent. In exchange, CTV is simple to analyze and cheap to validate.
  4. OP_CAT, an opcode that concatenates two stack items, was disabled by Satoshi Nakamoto in 2010 as a precaution against memory-exhaustion attacks. BIP347 proposes re-enabling it specifically within tapscript. Combined with Schnorr signature tricks, OP_CAT enables covenants and other complex logic without requiring new consensus rules for every specific use case. It provides a primitive building block that developers can combine to create bespoke restrictions on future transactions.
  5. Related proposals include OP_CHECKSIGFROMSTACK (BIP348), which verifies a signature over an arbitrary message supplied on the stack rather than over the spending transaction. This flexibility, combined with CTV (or, separately, the proposed ANYPREVOUT), would enable symmetric Lightning channels where neither party needs to store penalty data for every old channel state.
  6. As of 2026, none of these covenant proposals have been activated, though activation efforts and argument continue. The debate continues over their usefulness, the risk they add to consensus rules, and the governance process required for activation. The expansion of consensus rules introduces questions about network complexity and long-term maintainability that remain unresolved in the community.
  7. Part IICovenants and vaults: the debate in 2026

  8. Bitcoin scripts currently verify conditions on the current transaction, such as signatures or lock times. They cannot inspect the outputs of the spending transaction. Covenants extend this scope: a scriptPubKey can impose constraints on the scriptPubKey of the outputs created by the transaction that spends it. This restricts where coins can go next, enabling features like address whitelisting and non-interactive payment channels.
  9. BIP-119 proposes OP_CHECKTEMPLATEVERIFY (CTV). It allows a script to embed a template hash; the spending transaction must match this template in its outputs, input count, sequences, locktime and version, though not in which inputs are spent. CTV is non-recursive, meaning it constrains only the immediate next step. It replaces OP_NOP4 and requires a soft fork. It can underpin ‘vaults’, which add a time delay to theft recovery.
  10. In a vault, withdrawals must pass through a waiting period (for example 12 hours) during which a separate recovery key can sweep the funds to safety. If an attacker steals the everyday key and starts a withdrawal, the owner sees it on-chain and claws the funds back before the delay ends. This turns key theft from irreversible loss into a recoverable event, provided the victim monitors the chain.
  11. Despite discussion since 2013, no covenant soft fork has activated. Taproot (November 2021) remains the last major upgrade. In February 2026, an activation client for BIP-119 was published without Bitcoin Core involvement. It requires 90% miner signaling between March 2026 and March 2027. As of May 2026, signaling remained near zero, indicating no consensus on adoption.
  12. OP_CAT (BIP-347) reached complete specification in March 2026 but lacks activation parameters. It enables concatenation of script elements, allowing more complex logic than CTV alone. CTV is often paired with CheckSigFromStack (CSFS), which verifies a signature on arbitrary data from the stack, not only on the spending transaction. Together, they offer significant expressiveness gains for smart contracts and protocol design.
  13. The debate centers on trade-offs: covenants enhance security and enable new protocols like vaults, but introduce complexity and governance risks. A soft fork changes consensus rules, requiring broad miner and node operator agreement. The current stagnation reflects caution about implementation bugs and the irreversibility of chain state changes. Users must weigh these gains against the risk of a failed or contested activation.

Key facts

  • A covenant restricts the `scriptPubKey` of future transactions, not just the current unlocking conditions.
  • OP_CHECKTEMPLATEVERIFY (BIP119) commits an output to the exact shape of its spending transaction.
  • CTV requires precomputation of future transaction details, fixing amounts and fees at creation time.
  • OP_CAT was disabled in 2010 but proposed for re-enabling in tapscript via BIP347 (2023-2024).
  • BIP348 proposes OP_CHECKSIGFROMSTACK, which verifies a signature over a message taken from the stack.
  • No covenant proposal had been activated as of 2026; debate over usefulness, risk and activation continued.
  • Covenants restrict the outputs of the transaction that spends a UTXO.
  • BIP-119 (CTV) requires 90% miner signaling for activation between March 2026 and March 2027.
  • Signaling for BIP-119 was near 0% as of May 2026.
  • Taproot (November 2021) is the last activated soft fork; no covenants are live.
  • OP_CAT reached complete specification in March 2026 without activation parameters.
  • Vaults use covenants to add a delay and clawback path against key theft.

Exercise nine, six, three, one

9CollectList 9 proposed Bitcoin opcodes or mechanisms related to covenants or script expansion (e.g., CTV, APO, OP_CAT).
6ClusterGroup the 9 into 6 categories based on their primary constraint type: transaction shape, key derivation, concatenation logic, etc.
3DistillReduce the 6 groups to 3 core technical trade-offs between flexibility and validation cost.
1CrystallizeWrite 1 sentence explaining why a rigid covenant like CTV is cheaper to validate than flexible OP_CAT-based scripts.

Fact check

Dates, figures and claims checked against the published sources listed below.

Open in the interactive academy →

PT ES ZH JA KO RU DE FR MS