Lightning Address: Like an Email Address for Your Bitcoin

About Bitcoin Lightning Address

I have noticed Lightning Address receiving a lot of attention over the past few months. It has quickly gained adoption by many Lightning wallets. I think it’s a pretty useful tool for making Lightning payments easier for the user to accept.

I’ve also heard some criticisms of Lightning Address. I decided to try and work through some of these issues from a design perspective.

About Lightning Address

Lightning Address is an internet identifier; in other words, it looks like an email address.

We created the Lightning Address protocol to empower everyone to send money like we send emails — instantly and abundantly.

lightningaddress.com

A long-standing UX problem in Bitcoin has been Bitcoin addresses look confusing and incomprehensible to the average user. Lightning compounds this issue with BOLT11 invoices, which look just as confusing in addition to being far longer than on-chain addresses. BOLT11 QR codes actually look distinctive because of how tiny the squares must be in order to fit all the invoice data.

LNURL Pay helps to reduce the amount of data that needs to be presented in a QR code, but it’s still not necessarily human readable. Lightning Address provides a layer on top of that which is human-readable, even memorizable, but resolves into a standard Lightning invoice.

Diagram showing Lightning Address pointing to LNURL Pay leading to a BOLT11 invoice.
The wallet converts the Lightning Address into an LNURL payRequest, and the successful payRequest can be used to obtain a BOLT11 invoice.

How do I use Lightning Address?

You can see a friendly overview of Lightning Address and a list of wallets and service that support it at the Lightning Address website. For a more developer focused guide on setting up Lightning address, see this documentation.

Graphic depicting Lightning Address URL transformation
From the andrerfneves/lightning-address repo

Where is Lightning Address defined?

Lightning Address is part of the LNURL protocol. You can find the exact spec for Lightning Address detailed in the lnurl-rfc repo in LUD-16: Paying to static internet identifiers.

A double-edged sword

The fact that Lightning Address looks like an email address has advantages. In 2022, people are very familiar with email addresses, so it allows people to send and receive Lightning payments in a way that may feel more familiar.

However, this advantage can also be a disadvantage: it makes the Lightning address look like an email address, which it is not.

A developer may know that string@domain.com is simply an Internet identifier following the Addr-Spec specification. It could mean many things, including:

  • a login to a *nix system
  • an FTP login
  • an SSH login
  • an email address

But to the average user, it probably means exactly one thing:

  • an email address

Analyzing the Problem

To analyze this speculation about users confusing email addresses and Lightning addresses, let’s go through some hypothetical scenarios which are completely made-up.

Users may see a Lightning Address and assume it is an email address

Non-bitcoiner sees a Lightning Address

Describes Alice
Alice is a fairly competent computer user. She has a gmail address, a smartphone for daily communications, and a laptop to do her work on. She’s not highly technical, but she’s also not a luddite: she knows how to get by in the modern digital world. Alice isn’t incredibly familiar with Bitcoin, but she knows some of her friends use it.
A depiction of an email Alice receives
One day, Alice gets an interesting email she wants to forward to one of her friends.
Depiction of Betty's Twitter profile with a Lightning Address
It’s pretty common nowadays to communicate with your friends via text or social media without even knowing their email, and that’s exactly the case here. However, she sees what looks like an email address in her friend Betty’s Twitter profile.
Depiction of pasting "betty@coolproject.dev" into email TO field
Alice copies the “email address” from Twitter and pastes it into the TO field in order to forward the email to Betty.
Depiction of an email bounceback error in Alice's inbox
A few minutes later, Alice notices that she has received a bounce-back message with some complicated technical sounding stuff. Apparently, the email didn’t work.
Depiction of the results of this scenario: Alice has wasted time
Ultimately, the only thing wasted here is time. Alice will either text Betty to ask for her email or text her a screenshot of what the email said. If this was a really low-stakes communication, maybe Alice just forgets it and moves on with her day.

Bitcoiner mistakes Lightning address for official company email

Let’s take the previous situation and modify it a little bit.

Depiction of the Charles persona
Charles is a long-time Bitcoiner. He is interested in a specific Lightning project and wants to talk to some of the regular contribs about it.
Depiction of Betty's Twitter profile with a Lightning Address
He finds one of the contribs on Twitter, Betty. He sees her email address in her Twitter profile. That’s good for Charles because he doesn’t like using centralized social media platforms for communications anyways.
Depiction of how Charles sees Betty's email in the Twitter profile, with the zap emoji representing enthusiasm for Lightning and the Lightning Address representing her official project email address
She even has a zap emoji next to her email — she must be very passionate about Lightning! It almost invites you to email her about Lightning related topics.
Depiction of copying and pasting the lightning address "betty@coolproject.dev" into an email TO field
Charles copies and pastes the email address from Betty’s Twitter profile and tries to send her an email.
Depiction of an email bounce-back error message in Charles' inbox
Charles receives the same error message in his inbox that Alice received.
Depiction of the results of this scenario: Charles' time has been wasted
Once again, the only thing wasted here is time. If Charles really wants to get in touch with Betty, he can find a way, whether it’s via Twitter, GitHub, etc.

Lightning node philanthropist doesn’t notice that they can pay with Lightning

Depiction of Danny, a Lightning node operator and FOSS supporter
Danny runs his own Lightning node. It’s a fun technical hobby for him and he wants to support Lightning growth. He believes very strongly in open-source. Having plenty of disposable income, he likes to donate to FOSS projects, especially when they accept Bitcoin.
Depiction of Billy's Twitter profile
If a FOSS project that he likes publicly posts a Bitcoin address, a BTCPay server link, etc., he will always send them a donation.
Depiction of Betty's twitter profile
However, it doesn’t cross his mind that Betty accepts tips via Lightning, because the only thing he sees in her profile is an email address. Which is a shame, because he’s a big fan of the project Betty contributes to!
Betty missed out on a potential donation, but really, nobody is aware.

Users may see an email address and assume it is a Lightning Address

Let’s flip the problem and see what happens. What happens further in the future as Lightning becomes more common place? Could some users come to expect that all email addresses are Lightning addresses?

User tries to send bitcoin to an email address

Depiction of the year 20XX
It’s the year 20XX. Non-custodial Bitcoin UX is insanely freakin’ good. What kind of person doesn’t have a Lightning wallet? Are you some kind of luddite? You still use fintech apps from the mid-2010’s? Ok millennial.
Depiction of the Alice Jr persona
Alice now has a daughter named Alice Jr., who is a teenager. Alice Jr has a Lightning wallet filled with bitcoin she earned at her summer job.
Depiction of a phone app preparing to send 500 sats to maria@domain.com
She and her friends went on a camping trip together. Her friend Maria drove most of the way (the self-driving cars don’t go that deep into the woods). Alice Jr. wants to reimburse Maria for gas electricity whatever and types in Maria’s email into her Bitcoin wallet.

This isn’t a wild thing to consider. For example, you can use your friend’s email to send them money via PayPal. For some services, if the email has not been registered with that service, the service will invite the user to register by sending them an email.

Depiction of a phone app error message when attempting to send to an invalid Lightning address
Fortunately, the Lightning wallet recognizes that this is not a valid Lightning address and presents very self-explanatory error message.
Depiction of the results of the Alice JR scenario
Ultimately, only a little bit of time was wasted. Alice Jr messages Maria asking for her correct Lightning address, or pays Maria via contactless NFC payment next time they are hanging out. No big deal.

Results

Ultimately, none of these scenarios resulted in catastrophic failures. Nobody lost their bitcoin, which is a positive thing. Some users wasted a little time, which was probably frustrating.

By far, the worst scenario was Betty missing out on a donation. I suspect this one is easily solvable.

So based on these scenarios, we have a few friction points we can consider smoothing out.

Ideas

Make it clear it’s a Lightning address

Zap emojis are cute, but my thinking is that it’s better in the short-term to just spell-out if something is a Lightning address and avoid any possibility of confusion.

We can make it super clear it’s not a Lightning address by just flat-out saying “this is a Lightning address”.
If somebody configures the domain they use for emails to follow the Lightning address spec, then their Lightning address and email address could be identical.

Nice looking response emails

One idea I have heard is that Lightning address providers should send out a nice looking automated email in the event somebody tries to email a Lightning address, basically to explain that it’s not an email.

Sample of a more user-friendly email that the user receives if they try to email a Lightning address.

At first, I agreed with this idea. However, I’m not certain about it. At the moment, not even email service providers send you a response email if you try to email an invalid address. Typically, the response we get from the “mailer daemon” comes from our own ESP, not from the ESP of the domain we are trying to email. The costs could begin to pile up if we expect that ESPs and Lightning address providers are responsible for sending out more than just error codes.

I could be completely wrong on that; but we have to think at scale, and something that seems like a minimal cost can start to add up when you scale up to many thousands of users.

Maybe let’s discard this idea and just let the email bounce with a standard error code. Not even email itself is this user-friendly.

Concluding Thoughts

More than a decade ago, I found the Twitter username format to be somewhat obnoxious. In email terms, stephen@d.elor.me made sense to me because we are saying “stephen” (the user) can be found at “d.elor.me” (the host).

Twitter was the first platform I noticed to use conventions like @StephenDeLorme. “At” Stephen DeLorme? That didn’t make sense to me then, and I still find it a little bit odd. However, this has become a convention on the internet. Virtually every social media site in addition to every modern productivity tool follows this convention. People understand that @StephenDeLorme might refer to a Twitter account, or an Instagram account, or even a Slack handle; it depends on the context and the platform.

I’m not saying that I favor Lightning address above all other methods for obtaining Lightning invoices. There are further topics regarding Lightning Address that I would like to explore, first.

Specifically, I am saying that I do not think “it looks like an email address” is a valid criticism of Lightning address. While it is certainly possible that this confusion can occur, I do not think these scenarios result in outcomes that harm the users or their funds.

I’m not done with Lightning Address yet, but I am done for the night.