LNURL Documents

May 30, 2026 ยท View on GitHub

These are all the individual documents describing each small piece of protocol that can be implemented under the LNURL umbrella. Different wallets and services may implement different sets of protocols.

NumberDescription
01Base LNURL encoding and decoding.
02channelRequest base spec.
03withdrawRequest base spec.
04Auth base spec.
05BIP32-based seed generation for auth protocol.
06payRequest base spec.
07hostedChannelRequest base spec.
08Fast withdrawRequest.
09successAction field for payRequest.
10aes success action in payRequest.
11Disposable and storeable payRequests.
12Comments in payRequest.
13signMessage-based seed generation for auth protocol.
14balanceCheck: reusable withdrawRequests.
15balanceNotify: services hurrying up the withdraw process.
16Paying to static internet identifiers.
17Scheme prefixes and raw (non bech32-encoded) URLs.
18Payer identity in payRequest protocol.
19Pay link discoverable from withdraw link.
20Long payment description for pay protocol.
21verify LNURL-pay payments
23Request user's Lightning address

Self-hosted

NameLUDs
Addressless01 06 09 16
Bleskomat01 03
BTCPayServer01 06 16 17
Citadel Bitcoin Node01 06 16
Cypherapp01 03
LNURL Daemon01 03 04 06 09 12 16
LNURLPoS01 06 09
LNURLp01 06 12
LNURLw01 03
LNbits.com01 03 04 14 15
LightningATM01 03
NextPay01 06 16
OfflineShop01 06 09
Satdress01 06 09 16
Streamer Copilot01 06 12
electrum-lnurl-server06 16
go-host-lnaddr01 06 09 16
ligess01 06 09 16
lnme01 06 09 16

Libraries

NameLUDs
IMMORTAN01 02 03 04 05 06 07 08 09 10 11 12 16 17 18 20
LNURL C#01 02 03 04 06 07 08 09 10 11 12 14 15 16 17 18 19
dart-lnurl01 02 03 04 05 06 09 10 11 12 14 17 18 19
go-lnurl01 02 03 04 06 08 09 10 11 12 14 16 18 20
js-lnurl01 02 03 04 06 08 09 10 11 12
lnurl-node01 02 03 04 06 08 09 10 11 12
lnurl-platformio01 03
lnurl-ruby01 06 09
lnurlauth01 04
php-lnurl01
python-lnurl01 02 03 04 06
bitcoin-s01 03 06 09
lnurl-rs01 03 06
rust-lnurl01 03 04
spring-lnurl01 04
lnurl_client-ex01 06

Tools for developers

NameLUDs
LNURLProxyAPI01 03
Lightning Decoder01 02 03 04 06 16
Lightning Login01 04
bifrost01 02
lnch-vekslak01 02
lnurl codec JS01
lnurl codec Scala01
lnurl playground01 02 03 04 06 09 10 12 14 15 18 20
lnurl-toolbox01 02 03 04 06
passport-lnurl-auth01 04
Zerologin01 04

Dependency Tree

The entire idea of the suite of LNURL protocols is that they are optional. Each new LUD may be implemented by some wallets and not others, some services and not others, but they should still maintain compatibility at all times (except, of course, if the service requires the new functionality).

There is also a hierarchy of internal dependencies between the LUDs -- for example, you cannot implement sending comments in payRequests if you haven't implemented the base payRequest spec also. The following graph displays that hierarchy of internal dependencies (you can safely ignore it though).

dependencies

How to add your own document

Open a pull request with your proposal. Pick the next unreserved number for your proposal. To be accepted, it just has to be generally decent and make sense and be implemented or currently being implemented by 2 or more wallets.

Join https://t.me/lnurl if you just want to talk about your ideas or chat about LNURL protocols in general.