This guide explains BIP 443 OP_CHECKCONTRACTVERIFY in plain English. It covers the problem behind the BIP, why it matters and whether the proposal is part of Bitcoin today.
TL;DR
- What it is: BIP 443 is a Draft consensus soft-fork proposal for a tapscript opcode named OP_CHECKCONTRACTVERIFY, or OP_CCV. It lets a Taproot output commit to a 32-byte data value, inspect that commitment during script execution and constrain keys, script trees, data and amounts in outputs created by the spend.
- Why it matters: OP_CHECKCONTRACTVERIFY proposes a general state-carrying UTXO primitive rather than one finished covenant product. Evaluation should remain version-pinned, adversarially tested and explicit about key paths, amounts and activation.
- Current position: Combined with suitable commitments, the primitive could express state transitions, but it is not active mainnet consensus.
BIP 443 OP_CHECKCONTRACTVERIFY in simple English
BIP 443 OP_CHECKCONTRACTVERIFY: Covenant designs must leave a safe way to pay fees and preserve intended value. Model amount arithmetic, fee sponsorship and dust under adversarial feerates.
Simple example
A node operator is checking BIP 443 OP_CHECKCONTRACTVERIFY. A naked x-only public key is tweaked by a hash of the 32-byte data commitment to form the Taproot internal key, embedding state without enlarging the output.
Key terms in plain English
- BIP:
- Bitcoin Improvement Proposal: a document describing a proposed rule, standard or process. Its status must be checked separately.
- Consensus:
- The shared rules full nodes use to decide whether blocks and transactions are valid.
- UTXO:
- An unspent transaction output: a piece of bitcoin that can be used as an input to a later transaction.
- Taproot:
- A Bitcoin upgrade that added new signature and script options for spending outputs.
- Node:
- A computer running Bitcoin software that checks data and communicates with other peers.
Status
BIP 443 is Draft, Specification, at the consensus soft-fork layer. Demonstrations and test networks must never be described as deployed Bitcoin rules.
State commitment
A naked x-only public key is tweaked by a hash of the 32-byte data commitment to form the Taproot internal key, embedding state without enlarging the output.
Spending paths
The key path remains available to a holder of the naked private key who knows the committed data hash. Script leaves that need the state pay the witness cost to expose it.
Output constraints
OP_CCV can constrain an output’s internal key, taptree and committed data, supporting recursive or non-recursive state-transition patterns.
Amounts and fees
Covenant designs must leave a safe way to pay fees and preserve intended value. Model amount arithmetic, fee sponsorship and dust under adversarial feerates.
Applications
The BIP discusses shared UTXO schemes, vaults, template-like restrictions, sidechains and rollups as possible constructions, not delivered products or guarantees.
How specialists test it
Developers test the proposal with made-up data on an isolated test network. They check normal cases and deliberately invalid cases. Different implementations should reach the same result before anyone relies on the proposal.
Frequently asked questions
What is the main point of BIP 443 OP_CHECKCONTRACTVERIFY?
BIP 443 OP_CHECKCONTRACTVERIFY: Covenant designs must leave a safe way to pay fees and preserve intended value.
For BIP 443 OP_CHECKCONTRACTVERIFY, what should a beginner know about status?
BIP 443 is Draft, Specification, at the consensus soft-fork layer. Demonstrations and test networks must never be described as deployed Bitcoin rules.
For BIP 443 OP_CHECKCONTRACTVERIFY, what should a beginner know about state commitment?
A naked x-only public key is tweaked by a hash of the 32-byte data commitment to form the Taproot internal key, embedding state without enlarging the output.
For BIP 443 OP_CHECKCONTRACTVERIFY, what should a beginner know about spending paths?
The key path remains available to a holder of the naked private key who knows the committed data hash.
Conclusion
OP_CHECKCONTRACTVERIFY proposes a general state-carrying UTXO primitive rather than one finished covenant product. Evaluation should remain version-pinned, adversarially tested and explicit about key paths, amounts and activation.
Primary sources
Check the current specification status and the documentation for the exact implementation you operate before moving production funds or changing a mining node.
Join the ASIC Mining Discussion
Members can read and join the discussion
Log in to read comments from other miners. Create a free account if you would like to ask a question or share your experience.
Membership helps us protect the discussion from spam and keep answers useful.