Replies: 4 comments
-
Thanks for kicking of this discussion @polmaire! It's super important to think about the different primitives associated with communication. First, I want to highlight that the slight difference between Lens and ENS (as it pertains to XMTP) today:
The resolver, identity, and conversationId concepts have significant overlap but I'll attempt to break them down individually to highlight the problem each of them address. Disclaimer: this is my understanding and I'm open to debating different perspectives around these concepts. Resolver I must admit that the lines between resolvers and identities (origin identities to be explicit) are blurry for me. In a world with account abstraction, an NFT (ENS, BAYC, etc) could theoretically generate XMTP keys that facilitate conversations with that specific NFT. Identity Even though today only EOA addresses are supported for XMTP key creation, we want to support smart contract wallets, non-EVM chains, and account abstraction in the future. These updates will broaden the scope of what can create XMTP keys and therefore be the 'origin identity' for XMTP communication. ConversationId
In some ways, you can think of |
Beta Was this translation helpful? Give feedback.
-
@polmaire thanks for bringing this one up! It certainly is a complex topic, especially in the context of multiple different "identities" which may be associated with the same EOA, and therefore XMTP account. Regarding your naming, I might suggest the use of simply "identifier" as this could be all-encompassing to refer to any kind of naming system (ENS), profile system (Lens), owned NFT association (BAYC 3073), or just 0x address. To expand on your use cases a bit, I'll drop one more into the mix which would happen through the following scenario:
After the name change, no history is preserved to help Bob know that at one point they were talking with Alice under the This scenario happened with me specifically when I previously had It's not so bad when the name change is subtle, or obvious, as the examples above. It's much worse if someone takes an identifier away from an address entirely, which completely removes the context from previous conversations. Whatever the solution may entail, it seems reasonable to desire an identifier to be associated with messages at the time that they're sent, so that the history may be preserved. Clients could present the historical name as context, associated with previous messages, if the current name no longer matches the historical one. It could also present the current one (possibly even just an address) alongside for that additional context. |
Beta Was this translation helpful? Give feedback.
-
Does XMT plan on enabling the filtering results at the protocol level as opposed to having to do so on the client? It feels like, as adoption grows, it will not make a ton of sense to fetch all conversations and then filter on the client, but instead be able to retrieve only the conversations needed for the individual app. If this becomes supported, then I guess the API for this will dictate how the specification is decided? |
Beta Was this translation helpful? Give feedback.
-
I just mentioned this proposal in my own proposal. I think the approaches are complimentary. From my post, I made this distinction:
|
Beta Was this translation helpful? Give feedback.
-
Hey! I'm Pol, co-founder at Converse.
I'm writing this post to start a conversation on a topic that might become a standard or an XIP.
Please feel free to comment / debate, the goal here is to check if our need is specific or if it is a real XMTP use case.
Context
It's been a bit more than one month since we started working on Converse.
We often face a question that has no clear answer for now: who is talking to who?
Indeed, the protocol only handles wallet to wallet communication for now.
If I type an ENS to find someone in a client, the conversation that I start will not "remember" that I'm talking to this specific ENS.
Existing solutions
http://lens.dev/dm/<id1>-<id2>
; it is needed because some wallet contain several Lens profiles and they want to display which Lens profile is talking to which Lens profile.Proposition
I suggest we add information in the conversation metadata that will help remember who is talking to who.
It would help any client display the right information to the user.
The question is: how should we define "who"? From a user perspective, there are two clear use cases:
But there will most probably be many more "identity providers" in the future:
One could also see other types of assets becoming "identities":
I'm voluntarily not exploring the technical ways to implement such identities for now because I want to start focusing on the use cases before going deeper into the tech needs.
Other remarks / questions
I'd be very happy to have your thoughts on this identity to identity concept. Thank you in advance!
Beta Was this translation helpful? Give feedback.
All reactions