TBD54566975 / dap

Decentralized Agnostic Paytag
12 stars 3 forks source link

Consider alternative scheme for DAP #9

Closed mistermoe closed 3 months ago

mistermoe commented 4 months ago

After hearing some feedback from folks, using a scheme that is effectively identical to email addresses (e.g. moegrammer@cash.app) is probably not a good idea given the likelihood of people thinking it's an actual email address when it in fact isn't. This in-turn can cause confusion and poor UX which effectively defeats the purpose behind DAPs altogether.

alternatives to consider would be:

decentralgabe commented 4 months ago

I dig <name>$<domain.tld>

mistermoe commented 4 months ago

And so it will be @decentralgabe !

decentralgabe commented 4 months ago

As an alternative what about a DID path? Like did:web:cash.app/moegrammer it's uglier but perhaps we could specify a deterministic mapping to be conformant to the DID Web spec

frankhinek commented 4 months ago

a couple other ideas to consider:

or go with the approach UMA took which is to prepend a $: $moegrammer@cash.app

IMHO, using a currency symbol is suboptimal as the text visually runs together and isn't obviously delimited as is the case with the @ symbol.

If we did go with $ as a delimiter, should the spec allow a variety of currency symbols to be used so that it isn't USA / US Dollar centric?

moegrammer$cash.app moegrammer₿cash.app moegrammer€cash.app moegrammer£cash.app moegrammer¥cash.app moegrammer₪cash.app

frankhinek commented 4 months ago

Another thing to consider with $:

In contrast, : and @ are included on most global keyboard layouts. Each region also includes at least some currency symbol on their keyboards, so using it as a delimiter would also work without requiring people to use a special key combination or switch keyboard layouts to input a DAP.

frankhinek commented 4 months ago

Here's another idea that is similar to email addresses but changes the order to ensure that a DAP cannot be mistaken for an email:

@cash.app/moegrammer @didpay.xyz/moegrammer

From a semantic standpoint, it also makes sense if you read it as:

Taking this approach means that providers are free to use currency symbols ($, , , etc.) in their paytags without creating parsing issues. For example, @cash.app/$moegrammer.

The other benefit of this is that the inclusion of money address IDs is also a bit easier to read:

[!tip] IDs can be used as part of the DAP protocol to specify a payment address for a DID subject

For example: @didpay.me/moegrammer#munn

mistermoe commented 3 months ago

Great points @frankhinek! I think we should go with either @moegrammer/cash.app or @cash.app/moegrammer

Instinctively I lean towards the former because I imagine people will think about who they're sending to first.

Though given the wide use of @ on the web, I wonder if we'd run into weird rendering collisions. Let's see what GitHub does when I type in: @mistermoe/cash.app

aparkersquare commented 3 months ago

I'd independently raised the option of using the domain first with @mistermoe, but after considering again I agree that having the name of the person first seems more natural (matches the way I think about sending to a person, not where their ID lives). Apps can help with completion, but I'd guess not all apps are going to do a great job of that.

Considering what symbols are common on (US) keyboards and Android keypad, some options are @ / $ # &. The & and # end up blending into the name when you put as the separator (e.g. @moegrammer&cash.app). As noted above there are cultural issues with $, although I think that might still be acceptable.

Assuming a "prefix" and "separator" this gives us a short-list of

Overall I like @moegrammer/cash.app

aparkersquare commented 3 months ago

Also worth noting it was a very good call to avoid DAPs looking like email addresses.

That scheme has been used for lightning address (and UMA), and this already causes issues.

For example when coinbase launched lightning, some people tried entering a lightning address instead of a lightning invoice. Coinbase treated it as an email, which they already supported as a "send to an email so the email owner can claim the bitcoin later" flow. This would be very bad for customers who might not own the email associated with the domain (e.g. CashApp customer have no access to \<cashtag>@cash.app email, and in fact someone else might own that!).

Best to avoid that issue entirely, and make DAP a separate scheme.

mistermoe commented 3 months ago

Great point @aparkersquare