This is the official repository for XMTP client SDKs and content types for browsers and Node, written in TypeScript.
To learn more about the contents of this repository, see this README and the READMEs provided in each workspace directory.
XMTP offers SDKs for a variety of use cases. Whether you're building a chat app, an automated agent, or a custom messaging backend, there's an SDK for you. This guide will help you get started developing with JavaScript or TypeScript.
- Browser SDK: Use this if you want to build a complete messaging web app (like xmtp.chat). Runs entirely in the browser using WASM and Web Workers.
- Node SDK: Use this if you want to build a messaging CLI or have custom use cases beyond a chatbot/agent.
- Agent SDK: Use this if you want to create a bot that runs on a server and replies to people messaging it. Built on top of the Node SDK with an event-driven middleware architecture.
xmtp.chat: A web app for developers to experiment with XMTPxmtp.chat-api-service: An API to use Pinata's file storage
agent-sdk: XMTP agent SDK for Nodebrowser-sdk: XMTP client SDK for browsersnode-sdk: XMTP client SDK for Node
content-type-primitives: Primitives for building custom XMTP content typescontent-type-group-updated: Content type for group update messagescontent-type-reaction: Content type for reactions to messagescontent-type-read-receipt: Content type for read receipts for messagescontent-type-remote-attachment: Content type for sending file attachments that are stored off-networkcontent-type-reply: Content type for direct replies to messagescontent-type-text: Content type for plain text messagescontent-type-transaction-reference: Content type for on-chain transaction references
See our contribution guide to learn more about contributing to this project.