bolts icon indicating copy to clipboard operation
bolts copied to clipboard

Description for invoices is not mandatory?

Open nicolasburtey opened this issue 5 years ago • 7 comments
trafficstars

Bolt11 stipulates that:

MUST include either exactly one d or exactly one h field.
  if d is included:
    MUST set d to a valid UTF-8 string.
    SHOULD use a complete description of the purpose of the payment.
  if h is included:
    MUST make the preimage of the hashed description in h available through some unspecified means.
    SHOULD use a complete description of the purpose of the payment.

Yet, it seems that at least lnd create by default an invoice with no description. Should the spec in the Bolt11 updated to make it optional?

(also related to https://github.com/alexbosworth/ln-service/issues/124#issuecomment-686152665)

nicolasburtey avatar Sep 03 '20 15:09 nicolasburtey

I think it's quite sane to make the description mandatory for any kind of real-world scenario, but that's just my 2 cents...

t-bast avatar Sep 03 '20 16:09 t-bast

I check on Phoenix and it shows a QR code automatically when receiving payment, and user input description also seems optional?

nicolasburtey avatar Sep 03 '20 17:09 nicolasburtey

I think Phoenix inserts "Phoenix payment" if nothing is set. When people are playing with exchanging sats description isn't very important, but once you take into account real merchant scenario I think it is (and merchant apps should tune the UX to force users to input a description IMHO).

t-bast avatar Sep 03 '20 17:09 t-bast

I agree with merchant flow it totally makes sense to have a description.

but my take for consumer to consumer payment, it is not necessary to enforce a mandatory description if users don't care/don't want to. C2C is real payment use-case, not a test case scenario to get familiar with a wallet.

If I'm at a restaurant and giving you back 50000 sats, we both know what the payment is for without a description. Because it's a low amount, I will not be looking to know what it was for 2 years down the road. It's like a cash payment.

I also see that all the wallets focus on user-friendliness do not ask for a memo by default. which makes me wonder why it's enforced at the protocol level.

Right now wallets put their name/brand by default, but I don't think that is necessarily better.

nicolasburtey avatar Sep 03 '20 17:09 nicolasburtey

Well, you can have an empty description when you don't care.

fiatjaf avatar Sep 03 '20 19:09 fiatjaf

The rationale behind not making description mandatory is that we wanted to either have description or description_hash be set, but not both.

cdecker avatar Oct 09 '20 11:10 cdecker

You can't force people to do something sane, but we specify that they should. shrug...

rustyrussell avatar Mar 30 '21 03:03 rustyrussell