Definition
A covenant is a restriction encoded into a Bitcoin output that limits how the coins can be spent in the future, beyond simply proving ownership of a key. Ordinary Bitcoin Script answers one question — "is this spend authorized right now?" — whereas a covenant extends that to "is this spend authorized, and does the next transaction also satisfy these conditions?" In practice a covenant can constrain the destination addresses, amounts, or structure of the transaction that spends the output.
Recursive vs. non-recursive
Covenant designs are commonly grouped by whether they can chain indefinitely. A non-recursive covenant commits to a fixed, fully enumerated next transaction and cannot impose further restrictions beyond it. A recursive covenant can require that the conditions carry forward into subsequent spends, enabling more powerful but also more debated constructions. This distinction is central to the discussion around adding covenant opcodes to Bitcoin.
What covenants enable
Proposed and experimental uses include secure storage vaults with delayed, reversible withdrawals; non-interactive payment-channel and Lightning channel setup; congestion-controlled batch payouts; payment pools; and discreet log contracts. Because covenants change the expressiveness of Bitcoin's spending rules, they are a deliberately cautious area of protocol research, with proposals such as OP_CHECKTEMPLATEVERIFY, OP_VAULT, and OP_CAT each taking different trade-offs.
Covenants are typically introduced through a soft fork adding a new opcode. See OP_CHECKTEMPLATEVERIFY (CTV) and the Bitcoin vault for concrete examples.
In Simple Terms
A covenant is a restriction encoded into a Bitcoin output that limits how the coins can be spent in the future, beyond simply proving ownership…
