# Rusty Russell - BOLT12 Offers (Highlights) ![rw-book-cover|256](https://readwise-assets.s3.amazonaws.com/static/images/article0.00998d930354.png) ## Metadata **Review**:: [readwise.io](https://readwise.io/bookreview/42756479) **Source**:: #from/readwise #from/reader **Zettel**:: #zettel/fleeting **Status**:: #x **Authors**:: [[Rusty Russell]] **Full Title**:: BOLT12 Offers **Category**:: #articles #readwise/articles **Category Icon**:: 📰 **URL**:: [github.com](https://github.com/lightning/bolts/blob/1563d13999d342680140c693de0b9d65aa522372/12-offer-encoding.md) **Host**:: [[github.com]] **Highlighted**:: [[2024-07-31]] **Created**:: [[2024-08-03]] ## Highlights - The merchant-pays-user flow (e.g. ATM or refund) ([View Highlight](https://read.readwise.io/read/01j41ddnxsmy5brpy71r4x4yyv)) ^752306807 - Providing a key in *invoice_request* allows the payer to prove that they were the one to request the invoice. In addition, the Merkle construction of the BOLT 12 invoice signature allows the user to reveal invoice fields in case of a dispute selectively. ([View Highlight](https://read.readwise.io/read/01j41degs4ht12h9ct12vjn95r)) ^752306852 - The formulation of the Merkle tree is similar to that proposed in [BIP-341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki), with each TLV leaf paired with a nonce leaf to avoid revealing adjacent nodes in proofs. ([View Highlight](https://read.readwise.io/read/01j4356am87evesz5z8x0hv0tc)) ^752565284 - The Merkle tree inner nodes are H("LnBranch", lesser-SHA256||greater-SHA256); this ordering means proofs are more compact since left/right is inherently determined. ([View Highlight](https://read.readwise.io/read/01j4357eyy90thcc9j2b6rtprg)) ^752565358 - Offers are a precursor to an invoice_request: readers will request an invoice (or multiple) based on the offer. An offer can be much longer-lived than a particular invoice, so it has some different characteristics; in particular the amount can be in a non-lightning currency. It's also designed for compactness to fit inside a QR code easily. ([View Highlight](https://read.readwise.io/read/01j41dh7q3t0svy2dp3k61f36b)) ^752306961