SwanBitcoin445X250

What is BOLT 12? Well, it is a lot of different features and moving pieces put together to accomplish multiple different things — static QR codes, modular invoices, privacy for the person receiving the payment.

But what is the whole package? It's a way to have a single QR code, an "offer," allow you to grab invoices from a node in a privacy preserving way, while also allowing for things like requesting that a remote node pay your invoice.

Now, anyone familiar with LNURL[1] should already be thinking, “This sounds a lot like LNURL.” But for those of you who don't know what LNURL is or how it works, here's a quick breakdown.

What Is LNURL?

LNURL is a stack of simple protocols for coordinating information needed to make payments over the Lightning Network using HTTP. The full list of LNURL protocol pieces can be found here[2], but I'm just going to go into a few core uses that overlap with BOLT 12.

Three core pieces of the LNURL protocol are an authentication scheme, where a public key can be used to log in to a service, an invoice request scheme where a wallet can ping a server through a static QR code and retrieve an invoice, and a withdraw request scheme where a wallet can ping a server and request that the server pays an invoice provided by the wallet. Lightning invoices are much longer than on-chain Bitcoin addresses, the payment itself is already an interactive process requiring both parties to be online, so coordinating payment details interactively over a network connection makes sense.

The authentication protocol is effectively just the server providing a randomly generated number which the user’s wallet signs with a newly generated key. After

Read more from our friends at Bitcoin Magazine