The Future of Identity in XMTP: Beyond Wallet Addresses

Purpose of this Thread

This umbrella discussion aims to explore how XMTP’s identity model is evolving beyond wallet-based authentication, and what this means for the ecosystem. We’re sharing our current thinking and challenges, but we’re explicitly not prescribing specific product solutions. We want your insights, use cases, and perspectives to help shape our approach.

Current Identity Model in XMTP

Currently, XMTP identifies users by their wallet addresses. This model offers several benefits:

  • Seamless integration with web3 applications
  • Leveraging existing wallet infrastructure for authentication
  • Clear connection between messaging and on-chain identity

Upcoming Changes (XIP-55 and Beyond)

As outlined in XIP-55, XMTP is expanding identity options to include passkeys. This introduces several important changes:

  • Accounts may no longer have a wallet address associated with them
  • Authentication can happen through passkeys rather than wallet signatures
  • New considerations for account discovery and resolution

Key Challenges We’re Facing

Display Names & Metadata Resolution

  • How should applications display users who don’t have wallet addresses to resolve ENS or other on-chain identifiers?
  • What metadata standards should we support for passkey-based identities?
  • How can we ensure consistent identity representation across different apps?

Transaction Capabilities

  • How can developers enable transactions with accounts that don’t have an associated wallet?
  • What UX patterns work best for requesting transaction authorization?
  • How might we link passkey identities to transaction capabilities?

Discovery

  • How should applications make non-wallet-based accounts discoverable?
  • What search and discovery mechanisms make sense in a mixed identity environment?
  • How can we balance privacy with discoverability?

XMTP & Farcaster Identity Integration

  • How should XMTP identity and Farcaster identity interoperate?
  • What are the ideal user experiences for applications that leverage both ecosystems?
  • How can we maintain coherent identity experiences across protocols?

Our Guiding Principles

  • User Choice: Supporting multiple identity methods without forcing a one-size-fits-all approach
  • Progressive Decentralization: Building toward increasingly sovereign identity systems
  • Interoperability: Ensuring XMTP identities work well with other web3 identity systems
  • Privacy: Respecting user control over their identity information
  • Developer Experience: Making identity easy to implement for builders

Discussion Prompts

  1. As a developer, what challenges do you anticipate with displaying and resolving non-wallet-based identities?
  2. How would you prefer to handle transactions with users who authenticate via passkeys?
  3. What discovery mechanisms would you like to see for XMTP accounts?
  4. If you’re building with both XMTP and Farcaster, how would you like to see these identity systems align?
  5. What metadata standards or resolution protocols would be most valuable to support?

Related Resources

We’re excited to hear your perspectives on these evolving identity challenges!

Sometimes this is great, but it’s also counterintuitive to merge a message-able identity and a public view into assets (is this person rich) by default. So love creating flexibility here.

Display name feels great (non-unique, but without the capability of spoofing “owned” names like ENS, Bluesky, etc)

With the note that any XMTP user can choose to use an owned Name as their display name, as well. But there is no requirement to own a name.

This is a great question. One path is to intentionally avoid creating an XMTP/passkey-level namespace of any kind, and instead have clients create “names” for passkey accountholders who wish to be found/discoverable. (These names might be 1:many with passkeys, all resolving to the same messagable address.)

I wonder if we can just get more clear on the public/private split… @saul
Bringing onchain or DIDs to XMTP means bringing the identity you own publicly to our network and using it for secure and private messaging. To protect a public identity requires a new type of security - charge people to message me.

But, there’s also private identities which can be used in many different ways to protect who I am, have an identity for payments, have hidden identities for chats where I want to protect myself, and apps can choose to use all of these together to create unique and powerful experiences bringing the most secure and privacy communication in the world to public and private identities.

What if it is as simple as you discover public available identities. Almost like “creating a public identity or bringing it” makes you discoverable to the network.