Our goal is to make it easy for developers to add messaging to any
web3 project in minutes. This includes:
User to user chat
1 to many notifications and messages
machine to machine (using PKP from Lit)
many to many (group chat)
Every team can use XMTP messaging in their submission and be
eligible for a prize.
Open, composable, and decentralized communication network for
This includes messages, notifications, and soon group chat.
Built (for now) on top of Waku, Lib p2p
Messages are persisted in nodes of the XMTP Network
Users can access messages from any client on the network
enables a diverse set of use cases such as wallet-to-wallet
messaging and dapp-to-wallet notifications.
Users send and receive encrypted messages through clients,
authenticating by way of a wallet signature. Messages are
persisted in nodes of the XMTP Network, enabling portability for
Both clients and nodes are implemented as Waku2 peers, but with
more specialized functions and capabilities.
Encoding and decoding message formats using a standard
Encrypting and decrypting encoded message content
Submitting and retrieving encrypted messages to and from the
Generating secure wallet-based identities capable of encrypting
and decrypting messages
Persisting wallet-based identities locally or with the network
Relaying encrypted messages into replicated storage
retrieving encrypted messages from storage and delivering them
Persisting and advertising wallet-based identities
• XMTP messages are off-chain and therefore interoperable across
blockchains whose wallets are supported. Because all EVM chains
share the same Ethereum wallet and address format, XMTP is
interoperable across EVM chains, including testnets.
Because XMTP identities are securely tied to wallets, a connected
wallet must be present in order to initialize the client. The SDK
does not include a wallet abstraction as it is assumed that
developers already have some way of obtaining a wallet
(For now) Identities must be generated from and associated with
an Ethereum wallet's public address and private key.
All messages in XMTP are encoded with a content type to ensure
interoperability and consistency of experience across the network.
Message payloads are transported as simply a set of bytes. This
means they can carry any content type that a developer would
want to support, such as plaintext, JSON, or even non-text binary
or media content.
Content-types are really
cool to me…
You can extend the
payload to have
objects that can be
Opens up so much.
The SDK enables clients to establish secure, unfalsifiable
relationships between identities in which only the parties can
decrypt messages sent between them.
We have purposely designed the protocol with the ability to
replace algorithms or expand the set of supported algorithms in a
Use XMTP and LivePeer to send video messages back and forth
between users using XMTP. Think a “MarcoPolo clone using
Livepeer and XMTP”
Token-gate video content using XMTP chat to send out access
Allow users to chat while watching video content using XMTP.
• December 7th - 8:00 PST | 11:00 EST
Fundamentals of raising money, even in bear markets
How to find angels for raising money
How do term-sheets work
Let me know if you'd like to attend!
In v1, the XMTP Network will be comprised of nodes operated by
XMTP Labs, and will include a temporary security layer.
Future versions of the protocol will replace these controls with a
series of features intended to manage spam, reduce the surface
area for malicious behavior, and ensure network reliability.
React Native compatibility for xmtp-js (very soon)
Flutter (very very soon)
Swift and Kotlin client implementations
Server-side client implementations