Definition
OP_CHECKCONTRACTVERIFY (often abbreviated CCV) is a proposed, experimental Bitcoin opcode authored by Salvatore Ingala and published as BIP 443. It is not part of Bitcoin consensus today and would require a soft fork to activate. As of mid-2026 it remains a research proposal under community review, with no activation timeline. We describe it here for readers tracking Bitcoin's covenant design space.
What it does
CCV lets a script verify that a Taproot output key commits to a specific piece of data. It can check the key of the output being spent or the key of an output being created, so data can be carried forward from one UTXO to the next. This creates what proponents call state-carrying UTXOs: a coin that holds a commitment to arbitrary state which Script can read, compute on, and re-embed in the spending transaction's outputs.
Why it matters
Combined with OP_CAT, CCV is intended to provide the full generality of the MATT (Merkleize All The Things) approach with only two opcodes. Proposed applications include vaults, where coins can only move along pre-defined paths, and recursive covenants that update a sidechain or rollup state root each time the UTXO is spent. As with any covenant proposal, there is ongoing, good-faith debate in the community about fungibility, complexity, and whether recursive covenants are desirable on the base layer.
CCV sits alongside other introspection proposals such as OP_TXHASH and MATT. For the broader category, see our entry on OP_CHECKSIGFROMSTACK.
In Simple Terms
OP_CHECKCONTRACTVERIFY (often abbreviated CCV) is a proposed, experimental Bitcoin opcode authored by Salvatore Ingala and published as BIP 443. It is not part of Bitcoin…
