Skip to content

Latest commit

 

History

History
44 lines (29 loc) · 1.93 KB

12.md

File metadata and controls

44 lines (29 loc) · 1.93 KB

LUD-12: Comments in payRequest.

author: andreneves discussion: https://github.com/fiatjaf/lnurl-rfc/pull/50


Support for LNURL-pay comment

This allows for a WALLET to pass a custom comment property to a SERVICE that accepts it. This can have multiple use-cases. Better donation flow is an easy one to visualize. The entity donating gets to send a message, whether their name/contact/random text and the issuer gets to be paid to read/voice/receive that message, for example streamers.

This is completely additional/ad-hoc, so current implementations are not affected by this. Any services and wallets that wish to support it do need to add some more business logic.

Service-side

SERVICE must alter is JSON response to the first callback to include a commentAllowed field, as follows:

 {
   callback: String,
   maxSendable: MilliSatoshi,
   minSendable: MilliSatoshi,
   metadata: String,
+  commentAllowed: Number,
   tag: "payRequest",
 }

The value of commentAllowed should be the number of characters accepted for the comment query parameter on subsequent callback. (Should be interpreted as 0 if not provided).

Wallet-side

Upon seeing a positive commentAllowed attribute on the response from the SERVICE, a WALLET must display a text input where user can enter a comment string (max character count is equal or less than commentAllowed value) along with the other LNURL-pay metadata (text and image).

After gathering input from the user, WALLET must include the comment in its second callback to SERVICE:

- <callback><?|&>amount=<milliSatoshi>
+ <callback><?|&>amount=<milliSatoshi>&comment=<String>

Note on comment length

GET URL's accept around ~2000 characters for the entire request string. Therefore comment can only be as large as to fit in the URL alongisde any/all of the properties outlined above.