Standards/lightning-address
Lightning Address
Overview
A Lightning Address is a human-readable identifier in the familiar user@domain email-like form (e.g. satoshi@bitcoin.org) that resolves to an lnurl-pay endpoint, letting anyone receive Bitcoin Lightning payments without sharing a single-use bolt11 invoice or a raw lnurl string.[1][2] It is standardized as LUD-16 ("Paying to static internet identifiers") in the lnurl spec set, and is effectively a friendly front-end over lnurl-pay (LUD-06).[2] Because the address itself is short ASCII text, it is also commonly published, shared as text, or embedded in a qr-code for scan-to-pay.[1]
History
Lightning Address was created by Andre Neves (GitHub andrerfneves); the reference repository is andrerfneves/lightning-address and frames the idea as "like an email address, but for your Bitcoin," whose goal is to remove the friction of scanning QR codes or pasting invoices.[1] The protocol is built directly on the lnurl-pay specification.[1] It was subsequently captured as LUD-16 in the canonical lnurl/luds repository, which defines the on-the-wire resolution and response rules.[2]
Technical specification
Resolution
Given an address <username>@<domain>, a wallet constructs and GETs a .well-known URL:[1][2]
https://<domain>/.well-known/lnurlp/<username> (clearnet)
http://<domain>/.well-known/lnurlp/<username> (onion)
Per LUD-16, allowed username characters are a-z0-9-_. (lowercase), and a username+tag@domain form may be supported, with the tag optionally surfaced in metadata.[2]
Mapping to lnurl-pay
The endpoint returns the same JSON as lnurl-pay step 3 (LUD-06), and the flow proceeds identically thereafter:[2]
callback— URL the wallet calls with an amount,minSendable/maxSendable— bounds in millisatoshi,metadata— a stringified array that, for Lightning Address, must include an identifier entry:text/identifierfor a generic internet identifier ortext/emailfor an actual email address,tag: "payRequest".
The wallet then GETs <callback>?amount=<milliSatoshi> and receives {"pr": "<bolt11 invoice>", ...}, which it pays.[2] In short, a Lightning Address is resolved to an lnurl-pay endpoint and from there is indistinguishable from any other lnurl-pay flow.[1][2]
Use cases
- Receive-anywhere identifier: publish
you@wallet.comon a profile, invoice or business card and accept Lightning payments without rotating invoices.[1] - Tips and donations: a static, shareable address (or its qr-code) collects many payments.[1][2]
- Streaming / value-for-value: podcast and content platforms route sats to a creator's Lightning Address.[1]
Implementations
- andrerfneves/lightning-address — the reference spec, primer and diagrams (JS/Markdown), active 2026.[1]
- lnbits/lnurlp — LNbits "Pay Links" extension that serves
.well-known/lnurlp/...endpoints, i.e. hosts Lightning Addresses.[3] - Most major Lightning custodial and self-hosted wallets/services issue and resolve Lightning Addresses via LUD-16.[1][2]
Comparison
- Lightning Address vs single-use bolt11: a bolt11 invoice is typically single-use with a fixed hash, amount and expiry; a Lightning Address is a permanent, reusable identifier that produces a fresh invoice per payment via lnurl-pay.[2]
- Lightning Address vs raw lnurl: both ultimately drive the lnurl-pay flow, but the address is short human-readable text (
user@domain) instead of a long bech32lnurl1...string, trading some QR compactness for memorability.[1][2] - vs bip-321
lightning=: bip-321 embeds a concrete Lightning instruction (a bolt11 invoice or BOLT12 offer) inside abitcoin:URI, whereas a Lightning Address is an indirection that must be resolved over HTTPS first.[1][2]
Status
Lightning Address is an active, widely supported convention across the Lightning ecosystem, standardized as LUD-16 and maintained in 2026.[1][2]
Sources
1 Lightning Address — like an email address, but for Bitcoin — Andre Neves / GitHub, 2026 2 LUD-16: Paying to static internet identifiers — lnurl/luds, 2026 3 lnbits/lnurlp — GitHub, 2026
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal