BOLT 12
- Name: BOLT 12
- URL: https://bolt12.org/
- Category: Lightning payment negotiation standard / reusable payment-request standard / route-blinded invoice-and-refund infrastructure
- Tags: bitcoin-ecosystem
- Summary: BOLT 12 is a reusable Lightning payment-request standard, not a wallet feature or merchant plugin. The important shift is from one-shot invoice strings toward long-lived offers, invoice requests, refunds, and route-blinded delivery, so wallets and services can negotiate fresh payment objects instead of minting a new static artifact for every interaction.
- What it does:
- Defines reusable
offerobjects that can be published once and used to request fresh invoices repeatedly - Introduces an invoice-request flow so merchants do not need to mint a new static invoice for every payer up front
- Adds refund and merchant-pays-user flows alongside the normal payer-to-merchant flow
- Uses route blinding and onion-message-based request delivery to improve receiver privacy and reduce direct endpoint exposure
- Supports selective disclosure and payer-proof concepts through its invoice-request and Merkle-signature design
- Serves as a protocol substrate for higher-level payment identifiers and integrations, including BIP-353-style human-readable names and wallet/app integrations highlighted by the BOLT 12 ecosystem site
- Defines reusable
- Key claims:
- The canonical
lightning/boltsspecification calls BOLT 12 a “Negotiation Protocol for Lightning Payments” and explicitly frames it as addressing multiple BOLT 11 limitations, including one-time invoices, awkward encoding constraints, and weak extensibility - The spec says the general payment flow is merchant-published offers → payer invoice requests → merchant-issued invoices → payment, which is the clearest sign that BOLT 12 is a reusable request/negotiation layer rather than just a new invoice string format
- The same spec describes a separate merchant-pays-user flow for refunds or ATM-style interactions, showing that BOLT 12 is broader than simple customer checkout
- The specification highlights route blinding, onion-message delivery, and payer-proof/selective-disclosure properties, which makes privacy-preserving request negotiation part of the standard’s core value proposition
- The BOLT 12 ecosystem site emphasizes reusable payment requests, receiver privacy, social integration, auto-withdrawals, and censorship resistance as the headline user-facing improvements over older Lightning payment flows
- The developer page shows that support is spreading through concrete implementations rather than a single reference client: Core Lightning exposes experimental offers support, Eclair exposes
payoffer, LDK supports creating and paying offers, and LND users can experiment through LNDK
- The canonical
- Whitepaper: No separate standalone BOLT 12 whitepaper or litepaper surfaced in this pass. The canonical source of truth is the BOLT 12 spec in the
lightning/boltsrepository, supplemented by the community-facing explainer site and implementation notes; see../../whitepapers/bolt-12-primary-sources-2026-05-02.md. - Sources:
Internal linkages
-
Static-identifier naming layer that can carry BOLT 12 offers: bip-353
-
Callback-based predecessor and contrast where request state is fetched from a service URL rather than negotiated through offers and invoice requests: lnurl
-
Concrete implementation note in this corpus: eclair
-
Last reviewed: 2026-06-05 UTC