Skip to main content


Explore the xmtp-js client SDK for JavaScript applications on GitHub.

xmtp-js provides a TypeScript implementation of the XMTP client protocol for use with JavaScript and React applications.

For xmtp-js TypeDocs, see

Overview of functions

Wallet-based authenticationConnect to a user's wallet to get the wallet address, sign keys used for message signing and encryption, and authenticate incoming messages.
Wallet connection managementManage changes in wallet addresses or chain IDs. Manage connection issues.
Key pair generationCreate keys used for message signing and encryption and advertising public keys to the network.
Key storageStore keys securely.
Key signingSign keys with a connected wallet.
Relationship initiationCreate a secure messaging relationship between two wallets.
Conversation initiationCreate a container of messages between two wallets.
Message sendingCapture plaintext and submit it to the network.
Message history retrievalRetrieve the history of messages between two wallets, filterable by date range.
Message streamingReceive new messages in real-time.
Message content validationEnsure message security using this middleware.
Message format validationEnsure messages are properly formatted for the XMTP network using this middleware.

Example apps


Have questions? Get help from the XMTP community on Discord. Request access