Introduction to XMTP
XMTP (Extensible Message Transport Protocol) is an open protocol, network, and standards for secure, private web3 messaging.
Why XMTP?β
Developers build with XMTP SDKs to provide messaging between blockchain accounts in their apps. The XMTP messaging API client takes care of:
Authentication using an XMTP identity that the user owns and controls
End-to-end encryption of messages that the user owns and controls
Providing an interoperable inbox accessible across apps built with XMTP
Relaying messages to the progressively decentralized XMTP network
SDKsβ
Use casesβ
Try messaging with XMTPβ
A great way to start learning how to build an app with XMTP is to use one!
Pick an identity you want to use to message with XMTP.
You can use an Ethereum address to start.
If you have an ENS name, UNS name, or Lens handle associated with the address, you can tell people to use it to message you instead of using your full Ethereum address.
Donβt have an Ethereum address? Create one using a compatible wallet app of your choice. For example:
Coinbase Wallet: When you create an Ethereum account, you can claim a free
cb.id
web3 username
Pick an app.
To explore more apps built with XMTP, see Built with XMTP.
Send a message.
To send a message to an address it must have an XMTP identity already created on the network. Share this page with someone you want to message to help them get on the network if they aren't already there.
In the meantime, need someone to message with? Send a message to these addresses. Try using an ENS name to message one person (or bot) and an 0x Ethereum address to message another.
gm.xmtp.eth
/0x937C0d4a6294cdfa575de17382c7076b579DC176
Get an immediate response from the XMTP message bot
Want to see the interoperable inbox in action?
Try a second app and see all your conversations in both apps, regardless of the app you used to start them. This also means you and a friend can each use your own preferred app to exchange messages.
With XMTP, you own and control your messages and are always free to use the app that best suits your needs.
Works with XMTPβ
XMTP has been implemented to work with Ethereum Virtual Machine (EVM)-compatible wallet apps and blockchain accounts (wallets), though XMTP itself does not use EVMs. XMTP also works with other web3 identities that apps built with XMTP can derive from Ethereum accounts, such as ENS names and Lens profiles.
To learn more, see Works with XMTP.
Protocol overviewβ
A user can send and receive encrypted XMTP messages using an app with an embedded XMTP client, authenticating using a wallet signature. XMTP network nodes transport and persist the user's messages.
For the protocol specification, see The XMTP Protocol in the proto
GitHub repo.