Also covering BOLT12
Offers is a proposed protocol enhancement for Lightning that would allow nodes to request and receive invoices over LN.
An example of a common use of this protocol would be that a merchant generates a QR code, the customer scans the QR code, the customer’s LN node sends some of the details from the QR code (such as an order ID number) to the merchant’s node over LN, the merchant’s node returns an invoice (also over LN), the invoice is displayed to the user (who agrees to pay), and the payment is sent.
Although the above use case is already addressed today using BOLT11 invoices, the ability for the spending and receiving nodes to communicate directly before attempting payment provides much more flexibility. For example, the requested amount could be specified in the terms of a non-Bitcoin currency (e.g. USD); if the BTC-to-USD exchange rate changed too much since the invoice was received, the two nodes could automatically negotiate an update to the payable BTC amount to make it again consistent with the requested USD amount.
Interactive communication between the nodes also enables features that aren’t possible with BOLT11’s one-time-use hashlocks, such as recurring payments for subscriptions and donations.
Primary code and documentation
Optech newsletter and website mentions
- Ideas for creating a Lightning Address protocol compatible with offers
- Eclair #2752 allows an offer to reference a node using a short channel identifier (SCID)
- LDK #2371 adds support for managing payments using offers
- LDK #1977 allows serializing and deserializing offers
- Eclair #2479 adds support for paying offers
- Core Lightning #5892 updates CLN’s implementation of the offers protocol
- LDK #1738 and #1908 provide additional features for handling offers
- Eclair #2499 allows specifying a blinded route to use when using a BOLT12 offer
- Core Lightning #5646 updates the implementation of offers to remove x-only public keys
- Eclair #2416 adds support for receiving payments requested using the offers protocol
- Eclair #2117 adds onion message replies in preparation for supporting offers
- 2021 year-in-review: offers
- Summary of LN developer conference, including discussion of offers
- Spark Lightning Wallet adds partial support for offers
- C-Lightning 0.10.1 updates the experimental implementation of offers
- Offers specification updated to no longer require a signature
- Offers specification updated to partly address stuck payments
- C-Lightning 0.9.3 released with experimental offers support
- 2020 year in review: LN offers
- C-Lightning #4255 is the first of a series of PRs for offers
- New direct messages protocol to be used for offers