Skip to content

Commit 3286ece

Browse files
Merge pull request #11 from hsjoberg/blip-0004
BLIP-0011: NameDesc
2 parents b00212b + 579119d commit 3286ece

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,4 @@ For more detail on the process, please read [bLIP-0001](./blip-0001.md) and
2323
| [2](./blip-0002.md) | Reserved Values | Bastien Teinturier | Active |
2424
| [3](./blip-0003.md) | Keysend | Valentine Wallace | Active |
2525
| [10](./blip-0010.md) | Podcasting 2.0 | Satoshis Stream | Active |
26+
| [11](./blip-0011.md) | NameDesc | Hampus Sjöberg | Active |

blip-0011.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
```
2+
bLIP: 0011
3+
Title: NameDesc
4+
Status: Active
5+
Author: Hampus Sjöberg <[email protected]>
6+
Created: 2022-01-27
7+
License: CC0
8+
```
9+
10+
## Abstract
11+
12+
NameDesc is a standard for conveying "receiver name" in BOLT11 invoices.
13+
14+
This bLIP serves to document what is already supported by some wallets (see
15+
[Reference Implementations](#reference-implementations)), for posterity and so
16+
that new implementations don't have to reverse-engineer general-purpose NameDesc
17+
from existing implementations.
18+
19+
## Copyright
20+
21+
This bLIP is licensed under the CC0 license.
22+
23+
## Motivation
24+
25+
BOLT11 lets you include a description of an invoice. This is widely used across
26+
the ecosystem, however there's no coherent or conventional way to write an
27+
invoice description.
28+
29+
NameDesc provides a clear way on how to structure an invoice description that is
30+
helpful for the user and which the wallet software can parse.
31+
32+
It specifies how the name of the receiver should be presented, something which
33+
isn't always included. Not including the receiver name can lead to a transaction
34+
log item only showing an ID or product name, but not the actual service or
35+
store.
36+
37+
NameDesc is intentionally simplistic in order to make it easy for wallets and
38+
services to adopt it. It also provides a very good experience should a wallet
39+
not support reading NameDesc.
40+
41+
## Specification
42+
43+
NameDesc consists in prepending the actual invoice description with the receiver
44+
name, a colon and two spaces (`: `).
45+
46+
For example, Alfred's wallet can produce an invoice with the following
47+
description:
48+
49+
```
50+
Alfred: payment for the bubblegum you owed me
51+
```
52+
53+
When Barbara's wallet receives that, it displays something like:
54+
55+
```
56+
Paying to: Alfred
57+
Description: payment for the bubblegum you owed me
58+
```
59+
60+
## Rationale
61+
62+
NameDesc paves a way for a more structured and standardised way of writing
63+
invoices descriptions. Wallets that do not support NameDesc will still have a
64+
graceful fallback, as they will show:
65+
66+
```
67+
Description: Alfred: payment for the bubblegum you owed me
68+
```
69+
70+
And if the payee's wallet doesn't support including a "Name", Alfred can still
71+
manually type his name in the description field. Not the best experience in the
72+
world, but doable.
73+
74+
## Universality
75+
76+
NameDesc lives in the application layer. It is not necessary for a lightning
77+
implementation to support/insert what the bLIP does here.
78+
79+
## Backwards Compatibility
80+
81+
This does not have backwards compatibility concerns.
82+
83+
## Reference Implementations
84+
85+
* Blixt Wallet: <https://github.com/hsjoberg/blixt-wallet/commit/e0ab93fdbaa92ec56bf920803bae22bf9108dfc4>
86+
* lntxbot: <https://github.com/fiatjaf/lntxbot/commit/3bde760066ad5ae20e0672a53cdbd910f14d7149>

0 commit comments

Comments
 (0)