BOLT12 Offers: Privacy Boost for Lightning

BOLT12 Offers: Privacy Boost for Lightning

The Lightning Network has transformed Bitcoin scaling by enabling rapid, low‑cost payments. As the ecosystem matures, new protocols emerge to enhance functionality and privacy. One such protocol is BOLT12, which introduces a standardized way to create and share payment offers. In this article, we explore what BOLT12 offers, why it matters for privacy, and how you can integrate it into your Lightning node.

What Is BOLT12?

BOLT12 is a proposal within the Lightning Network standards that defines a message format for an “offer.” An offer is a structured request that includes essential details such as the amount, payment description, and any required metadata. By encapsulating these fields in a single, extensible message, BOLT12 simplifies the process of requesting payments from peers without the need for interactive invoices. The protocol also supports optional fields that can encode routing hints, expiry times, and even fallback addresses, making it a versatile tool for both casual and enterprise use cases.

Key Features of BOLT12 Offers

The BOLT12 specification brings several capabilities that were previously missing in the Lightning Network:

  • Static Offers – An offer can be generated once and shared repeatedly, eliminating the need to create a new invoice for each payment.
  • Optional Amounts – Senders can specify a fixed amount or leave it flexible, allowing the payee to decide the final value.
  • Routing Hints – The message can include pre‑computed routing information, improving payment success rates.
  • Expiry and Refund – Offers can carry an expiration timestamp and a refund address, enhancing security and user experience.

These features combine to make BOLT12 a more efficient and user‑friendly alternative to traditional invoice flows.

Privacy Advantages of BOLT12

One of the most compelling aspects of BOLT12 is its potential to improve transaction privacy. Because offers are static, they can be distributed through channels that are not directly linked to the payer’s identity. This reduces the correlation between a payment and the sender’s IP address or node alias. Additionally, the optional routing hints can be encoded in a way that obscures the exact path, making it harder for observers to reconstruct the payment route. The protocol also supports onion‑style encryption, ensuring that only the intended recipient can decode the offer details, further protecting sensitive information.

Implementing BOLT12 in Your Node

Integrating BOLT12 into a Lightning node requires both client and server support. Below are practical steps to get started:

  • Upgrade your node software to a version that includes BOLT12 support (e.g., LND 0.15+ or Core Lightning 23.0+).
  • Generate a static offer using the createoffer RPC, specifying amount, description, and any optional fields.
  • Share the offer via a secure channel such as a QR code, email, or a private messaging app.
  • Monitor the offer status with the listoffers command to track payments and expirations.
  • Configure routing hints by providing a list of channel IDs and short channel IDs to improve payment reliability.

By following these steps, you can begin leveraging BOLT12 to streamline your Lightning transactions while preserving privacy.

In conclusion, BOLT12 offers a modern, flexible, and privacy‑enhancing mechanism for requesting payments on the Lightning Network. Its static nature, optional fields, and built‑in encryption make it an attractive alternative to traditional invoices. As more nodes adopt the standard, we can expect broader ecosystem support and new use cases that further decentralize payment flows. Whether you are a developer building Lightning applications or a user seeking greater privacy, understanding and utilizing BOLT12 is a valuable step toward a more confidential and efficient Bitcoin payment layer.

← Back to blog