Skip to content
lncash
Menu

Guide

LNURL, in plain English

What LNURL is, the four subtypes you'll actually encounter, and why it matters for wallets and merchants.

Published May 18, 2026 · Last updated May 18, 2026 · For developer, beginner

Affiliate disclosure. Some links on this page are partner links. LN Cash may earn a commission if you sign up. This does not change which tools we recommend — see our methodology and the full disclosure.

LNURL is a small specification that takes Lightning Network actions — pay, withdraw, authenticate — and wraps them in normal HTTPS URLs. It’s how wallets can scan a single QR code and produce a working payment without the recipient having to generate a new invoice every time.

If you’ve ever used a Lightning Address, you’ve already used LNURL — it’s the layer underneath.

What problem LNURL solves

Plain Lightning uses BOLT11 invoices. A BOLT11 invoice encodes:

  • the recipient’s public key,
  • the exact amount,
  • an expiry,
  • a description,
  • a payment hash.

It works perfectly, with one annoyance: a BOLT11 invoice is for a specific amount and expires. A merchant can’t paste one on a poster and walk away — they’d need to regenerate it for every payment.

LNURL fixes this by adding a small server-side endpoint. The QR code or string no longer encodes the invoice itself; it encodes a URL the wallet should call to ask for one.

The four subtypes you’ll actually see

LNURL is an umbrella spec. In practice you’ll meet four concrete subtypes.

LNURL-pay

The most common. A static QR or string that points to an endpoint capable of generating BOLT11 invoices on demand. This is what powers:

  • Lightning Addresses (name@example.com resolves to an LNURL-pay endpoint).
  • Static payment QR codes on a coffee shop counter.
  • Tip jars on a creator’s site.

LNURL-withdraw

A QR or string that lets a wallet withdraw sats from a service. Think: redeeming a Lightning voucher, claiming a faucet payout, or receiving a bonus from a podcast app.

LNURL-auth

Passwordless login backed by your wallet’s keys. You scan a QR, your wallet signs a challenge, and the site logs you in. Used by Alby, Geyser, and various Lightning-native services.

LNURL-channel

Allows a wallet to request an inbound channel from a node operator. Rare for end users; more relevant for self-custodial wallets and developers.

How it looks in practice

A raw LNURL string is a bech32-encoded URL with the prefix LNURL. Example:

LNURL1DP68GURN8GHJ7AMPD3KX2AR0VEEKZAR0WD5XJTNRDAKJ7TNHV4KXCTTTDEHHWM30D3H82UNVWQHKZURF9AKXUATJD3CZ7CTSDYHHVVF0D3H82UNV9UCSZ9UQ

Decoded, that becomes a regular https://... URL the wallet will fetch. A wallet that supports LNURL-pay then:

  1. GETs the URL.
  2. Reads the JSON response — min/max sendable, metadata, callback URL, and so on.
  3. Asks the user for an amount (within the allowed range).
  4. POSTs back to the callback with that amount.
  5. Receives a BOLT11 invoice in the response.
  6. Pays it.

It is, intentionally, very boring HTTP plumbing.

When LNURL matters for you

For creators, LNURL is largely invisible — your wallet handles it. The thing you actually care about is having a Lightning Address.

For merchants, LNURL-pay is what lets you print a single QR poster and accept payments forever. Without it, you’d have to generate a fresh BOLT11 for every payment.

For developers, LNURL is the right primitive to know. The LNURL specs are short and readable — the auth flow in particular is worth understanding before you build any Lightning-native product.

Things to be careful about

A few practical gotchas:

  • Server trust. A malicious LNURL endpoint could swap the destination at request time. Reputable wallets verify domain reputation, but it’s worth pairing LNURL with destination amount sanity checks.
  • Privacy. Every LNURL request leaks your IP to the recipient’s server. Wallets that route through Tor or VPN mitigate this; most don’t by default.
  • Spec drift. Not all wallets implement every LNURL subtype, and feature support changes over time. Test with a small amount before depending on it for production.

Tools we’re building

LN Cash is working on a read-only LNURL decoder that lets you paste a string and see what it actually points to — useful for debugging and education. It will not send payments. Get notified when it ships.

Next step

FAQ

What does LNURL stand for? +

Lightning URL. It's a way to encode Lightning-network actions into a regular HTTPS URL so wallets can fetch payment instructions, withdraw flows, and authentication challenges from a server.

Is LNURL part of the BOLT specs? +

No. LNURL is a separate set of community specifications maintained outside the BOLT protocol. Most modern Lightning wallets implement the relevant LNURL subtypes anyway.

Is LNURL safer than BOLT11? +

Different trust model. BOLT11 invoices are signed, fixed-amount, fixed-recipient. LNURL adds a server in the loop, which is convenient but means you have to trust the server during the request. For static QR codes that work across sessions, LNURL is the practical choice.