2022-01-27 19:04:17 +01:00
|
|
|
```
|
|
|
|
bLIP: 0011
|
|
|
|
Title: NameDesc
|
|
|
|
Status: Active
|
|
|
|
Author: Hampus Sjöberg <hampus.sjoberg@protonmail.com>
|
|
|
|
Created: 2022-01-27
|
|
|
|
License: CC0
|
|
|
|
```
|
|
|
|
|
|
|
|
## Abstract
|
|
|
|
|
|
|
|
NameDesc is a standard for conveying "receiver name" in BOLT11 invoices.
|
|
|
|
|
|
|
|
This bLIP serves to document what is already supported by some wallets (see
|
|
|
|
[Reference Implementations](#reference-implementations)), for posterity and so
|
|
|
|
that new implementations don't have to reverse-engineer general-purpose NameDesc
|
|
|
|
from existing implementations.
|
|
|
|
|
|
|
|
## Copyright
|
|
|
|
|
|
|
|
This bLIP is licensed under the CC0 license.
|
|
|
|
|
|
|
|
## Motivation
|
|
|
|
|
|
|
|
BOLT11 lets you include a description of an invoice. This is widely used across
|
|
|
|
the ecosystem, however there's no coherent or conventional way to write an
|
|
|
|
invoice description.
|
|
|
|
|
|
|
|
NameDesc provides a clear way on how to structure an invoice description that is
|
|
|
|
helpful for the user and which the wallet software can parse.
|
|
|
|
|
|
|
|
It specifies how the name of the receiver should be presented, something which
|
|
|
|
isn't always included. Not including the receiver name can lead to a transaction
|
|
|
|
log item only showing an ID or product name, but not the actual service or
|
|
|
|
store.
|
|
|
|
|
|
|
|
NameDesc is intentionally simplistic in order to make it easy for wallets and
|
|
|
|
services to adopt it. It also provides a very good experience should a wallet
|
|
|
|
not support reading NameDesc.
|
|
|
|
|
|
|
|
## Specification
|
|
|
|
|
|
|
|
NameDesc consists in prepending the actual invoice description with the receiver
|
|
|
|
name, a colon and two spaces (`: `).
|
|
|
|
|
|
|
|
For example, Alfred's wallet can produce an invoice with the following
|
|
|
|
description:
|
|
|
|
|
|
|
|
```
|
|
|
|
Alfred: payment for the bubblegum you owed me
|
|
|
|
```
|
|
|
|
|
|
|
|
When Barbara's wallet receives that, it displays something like:
|
|
|
|
|
|
|
|
```
|
|
|
|
Paying to: Alfred
|
|
|
|
Description: payment for the bubblegum you owed me
|
|
|
|
```
|
|
|
|
|
|
|
|
## Rationale
|
|
|
|
|
|
|
|
NameDesc paves a way for a more structured and standardised way of writing
|
|
|
|
invoices descriptions. Wallets that do not support NameDesc will still have a
|
|
|
|
graceful fallback, as they will show:
|
|
|
|
|
|
|
|
```
|
|
|
|
Description: Alfred: payment for the bubblegum you owed me
|
|
|
|
```
|
|
|
|
|
|
|
|
And if the payee's wallet doesn't support including a "Name", Alfred can still
|
|
|
|
manually type his name in the description field. Not the best experience in the
|
|
|
|
world, but doable.
|
|
|
|
|
|
|
|
## Universality
|
|
|
|
|
|
|
|
NameDesc lives in the application layer. It is not necessary for a lightning
|
|
|
|
implementation to support/insert what the bLIP does here.
|
|
|
|
|
|
|
|
## Backwards Compatibility
|
|
|
|
|
|
|
|
This does not have backwards compatibility concerns.
|
|
|
|
|
|
|
|
## Reference Implementations
|
|
|
|
|
|
|
|
* Blixt Wallet: <https://github.com/hsjoberg/blixt-wallet/commit/e0ab93fdbaa92ec56bf920803bae22bf9108dfc4>
|
|
|
|
* lntxbot: <https://github.com/fiatjaf/lntxbot/commit/3bde760066ad5ae20e0672a53cdbd910f14d7149>
|
2022-12-09 15:36:09 +01:00
|
|
|
* Open Bitcoin Wallet: <https://github.com/nbd-wtf/obw/commit/e2b222db5ad92d8f348da4845b4e9fe3bf3c4917>
|