Chapter 15. Lightning Payment Requests

In this chapter we will look at Lightning payment requests, or as they are more commonly known, Lightning invoices.

Invoices in the Lightning Protocol Suite

Payment requests, aka invoices, are part of the payment layer and are shown in the upper left of Figure 15-1.

Payment requests in the Lightning protocol suite
Figure 15-1. Payment requests in the Lightning protocol suite


As we’ve learned throughout the book, minimally two pieces of data are required to complete a Lightning payment: a payment hash and a destination. As SHA-256 is used in the Lightning Network to implement HTLCs, this information requires 32 bytes to communicate. Destinations, on the other hand, are simply the secp256k1 public key of the node that wishes to receive a payment. The purpose of a payment request in the context of the Lightning Network is to communicate these two pieces of information from sender to receiver. The QR-code-friendly format for communicating the information required to complete a payment from receiver to sender is described in BOLT #11: Invoice Protocol for Lightning Payments. In practice, more than just the payment hash and destination are communicated in a payment request to make the encoding more fully featured.

Lightning Payment Requests Versus Bitcoin Addresses

A commonly asked question when people first encounter a Lightning Payment request is: why can’t a normal static ...

Get Mastering the Lightning Network now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.