Skip to content

Run an XMTP network node

Want to be a registered XMTP node operator?

To start, the XMTP Network operates with a limited set of curated node operators to ensure maximum performance and censorship resistance. The XMTP Testnet is powered by registered node operators running xmtpd, XMTP daemon software. xmtpd will also power Mainnet.

To learn more about the decentralized network, see Decentralizing XMTP.

  • Limited slots: Initial cap of 7 node operators to ensure low-latency, high-throughput messaging.
  • Mandatory diversity: Selection is heavily weighted toward operators offering geographic, geopolitical, and industry diversity to mitigate collusion and regulatory risk.
  • Infrastructure control: Preference for those with strong control over infrastructure, ideally bare metal in censorship-resistant jurisdictions, over cloud-only solutions.
  • Excellence required: Proven track record of technical excellence, 24/7 operations, robust security protocols, and a high community reputation.
  • Censorship resistance: Operators must explicitly align with XMTP's core values, prioritizing censorship resistance and decentralized principles.

For a complete understanding of the qualification criteria, selection process, and rationale, see XIP-54: XMTP network node operator qualification criteria.

If your organization meets these standards, apply to operate a registered XMTP network node.

XMTP Testnet timeline

  • Early January 2026: Pre-seed testing

    These three registered nodes are testing the processes that will pre-seed 150M+ real messages from XMTP's production network to the decentralized XMTP Testnet. These three nodes were the first to be on xmtpd v1.0.0.

    Pre-seeding these messages to XMTP Testnet helps validate that we will be able to migrate these messages and more to XMTP Mainnet. This migration will provide a smooth transition for app devs by making previously-published messages available on day 1 of the decentralized Mainnet.

  • Late January 2026: Load testing

    After pre-seed testing is complete, an expanded group of Testnet node operators will be able to pre-seed hte production network messages and participate in expanded load testing.

    Existing registered node operators can qualify to participate in load testing by completing the steps in Node requirements to participate in load testing.

  • Q1 2026: Expanded load testing with real traffic patterns

    After initial load testing is complete, expanded testing with real traffic patterns will be conducted as SDK and app capabilities develop.

Node requirements to participate in load testing

Existing registered node operators must meet the following requirements to participate in load testing.

Successfully participating in Testnet load testing is a prerequisite to be considered for the initial Mainnet node operator set.

  1. Run production-grade infrastructure

    Nodes should run on production-grade infrastructure with strong operational control. Criteria include a preference for bare metal deployments and simpler deployment models over complex orchestration systems. For example, if you are running on AWS/Kubernetes, consider moving to a simpler deployment model for Mainnet.

    For example, see the Systemd Guide.

  2. Run xmtpd 1.0.0 or later

    Nodes must run xmtpd 1.0.0 or a later release. See xmtpd releases for the latest version.

  3. Provide a public DNS

    Nodes must provide a publicly accessible DNS hostname so they can serve gRPC traffic, which requires valid TLS certificates. A stable domain with proper A/AAAA records is needed for certificate issuance and for other nodes and clients to discover and connect securely.

    To do this, register a domain, configure DNS A/AAAA records pointing to your load balancer or node IP, and ensure proper CORS header forwarding. To learn more, see CORS and client routing.

  4. Get an Alchemy account + paid tier

    xmtpd requires reliable blockchain RPC access with sufficient rate limits for Mainnet traffic volumes.

    To do this, sign up for Alchemy, select an appropriate paid tier based on your expected request volume, and configure your RPC endpoint URL in your xmtpd config.

  5. Fund wallet with ETH

    Required to pay gas fees for node registration on the XMTP App Chain (L3) and interact with smart contracts.

    To do this, generate a secure private key, fund it with ETH on the appropriate chain, and store it securely in secrets management. You can use the Base Sepolia faucet to get test ETH. ~$10 of ETH should last months.

    Note that this is the same wallet you'll use to register your node in a subsequent step.

  6. Set up metrics/alerting (Prometheus)

    Monitor node health, resource usage, and errors. Detect issues proactively.

    To do this, deploy Prometheus with xmtpd metrics scraping (OpenMetrics format) and set up Grafana dashboards and alerts.

  7. Monitor ETH balance

    Ensure your wallet never runs out of funds to prevent your node from failing to submit transactions.

    To do this, set up alerting on your wallet balance. This is the wallet you funded in a previous step. You can do this using Prometheus + custom exporter or a third-party service like Alchemy Notify with thresholds for low balance warnings.

  8. Register the node

    Register the node on the Nodes smart contract to participate in the Broadcast Network.

    To do this, send the public key of the wallet you funded in a previous step to the XMTP team. XMTP will configure the registration for you.

    Here is a script you can use to get the public key:

    docker run ghcr.io/xmtp/xmtpd-cli --private-key <private key> keys get-public-key
  9. Catch up with Testnet

    Node must be fully caught up with Testnet data that includes the pre-seeded messages from the XMTP production network.