Skip to main content

Supported Wallets

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 connection.

Identities must be generated from and associated with an Ethereum wallet's public address and private key. Future versions of the protocol may enable identities to be generated from wallets and/or keypairs native to other blockchains.


The xmtp-js client is initialized using an ethers.Signer instance.


Multiple identities may be generated from the same wallet by changing to a different address.


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.