Works with XMTP
In the spirit of web3 composability, here are just a few of the building blocks that work well with XMTP. Building your app with these tools can help you deliver and distribute an app—faster and with quality.
This list is not exhaustive and is just a starting point. A highly extensible protocol like XMTP can work with more tools than those listed in each section.
To connect web3 wallets to your app:
- Example implementation in the XMTP React Native example app
- Example implementation in the XMTP Inbox Web app
XMTP client SDKs require you to use ethers or another web3 library capable of supplying an ethers Signer. These wallet connection tools, as well as others, provide this capability.
To build message bots to help with testing and user onboarding experiences:
To store encrypted and encoded message payload content:
- Example implementation in
xmtp-jsremote content types
- Tutorial: Introducing remote media attachments
- Example implementation in
To support decentralized identity management:
- Ethereum Name Service (ENS)
- Example implementation in xmtp-inbox-web
- Coinbase cb.id
- Example implementation in Lenster
- Tutorial: Build key XMTP chat features in a Lens app
- Example implementation in the CyberConnect & XMTP Integration Demo App
- Tutorial: Build messaging for CyberConnect profiles
Decentralized app store
To launch your own dApp stores and list any dApp, including your own:
- Polygon dApp Store Kit
XMTP can be used with EVM-compatible wallet apps that support ECDSA signing on the secp256k1 elliptic curve. These include common wallet apps such as:
- Coinbase Wallet
- Rainbow Wallet
- Most wallets in the WalletConnect network
The XMTP SDK does not include a wallet app abstraction, as XMTP assumes that developers have a way to obtain a wallet app connection.
XMTP uses a signature from the blockchain account to create and enable the XMTP identity. Specifically, XMTP identities must be generated from and associated with an Ethereum account's public address and private key. As such, a connected wallet app must be present to generate the signature and initialize the API client in the client app.
A user can generate multiple XMTP identities from the same wallet app by changing to a different blockchain account.
XMTP works with externally owned accounts (EOAs) on Ethereum and Ethereum side-chains and L2s.
Because all Ethereum Virtual Machine (EVM) chains share the same Ethereum wallet and address format and XMTP messages are stored off-chain, XMTP is interoperable across EVM chains, including testnets. (XMTP itself does not use EVMs.)
For example, whether a user has their wallet app connected to Ethereum or an Ethereum side-chain or L2, their private key can generate and retrieve their XMTP key pair to give them access to XMTP.
XMTP is also chain-agnostic, so multi-chain support is possible.
Here are just a few of the chains supported by XMTP:
Avalanche: Contract Chain (C-Chain)
Base (Optimistic L2)
Want to propose a path to compatibility for other popular chains such as Aptos, Bitcoin, Cosmos, Flow, Hedera Hashgraph, Polkadot, Solana, Starkware, Stellar, Sui, and Tezos? Do it via an XMTP grant!
Have you built with a tool that works well with XMTP? Let's add it to this page. Share your experience with
prxshant.eth on xmtp.chat or using the feedback widget at the bottom of this page.