Lightning Book of BOLTs

Paying People

Lightning payments are still HTLCs under the hood, but humans don’t paste onion packets into a wallet. They scan invoices, or they fetch offers.

BOLT 11 is the classic invoice. It’s a bech32 string (lnbc... on mainnet) that encodes amount, payment hash, expiry, a description, a fallback on-chain address, and routing hints for unannounced channels. Almost every Lightning wallet you’ve used is speaking BOLT 11.

BOLT 12 is offers. Instead of a one-shot invoice, a receiver publishes a reusable offer. The payer requests an invoice over the Lightning network itself (onion messages), gets a fresh invoice back, and pays it. Offers can be static, they can request payer information, and they can be used for refunds. It’s the more recent, more flexible cousin of BOLT 11.

If you’re building a merchant flow, start with BOLT 11 — it’s everywhere — then read BOLT 12 to see where the protocol is going.

In this chapter