-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support of tags in LUD-16 static identifiers #197
Comments
I see the point. I like this. Do you have a concrete use case in mind? Depending on the use case I think it would probably be better to use LUD-18 and attach other forms of payer data. |
Concrete use case is a) proving multiple identifiers out-of-the-box, b) adapting the description dynamically. This is accomplished without the need to add any additional properties to the response.
Ah, even better. I see now that adding "text/tag" is not worthwhile, as there is yet another field for wallets to optionally display. LUD-18 seems much appropriate. However, to support current use cases mentioned above, this is also not strictly necessary. If I understand correctly, |
i really like the idea! |
The idea here is that, additionally to the
<username>@<domainname>
format of LUD-16 static internet identifiers, aSERVICE
can offer multiple addresses resolving to the same user by using the format<username>+<tag>@<domainname>
, e.g.satoshi+whitepaper@bitcoin.org
(see Plus signs ("+") in email addresses). The normal flow does not change: Upon seeing such an address,WALLET
makes aGET
request tohttps://<domain>/.well-known/lnurlp/<username>+<tag>
endpoint.It is upon the
SERVICE
to decide what to do. If it supports tags, it SHOULD strip the+<tag>
part and continue as normal.A
SERVICE
MAY subsequently include the tag in themetadata
property of the response:Currently, the
<username>
character set is limited toa-z0-9-_.
which means the+
sign has not been allowed yet and wallets that are not aware of it will either just deny it, or support this change and immediately use<username>+<tag>
as<username>
. I suppose that most wallets do not validate fora-z0-9-_.
and will happily use everything up to@
as username. The only tested wallet is Zeus, which supports sending usernames with+
.Example of a service that already accept
+tag
: https://ln.tips/.well-known/lnurlp/fiatjaf+test (albeit without resolving to "fiatjaf" and a dedicated entry in metadata)Example of a service that does not support
+tag
: https://stacker.news/.well-known/lnurlp/fiatjaf+testWith all that said, I propose adding
+<tag>
as an OPTIONAL feature with a suggestion forSERVICE
s to handle them accordingly. No already existingSERVICE
is forced to update and can continue to work as is.Benefits
With this suggestion, a
SERVICE
can offers users a "standardized" way to use multiple identifiers. e.g. a user can includefiatjaf+s01e01@ln.tips
in the description of the first episode of a podcast,fiatjaf+s01e02@ln.tips
for the second and so on and so forth. For written text it might befiatjaf+article1@ln.tips
, for code repositories it might befiatjaf+poncho@github.com
orfiatjaf+nos2x@github.com
, etc.Drawbacks
Since a user knows whether a
SERVICE
supports this scheme, an identifier with+<tag>
is used only when this is the case - so there is no disadvantage on theSERVICE
side. On theWALLET
side, it might be that the GET request will not be performed if the wallet follows the current validation rules. In this case, a user SHOULD strip the tag manually - which is arguably not desirable.Should this be an addition to LUD-16 or would you rather suggest this being a distinct LUD? Imho, an own LUD seemed overkill as the changes would be minimal and optional. What do you think?
Any and all suggestions are highly appreciated 🙏
The text was updated successfully, but these errors were encountered: