Check out our SDK overview document and comment!

We need your input!

We’re excited the share the overview of our upcoming SDK. We’ve posted the overview document on our Gitbook for everyone to see.

Once you’ve had a chance to look it over, please come back here to leave comments and feedback so we can have a discussion! We’ve had great 1:1 feedback so far but we’re hoping to start a healthy discussion here!

We’re looking forward to hearing what you think!

Here are some FAQ’s about the document :point_down:

What does “pre-stable” mean?

The XMTP protocol is in the early stages of development. This initial SDK is being provided for evaluation, feedback, and community contribution, and is not intended for production applications. Breaking changes should be anticipated until the “pre-stable” label is dropped. Additionally, messages sent with the pre-stable SDK should not contain sensitive information or for purposes requiring guaranteed or timely delivery.

What are the costs of message storage and retrieval and how are they calculated?

The economic model that determines network fees – called “postage” – is still under development. As such, XMTP Labs currently absorbs all costs of storage and retrieval. Our goal is to keep messages very cheap, if not outright free in many circumstances, and for the postage fees that are incurred to serve as a method of economic spam control.

How do I restrict messaging to members of a token-gated community?

XMTP is a universal messaging protocol that guarantees message delivery from any sender to any eligible recipient. The protocol does not currently specify eligibility restrictions, so in practice, any sender can send a message to any recipient.

In the future, the network may incentivize nodes to reject messages that are addressed to ineligible recipients. Until then, clients are responsible for enforcing any restrictions on message sending or display:

  • To restrict sending, developers may superficially restrict the set of recipients for any sender.

  • To restrict display, developers may filter received messages through a list of permitted sender addresses.

The client SDK may in the future provide components and utilities that achieve these effects.

What wallets are supported?

Currently, developers are responsible for implementing wallet support using a third-party wallet abstraction and passing an existing Ethereum Provider/Signer instance to the XMTP client SDK. XMTP may in the future provide our own wallet abstraction as a utility for developers.

How does XMTP establish a secure relationship between two identities that cannot be spoofed?

Wallets sign and advertise a set of regularly rotated keys that can be used to establish a shared secret for encryption using another wallet’s keys. These keys attest to the authenticity of both wallets and are required in order to add messages to their conversation. No third-party clients or relayers are involved in this process.

What message formats and metadata are supported?

A message payload is transported as simply a set of bytes, which can represent any format that a developer would want to support, such as plaintext, JSON, or even non-text binary or media content. Message payloads also include references to the sender and recipient identities and timestamps; however, timestamps are not currently independently verified and may be set to any value by the sending client.

The community may in the future propose and adopt standards for message formats.

What message retention policies are supported?

Nodes will currently delete messages from conversation history after 30 days. In the future, nodes may be incentivized to respect per message or per address retention policies, or to delete specific messages at a user’s direction.

Does the SDK support search queries for message content?

This initial release will not provide a facility for searching by content, but we may add support for this and other filtering logic in the future.

What latency is expected for message retrieval and delivery?

We will communicate performance guidelines and expectations once community testing of the XMTP network is underway.


It’s a very good project, and I hope to be able to join it more quickly.


Thanks for the feedback Jack!