Skip to content
lnurl specifications
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
media new examples of LNURL withdraw and pay Nov 28, 2019 moving files Mar 23, 2020 moving files Mar 23, 2020


LNURL: Lightning Network UX protocol

LNURL is a bech32-encoded HTTPS/Onion query string which is supposed to help payer interact with payee and thus simplify a number of standard scenarios such as:

An example LNURL:

would be bech32-encoded as:


and presented as the following QR:

A QR encoded LNURL example

Once LNURL is decoded:

  • If tag query parameter is present then this LNURL has a special meaning, further actions will be based on tag parameter value.
  • Otherwise a GET request should be executed which must return a Json object containing a tag field, further actions will be based on tag field value.

HTTPS or Onion

LNURL is acceptable in two forms: either an https:// clearnet link (no self-signed certificates allowed) or an http:// v2/v3 onion link.

Fallback scheme

LNURL can be used as fallback inside of other URI schemes, with the key 'lightning' and the value equal to the bech32-encoding, an example:

Decoding examples

In Scala:

import fr.acinq.bitcoin.Bech32
val (hrp, dataPart) = Bech32.decode(bech32lnurl)
val requestByteArray = Bech32.five2eight(dataPart)
new String(requestByteArray, "UTF-8") //

Getting help

If you have any questions about implementing LNURL as a wallet or service, join us in the BLW Telegram and get help from the creators and other LNURL implementors.


  1. LNURL-channel
  2. LNURL-auth
  3. LNURL-withdraw
  4. LNURL-pay
You can’t perform that action at this time.