Pay-to-Contract (P2C) protocols
Pay-to-contract protocols allow a spender and a receiver to agree on the text of a contract (or anything else) and then create a public key that commits to that text. The spender can then later demonstrate that the payment committed to that text and that it would’ve been computationally infeasible for that commitment to have been made without the cooperation of the receiver. In short, P2C allows the spender to prove to a court or the public what they paid for.
This topic description is a stub. We would welcome a pull request providing more background information about the topic.
Primary code and documentation
Optech newsletter and website mentions
2022
- BIPs #1293 adds BIP372 Pay-to-contract tweak fields for PSBT
- PSBT extension for pay-to-contract fields
2021
- Taproot history: pay to contract protocol
- Question: Can Taproot commit arbitrary data to chain without any additional footprint?
2019
- Eclair #965 allows specifying custom preimages, which can be used with pay-to-contract
- Proposal to add extension fields to PSBTs for pay-to-contract
See also
Previous Topic:
Package relay
Next Topic:
Payjoin