|
| 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