Covenants are a category of proposed changes to Bitcoin’s consensus rules that would allow a script to prevent an authorized spender from spending to certain other scripts.
For example, a covenant may normally only allow spending to a whitelisted set of scripts, such as returning bitcoins to the user’s own balance or spending to a staging address that only allows spending to any arbitrary address after a period of time.
Primary code and documentation
Optech newsletter and website mentions
- Discussion about how Simplicity could be used for covenants
- Demo implementation of a multisig vaults covenant prototype
- Vault prototype using pre-signed transactions
- OP_CHECKTEMPLATEVERIFY workshop report
- 2019 year-in-review: OP_CHECKTEMPLATEVERIFY
- Suggested changes to OP_CHECKTEMPLATEVERIFY proposal
- OP_CHECKOUTPUTSHASHVERIFY renamed OP_CHECKTEMPLATEVERIFY and updated
- Bitcoin vaults without covenants
- CoreDev.tech discussion: potential script changes
- New proposed opcode: OP_CHECKOUTPUTSHASHVERIFY