Skip to main content

Test your app built with XMTP

Be sure to test your app before going live.

Test cases

Here's a list of recommended test cases.

Be sure to test using different devices (mobile, desktop), browsers, window sizes, and inbox sizes.

Wallet connection

  • Connect your preexisting wallet
  • Connect a new wallet using “get a wallet” functionality
  • Disconnect your wallet
  • Reconnect your wallet after disconnection

Identity resolution

  • Verify that your ENS domain appears
  • Verify that your ENS avatar appears
  • Verify that your recipient’s ENS domain appears
  • Verify that your recipient’s ENS avatar appears

Messaging

  • Start a new conversation with an 0x address as the recipient
  • Start a new conversation with an ENS address as the recipient
  • Send a short message (<10 characters)
  • Send a medium message (<200 characters)
  • Send a long message (>200 characters)
  • Receive a short message (<10 characters)
  • Receive a medium message (<200 characters)
  • Receive a long message (>200 characters)
  • Scroll through the conversation list
  • Scroll through a conversation

Need an address to message? See Use test message bots and addresses

Performance

Test your app's performance against these performance benchmarks:

  • Time to load conversation list: 8-15ms to decrypt invites per conversation
  • Sender UX: Time between sending a message and displaying the message in the conversation thread: ≤1 second
  • Recipient UX: Time between sending a message and displaying the message in the conversation thread: ≤1 second

Try testing the performance of your app using test wallets with the following conversation and message data:

  • 500 conversations, each with 1 message
  • 1 conversation with 500 messages

To learn how to quickly populate a test wallet with conversations and messages, see Create a test wallet.

Create a test wallet

It's important to test your app's performance when handling a wallet address with more than just a few conversations and messages. To do this, you can use the xmtp-debug repo to easily populate a test wallet with X number of conversations, each with Y number of messages, on the XMTP network of your choice.

  1. Get a test wallet address.

  2. Run git clone https://github.com/xmtp/xmtp-debug.git.

  3. Run cd xmtp-debug.

  4. Run npm i.

  5. Run npm start -- --env=dev fill-conversation-list $TEST_WALLET_ADDRESS $NUM_CONVERSATIONS $NUM_MESSAGES_PER_CONVERSATION.

    For example, run npm start -- --env=dev fill-conversation-list 0x78b97401850c335abf936C41F4D7a38A2F92D1D2 500 1 to populate test wallet 0x78b97401850c335abf936C41F4D7a38A2F92D1D2 with 500 conversations, each with 1 message, on the XMTP dev network.

Populating test wallets might cause you to hit the XMTP network rate limit. If this happens, wait 5 minutes and try again.

Use test message bots and addresses

If helpful for testing, you can create your own message bot, such as gm.yourappname.eth, using ChainJet or the XMTP Bot Starter. You can use the message bot to receive and send test messages.

If needed, you can also use these addresses for testing:

  • gm.xmtp.eth (0x937C0d4a6294cdfa575de17382c7076b579DC176)

    Message this XMTP message bot to get an immediate automated reply.

  • hi.xmtp.eth (0x194c31cAe1418D5256E8c58e0d08Aee1046C6Ed0)

    Message the XMTP Labs team and a human will reply, though not as quickly as gm.xmtp.eth! 🤖

Was the information on this page helpful?