A Bitcoin covenant is a rule baked into a transaction that limits where or how the coins can be spent later. Think of it as a conditional promise attached to specific coins that only lets them move along preapproved paths.
Standard Bitcoin transactions already use “spending conditions” like proving you have the right key, waiting until a time lock passes, or collecting multiple signatures. Covenants extend this idea by also restricting the destination or structure of future transactions. Instead of “you may spend if you sign,” a covenant can say “you may spend if you sign and the next transaction looks a certain way.”
Two proposals frequently discussed would add covenant-like behavior to Bitcoin Script:
A recursive covenant requires that each future spend also includes the same kind of restriction. Some community members worry this could enable address whitelists that never end, which might be used to enforce external compliance rules on-chain. Analyses often note that CTV’s design does not enable recursive covenants, while CheckTXHashVerify might, depending on how it is specified.
Supporters point to practical wins: stronger theft mitigation through vaults, predictable batching that helps manage network fees, and building blocks for more expressive contract-like behavior without introducing full smart-contract complexity. These capabilities could also help services scale operations while keeping custody safer.
Covenants add complexity and influence coin fungibility if used broadly, since some coins would carry extra rules while others would not. Privacy and user experience need careful design so people do not trap funds or leak information about planned transactions. These concerns show up most clearly in discussions around recursive designs.