bolts
bolts copied to clipboard
Description for invoices is not mandatory?
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)
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...
I check on Phoenix and it shows a QR code automatically when receiving payment, and user input description also seems optional?
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).
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.
Well, you can have an empty description when you don't care.
The rationale behind not making description mandatory is that we wanted to
either have description or description_hash be set, but not both.
You can't force people to do something sane, but we specify that they should. shrug...