<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.bitcoin.it/w/index.php?action=history&amp;feed=atom&amp;title=BOLT12</id>
	<title>BOLT12 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.bitcoin.it/w/index.php?action=history&amp;feed=atom&amp;title=BOLT12"/>
	<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=BOLT12&amp;action=history"/>
	<updated>2026-09-12T17:31:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=BOLT12&amp;diff=71280&amp;oldid=prev</id>
		<title>NotATether: Create BOLT12 stub (offers / invoice requests)</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=BOLT12&amp;diff=71280&amp;oldid=prev"/>
		<updated>2026-09-12T09:39:01Z</updated>

		<summary type="html">&lt;p&gt;Create BOLT12 stub (offers / invoice requests)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;BOLT12&amp;#039;&amp;#039;&amp;#039; is the Lightning Network protocol for offers, invoice requests, and invoices that are fetched over the Lightning network rather than encoded as a static [[BOLT11]] string. An offer is a compact, often reusable QR that the payer uses to request a fresh invoice, optionally via blinded paths that hide the recipient&amp;#039;s node. BOLT 12 is specified in the Lightning BOLTs repository as the offer encoding and negotiation documents.&lt;br /&gt;
&lt;br /&gt;
BOLT11 invoices are static: they fix a payment hash and usually an amount, they expose the destination public key, and they grow long when many routing hints are attached. Recurring or merchant payments need a reusable handle that still yields a unique preimage per payment. Onion messages and blinded paths (BOLT 4 extensions) made it possible to deliver an invoice request without publishing the recipient&amp;#039;s location in the invoice. BOLT12, led by Rusty Russell and others, defines offers (&amp;lt;code&amp;gt;lno...&amp;lt;/code&amp;gt;), invoice requests, and invoices as TLV streams with Merkle-tree signatures, carried over Lightning onion messages.&lt;br /&gt;
&lt;br /&gt;
An &amp;#039;&amp;#039;&amp;#039;offer&amp;#039;&amp;#039;&amp;#039; contains a description, optional amount, issuer fields, feature bits, and either an issuer node id or blinded paths to the issuer. It is encoded as a Bech32 string beginning with &amp;lt;code&amp;gt;lno&amp;lt;/code&amp;gt; and may be reused. A payer constructs an &amp;#039;&amp;#039;&amp;#039;invoice request&amp;#039;&amp;#039;&amp;#039; that includes the offer fields it is responding to, a payer key, an amount if the offer left it open, and a blinded path back to the payer for the reply. The request is sent as an onion message to the issuer. The issuer returns a BOLT12 &amp;#039;&amp;#039;&amp;#039;invoice&amp;#039;&amp;#039;&amp;#039; with a unique payment hash, amount, created-at time, relative expiry, and one or more blinded paths for the [[Hash Time Locked Contracts|HTLC]] payment so the payer need not learn the recipient&amp;#039;s node id. The invoice is signed with a Merkle-root signature scheme over TLV fields. The payer then sends an ordinary Lightning payment (HTLC, possibly multi-path) along the blinded path.&lt;br /&gt;
&lt;br /&gt;
Blinded paths wrap hops in an onion the payer cannot fully inspect, which improves receiver privacy relative to BOLT11&amp;#039;s cleartext destination. Reusable offers do not reuse payment hashes. Amount can be chosen at request time, which supports tips and donations. Proof of payment remains a preimage until [[PTLC]]s change that. Onion messages require network support; if a path cannot carry them, the payer cannot fetch an invoice from the offer. Implementations may also fetch invoices over HTTP for the same TLV types, but the native path is Lightning. Related receive UX includes [[Lightning address]] and [[LNURL]].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BOLT11]]&lt;br /&gt;
* [[Lightning Network]]&lt;br /&gt;
* [[Hash Time Locked Contracts]]&lt;br /&gt;
* [[PTLC]]&lt;br /&gt;
* [[Lightning address]]&lt;br /&gt;
* [[LNURL]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://github.com/lightning/bolts/blob/master/12-offer-encoding.md BOLT 12: Negotiation Protocol for Lightning Payments]&lt;br /&gt;
* [https://github.com/lightning/bolts/blob/master/04-onion-routing.md BOLT 4: Onion Routing Protocol]&lt;br /&gt;
* [https://bolt12.org/ bolt12.org]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Privacy]]&lt;/div&gt;</summary>
		<author><name>NotATether</name></author>
	</entry>
</feed>