Research/Lightning

Lightning Addresses: How DNS-Based Identifiers Are Making Bitcoin Payments Human-Friendly

Lightning addresses use DNS to turn complex invoices into simple email-like identifiers, driving Bitcoin payment usability forward.

bcSatoruAug 10, 2026

Bitcoin's native payment experience has a usability problem. A typical BOLT 11 invoice is a 500-character alphanumeric string that expires within minutes and can only be used once. Asking a non-technical user to copy and paste one of these strings is roughly equivalent to asking them to memorize an IP address instead of typing a domain name. Lightning addresses solve this by introducing human-readable, email-like identifiers: alice@example.com instead of lnbc1pj3w.... The idea is straightforward, but the implementation choices behind it reveal deep tradeoffs in privacy, custody, and protocol design that are still shaping Bitcoin's payment layer.

What Is a Lightning Address?

A lightning address is a static, reusable payment identifier that looks like an email address. It was created by André Neves, co-founder of ZBD, in 2021 as a thin layer on top of the existing LNURL protocol suite. Technically, it is defined as LUD-16 within the LNURL specification: a mapping from a human-readable string to an HTTPS endpoint that speaks LNURL-pay.

The motivation was simple. Lightning invoices are single-use and time-limited. If someone wants to accept tips, display a payment link on their website, or simply give out a static identifier that others can pay, they need something reusable. Lightning addresses provide exactly that: a permanent destination that generates fresh invoices on demand.

How Lightning Addresses Work Under the Hood

The protocol flow involves five steps, all built on standard HTTPS requests. No new networking protocols are required: just a web server with a TLS certificate.

  1. The sender's wallet receives an address like alice@example.com. It splits the string at the @ symbol and constructs an HTTPS URL: https://example.com/.well-known/lnurlp/alice.
  2. The wallet makes an HTTP GET request to that URL. The server responds with a JSON payload containing a callback URL, minimum and maximum sendable amounts (in millisatoshis), metadata describing the payment, and optional fields like comment length limits.
  3. The sender's wallet calls the callback URL with the chosen payment amount. If the server allows comments, the wallet may attach a short message.
  4. The server generates a fresh BOLT 11 invoice for the specified amount. The invoice's description hash is set to the SHA-256 hash of the metadata from step two, binding the invoice to the original payment parameters.
  5. The sender's wallet pays the invoice through standard Lightning channel routing. From the network's perspective, it is an ordinary Lightning payment.
Key detail: Lightning addresses are not a new payment protocol. They are a naming convention layered on top of LNURL-pay, which itself generates standard BOLT 11 invoices. The actual payment uses the same HTLC-based routing as any other Lightning transaction.

The LNURL Protocol Family

Lightning addresses exist within the broader LNURL ecosystem, a set of 23 individually implementable specifications created by fiatjaf (the pseudonymous developer also known for creating Nostr) starting in 2019. The specifications are maintained in the LUD repository on GitHub. The three most widely deployed sub-protocols are:

  • LNURL-pay (LUD-06): enables static QR codes and URLs that generate fresh invoices per payment, supporting variable amounts and metadata
  • LNURL-withdraw (LUD-03): allows users to pull funds from a service by providing their own invoice, used for withdrawals, refunds, and ATM operations
  • LNURL-auth (LUD-04): passwordless authentication using Lightning wallet keys, where the wallet signs a server-provided challenge with a domain-derived key without revealing personal information

Lightning Address (LUD-16) is specifically a convenience layer on top of LNURL-pay. It standardizes how to convert user@domain into the HTTPS endpoint that LNURL-pay expects, making the system accessible to anyone who understands email addresses.

Adoption Across Wallets and Services

Lightning address support has spread widely since its 2021 introduction. Over 30 services support receiving payments via lightning addresses, and more than 10 major wallets support sending to them. The specification page maintained by the protocol's community tracks implementations across categories.

Wallet Support

Major wallets supporting lightning addresses include Phoenix, BlueWallet, Blixt, Breez, Zeus, Strike, and ZBD. Alby transitioned to a fully self-custodial model in January 2025 with Alby Hub, where users run their own Lightning node while Alby provides the LNURL endpoint for their lightning address. Wallet of Satoshi, one of the most widely used custodial Lightning wallets, withdrew from the US market in November 2024 and shut down EU custodial services in January 2026 due to MiCA compliance requirements.

Deployment Models

ModelHow It WorksCustodyExample
Custodial serviceProvider hosts wallet and LNURL serverCustodialZBD, Strike, Blink
Bridge serverRelay connects custom domain to self-hosted nodeNon-custodialSatdress, BridgeAddr
Self-hostedUser runs LNURL server and Lightning nodeNon-custodialBTCPay Server, LNbits, Alby Hub

The custodial model dominates in practice because it requires zero infrastructure from users. The tradeoff is that the custodial provider controls both the funds and the payment metadata.

Privacy Tradeoffs of Lightning Addresses

The simplicity of lightning addresses comes at a cost. Several privacy concerns are inherent to the HTTPS-based design, and understanding them is essential for anyone evaluating the protocol.

Custodial Dependency

Most lightning address users rely on a custodial provider that holds their funds and can observe every payment: amounts, timing, sender IP addresses, and attached comments. The provider can censor payments, freeze funds, or be compelled by regulators to share transaction data. Non-custodial setups (bridge servers, self-hosted) eliminate the custody risk but still expose metadata to whoever operates the HTTPS endpoint.

IP Address Leakage

When a sender's wallet resolves a lightning address, it makes a direct HTTPS request to the recipient's domain. This exposes the sender's IP address to the recipient's server. Even if the sender uses a self-custodial wallet, their network identity is revealed to whichever entity operates the .well-known/lnurlp/ endpoint.

Server Availability

If the lightning address server goes offline, no new invoices can be generated and the address becomes temporarily unpayable. For non-custodial setups where a bridge server forwards to a mobile node, the node must also be online to sign invoices, creating an always-on requirement that is impractical for mobile users.

Metadata Exposure

The server can log every payment request: the sender's IP, the requested amount, timestamps, and any comment attached to the payment. Over time, this creates a detailed payment profile for every lightning address holder, regardless of whether the underlying Lightning payment itself uses onion routing.

BOLT 12 Offers: The Protocol-Native Alternative

BOLT 12 offers represent a fundamentally different approach to reusable Lightning payments. Designed by Rusty Russell of Blockstream starting around 2020, BOLT 12 was officially merged into the Lightning specification in September 2024: the first new BOLT added since 2017.

Where lightning addresses bolt a naming layer onto HTTPS, BOLT 12 builds reusable payment requests directly into the Lightning protocol using onion messages. A recipient creates a static "offer" containing either their node ID or a blinded path. The sender's wallet routes an invoice request through the Lightning network itself (no HTTPS involved), receives a fresh invoice back via onion message, and pays it normally.

No web server required: BOLT 12 eliminates the external infrastructure dependency entirely. The recipient's Lightning node handles offer creation, invoice generation, and payment receipt without any web server, domain name, or TLS certificate.

Privacy Improvements

The privacy advantages are significant. Onion messages are end-to-end encrypted within the Lightning network, so no IP addresses are exposed between sender and receiver. Blinded paths hide the recipient's node identity from the sender, preventing network graph analysis. And because there is no third-party server in the loop, no entity can log payment request patterns.

Implementation Status

Three of the four major Lightning implementations have native BOLT 12 support: Core Lightning (enabled by default), LDK (full offer and payment support), and Eclair (used by Phoenix, which added BOLT 12 in version 2.3.1 in July 2024). LND remains the holdout, offering only experimental support behind a feature flag as of mid-2026. Users who need BOLT 12 on LND can use LNDK, a sidecar daemon that bridges LDK's BOLT 12 implementation.

Lightning Addresses vs BOLT 12 Offers

DimensionLightning Address (LNURL)BOLT 12 Offers
TransportHTTPS (external web server)Onion messages (native Lightning)
Infrastructure neededDomain, TLS cert, web serverLightning node only
Sender privacyIP exposed to recipient's serverProtected by onion routing
Receiver privacyDomain and server identity publicHidden via blinded paths
Server dependencyServer must be online to generate invoicesNo server; node handles everything
Human readabilityEmail-like (user@domain.com)Long encoded string (lno1qgsq...)
Spec typeCommunity standard (LUD-16)Official BOLT specification
Wallet adoptionBroad (30+ services)Growing (20+ projects)

The core tension: lightning addresses win on human readability and existing adoption, while BOLT 12 wins on privacy and infrastructure independence. Neither alone solves the full problem. What if you could combine the human-readable format with the privacy of BOLT 12?

BIP 353: DNS Payment Instructions

BIP 353, authored by Matt Corallo and Bastien Teinturier and assigned in February 2024, proposes a synthesis of both approaches. It encodes BIP 21 payment URIs in DNS TXT records, enabling human-readable addresses of the form user@domain (displayed as ₿user@domain in wallets) that can resolve to BOLT 12 offers, on-chain addresses, silent payment codes, or any combination thereof.

How BIP 353 Works

A recipient publishes a DNS TXT record at a specific subdomain: username.user._bitcoin-payment.domain.com. The TXT record contains a standard BIP 21 URI. For example:

  • BOLT 12 only: bitcoin:?lno=lno1qgsq...
  • On-chain only: bitcoin:bc1qxxx...
  • Both: bitcoin:bc1qxxx...?lno=lno1qgsq...

The sender's wallet resolves the DNS record, validates the DNSSEC chain of trust from the DNS root down to the specific TXT record, and extracts the payment instructions. If the record contains a BOLT 12 offer, the wallet proceeds with the onion message flow described above. If it contains an on-chain address, the wallet can construct a standard Bitcoin transaction.

Why DNSSEC Matters

BIP 353 mandates full DNSSEC validation. Clients must verify the cryptographic signature chain from the DNS root to the payment record, rejecting SHA-1 signatures and RSA keys shorter than 1024 bits. This provides stronger guarantees than the TLS certificate authority model that lightning addresses rely on: DNSSEC proofs are hierarchical, publicly auditable, and can be validated offline (useful for hardware wallets and air-gapped signing setups).

Privacy Improvements Over Lightning Addresses

BIP 353 addresses the IP leakage problem through DNS's caching architecture. Unlike HTTPS, where the sender connects directly to the recipient's server, DNS queries typically flow through the user's ISP resolver or a public resolver like 1.1.1.1 or 8.8.8.8. The recipient's DNS server never sees the sender's IP. When combined with a BOLT 12 offer in the TXT record, the complete payment flow avoids exposing either party's network identity: DNS resolves the address, onion messages handle the invoice exchange, and Lightning routing delivers the payment.

The Adoption Challenge

Despite its elegant design, BIP 353 faces what Matt Corallo described in June 2025 as a "three-way chicken-and-egg problem between the software wallets that people use, the hardware wallet firmware, and recipients." Phoenix wallet (v2.3.3) supports sending to BIP 353 addresses, and libraries like LDK Node and embit have added implementations. But widespread adoption requires recipients to publish DNS records, wallets to implement DNSSEC validation, and hardware wallets to understand the new URI format: none of which have a clear first mover.

Comparing All Three Approaches

FeatureLightning AddressBOLT 12 OffersBIP 353
Human-readable formatuser@domain.comLong encoded string₿user@domain.com
Resolution mechanismHTTPSOnion messagesDNS + DNSSEC
Payment typesLightning onlyLightning onlyAny (on-chain, BOLT 12, silent payments)
Sender IP privacyExposed to serverProtectedProtected (via DNS caching)
External infrastructureWeb server + domainNoneDNS record + domain
Offline recipient supportNo (server must be online)No (node must be online)DNS cached globally
Spec maturityEstablished (2021)Merged (Sept 2024)Complete (Feb 2024)
Wallet supportBroadGrowingEarly

What Lightning Network Growth Tells Us About Demand

The urgency behind human-readable payment addressing reflects Lightning's broader growth trajectory. Monthly transaction volume on the Lightning Network crossed $1.17 billion in November 2025, up roughly 266% year over year. CoinGate reported that Lightning accounted for over 16% of all Bitcoin orders on their merchant platform in 2024, up from roughly 6.5% two years prior. Major exchanges including Coinbase (via Lightspark), Binance, OKX, and Kraken have integrated Lightning withdrawals.

This growth makes usability increasingly critical. A network processing billions of dollars cannot rely on 500-character one-time invoices as its primary payment interface. Whether through lightning addresses, BOLT 12 offers, BIP 353, or some combination, the market is clearly signaling demand for persistent, human-friendly payment identifiers.

Implications for Payment Identity Layers

The evolution from lightning addresses to BIP 353 follows a broader pattern in payment technology: naming systems converge on DNS. Email addresses, website URLs, and now Bitcoin payment identifiers all use domain-based resolution. This is not a coincidence. DNS provides global reachability, hierarchical trust (via DNSSEC), caching infrastructure, and a familiar user experience.

For protocols building payment identity layers, the lesson is clear: users expect email-like simplicity for any payment destination. The underlying protocol can be as complex as necessary (onion-routed HTLCs, FROST threshold signatures, statechain transfers), but the surface-level addressing must be human-friendly. Spark, for instance, supports Lightning-compatible payments through its service provider layer, meaning users can already pay to lightning addresses from a Spark wallet. As DNS-based payment addressing matures through BIP 353, the same identity model extends naturally to any Bitcoin Layer 2 that interoperates with Lightning.

The Road Ahead

Lightning addresses solved the immediate usability problem: give people a static identifier they can share. But the HTTPS dependency introduced privacy leaks and custodial pressure that the Bitcoin community is now working to eliminate. BOLT 12 removes the web server dependency. BIP 353 adds back the human-readable naming without reintroducing the privacy costs. The likely endgame is a layered approach: BIP 353 names resolving to BOLT 12 offers, with the DNS layer handling discoverability and the Lightning protocol handling privacy.

Getting there requires coordinated adoption across wallets, services, and DNS infrastructure. The chicken-and-egg dynamics are real. But the trajectory is clear: every major Lightning wallet now supports at least one form of persistent payment addressing, and the newer protocols are strictly better on privacy. The question is not whether Bitcoin payments will be as simple as sending an email. The question is which specific stack of protocols will get us there.

Developers interested in building on Bitcoin's payment identity stack can explore the Spark SDK documentation for Lightning-compatible payment integration, or read the deeper technical analysis in our research on BOLT 11 vs BOLT 12 invoices and Lightning routing mechanics.

This article is for educational purposes only. It does not constitute financial or investment advice. Bitcoin and Layer 2 protocols involve technical and financial risk. Always do your own research and understand the tradeoffs before using any protocol.