Skip to content

Quickstart: Build an app with XMTP

This quickstart provides a map to building a secure messaging app with XMTP, including support for:

  • End-to-end encrypted direct message and group chat conversations
  • Rich content types (attachments, reactions, replies, and more)
  • Real-time push notifications
  • Spam-free inboxes using user consent preferences

🏗️ Phase I: Setup

  1. Select the XMTP SDK that matches your platform.

    Need an SDK for a different platform? Let us know in Ideas & Improvements in the XMTP Community Forums.

  2. Run a local XMTP node for development and testing.

  3. You can use llms-full.txt to provide the full text of the XMTP developer documentation to an AI coding assistant.

💬 Phase II: Build core messaging

  1. Create an EOA or SCW signer.

  2. Create an XMTP client.

  3. Check if an identity is reachable on XMTP.

  4. Create a group chat or direct message (DM) conversation.

    With XMTP, "conversation" refers to both group chat and DM conversations.

  5. Send messages in a conversation.

  6. Manage group chat permissions and metadata.

  7. Manage identities, inboxes, and installations.

📩 Phase III: Manage conversations and messages

  1. List existing conversations from local storage.

  2. Stream new conversations from the network.

  3. Stream new messages from the network.

  4. Sync new conversations from the network.

  5. Sync a specific conversation's messages and preference updates from the network.

💅🏽 Phase IV: Enhance the user experience

  1. Implement user consent, which provides a consent value of either unknown, allowed or denied to each of a user's contacts. You can use these consent values to filter conversations. For example:

    • Conversations with allowed contacts go to a user's main inbox
    • Conversations with unknown contacts go to a possible spam tab
    • Conversations with denied contacts are hidden from view.
  2. Support rich content types.

  3. Implement push notifications.

🧪 Phase V: Test and debug