Skip to content
Alchemy Logo

XMTP API Quickstart

How to get started building on XMTP using Alchemy

Don't have an API key?

Build faster with production-ready APIs, smart wallets and rollup infrastructure across 70+ chains. Create your free Alchemy API key and get started today.

XMTP Chain is a Layer-3 appchain built with Arbitrum that settles to Base, providing a decentralized ledger to consistently order XMTP's messaging metadata.

The XMTP API allows interaction with the XMTP network through a set of JSON-RPC methods. Its design is familiar to developers who have worked with Ethereum's JSON-RPC APIs, making it intuitive and straightforward to use.

Let's use the viem package to create an XMTP client connected to Alchemy and fetch the latest block number!

npm install --save viem

import { createPublicClient, http, defineChain } from "viem";
 
const xmtp = defineChain({
  id: 2020,
  name: "XMTP",
  nativeCurrency: { name: "ETH", symbol: "ETH", decimals: 18 },
  rpcUrls: {
    default: { http: ["https://xmtp-mainnet.g.alchemy.com/v2/YOUR_ALCHEMY_API_KEY"] },
  },
});
 
const client = createPublicClient({
  chain: xmtp,
  transport: http("https://xmtp-mainnet.g.alchemy.com/v2/YOUR_ALCHEMY_API_KEY"),
});

Now that you've created a client connected to Alchemy, you can continue with some basics:

const blockNumber = await client.getBlockNumber();
console.log("Current block number:", blockNumber);

const balance = await client.getBalance({ address: "0xab5801a7d398351b8be11c439e05c5b3259aec9b" });
console.log("Balance (ETH):", Number(balance) / 1e18);

const block = await client.getBlock({
  blockNumber: blockNumber, // from previous example
});
console.log(block);

const tx = await client.getTransaction({ hash: "0xYOUR_TX_HASH" });
console.log(tx);

const receipt = await client.getTransactionReceipt({
  hash: "0xYOUR_TX_HASH"
});
console.log(receipt);

For the full list of XMTP APIs, see the XMTP API Endpoints.

Was this page helpful?