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
- Taproot history: pay to contract protocol
- Question: Can Taproot commit arbitrary data to chain without any additional footprint?
- Eclair #965 allows specifying custom preimages, which can be used with pay-to-contract