Guide icon indicating copy to clipboard operation
Guide copied to clipboard

Add content around using names in lightning apps

Open Bosch-0 opened this issue 3 years ago • 4 comments

Bitcoin lightning applications, much like traditional and neo banking apps, should leverage the use of names. Names are useful in personalization of apps. For example adding a welcoming message like Welcome back, bosch when you log into the app. They can also be used for sending and receiving payments, and bitcoin already has technology we can use to leverage this common UX practice, see below.

Using NameDesc

NameDesc allows a user to attach a name to a generated invoice so senders know who they are paying.

When inputting a name during onbaording it can be used in two ways:

  1. A NameDesc which gets attached to any generated invoices
  2. A way to personalize content with in the app, such as with a welcome back message.

Using Lightning addresses

Lightning addresses are an invoice protocol that let users create more human readable ways to send and receive lightning payments, such as [email protected].

Ideally you'd have users set their lightning address during onboarding. Where this can be interesting is that this one input, such as my name bosch, can be used in several unique ways:

  1. The generation of a standard lightning address such as [email protected] that can be used to send and receive bitcoin with any lightning wallet that supports this standard
  2. The generation of a unique payment ID for payments between apps that use the same lightning address server. For example, users can send payments to just bosch instead of [email protected] as long as the payment destination is using the same lightning address domain @bitcoin.app. This would mean having a unique payment flow for this type of payment format, such as Pay with bitcoin.app payment ID option, but this is very common in modern banking apps and I don't think it would confuse people. What would happen behind the scenes is when bosch is entered it would ping the server, see if [email protected] exists, if it does the user can pay the other user. This could also be used in reverse to request a payment with the receiver generating and sending an invoice to sender over the server. So the user is paying or requesting [email protected] by just entering bosch.
  3. A piece of metadata for personalization of the app as mentioned above, such as a welcome back message.
  4. You could maybe also add NameDesc to this stack but lightning addresses are already pretty personalized.

https://zebedee.io/ already does this, its really good UX.

Using Offers

Offers are an invoice protocol that makes it easy to generate and send invoices through the lightning network. They use a vendor parameter, similar to NameDesc, to add a name to generated invoices.

When inputting a name during onbaording, the input can be used in two ways:

  1. As the vendor parameter that is used in any generated invoices
  2. A way to personalize content with in the app, such as with a welcome back message.

If the application uses all 3 of these technologies the name input could really be used for all of the use cases outlined above. This would be some good content to add to the First use section of the daily spending wallet or written up as a case study, thoughts?

Bosch-0 avatar Jun 16 '22 06:06 Bosch-0

This proposal is fully based on the wallet provider also offering lightning addresses to users. Is that something we want to push?

Not sure I'd put usernames as the primary identifier for people. "electricPanda365" is much less useful in an invoice than "Christoph Ono". A feature based on real-world names like regular phone contacts and what is described in the contacts page seems more flexible. Zebedee is about gaming, and their gamer tags are offered as a service to costumers and can be integrated into other games, so I think that focus makes sense.

GBKS avatar Jun 16 '22 12:06 GBKS

This proposal is fully based on the wallet provider also offering lightning addresses to users. Is that something we want to push?

We already do, we suggest lightning addresses several times throughout this reference design.

Instead of username we can just say name then to keep things generic

"electricPanda365" is much less useful in an invoice

That's subjective, maybe they want to be called electricPanda365? This is for the user to decide.

Bosch-0 avatar Jun 18 '22 03:06 Bosch-0

We already do, we suggest lightning addresses several times throughout this reference design.

Supporting lightning addresses for payments is different than offering custom lightning addresses, no?

By the way, is it possible to do this in a non-custodial way? With Zebedee, I have to create an account via email/password, and they also ask me to verify my ID.

Instead of username we can just say name then to keep things generic

Differentiating between "Display name" and "Username" (or handle) might be the way to go.

GBKS avatar Jun 21 '22 12:06 GBKS

Did we cover this in https://bitcoin.design/guide/daily-spending-wallet/contacts/?

pavlenex avatar Nov 22 '22 11:11 pavlenex