This repository contains subgraphs for event listening of XMTP smart contracts related to payer services. This indexed data can be consumed by apps, enabling real-time UI updates, historical data analysis, and overall enhanced user experience without directly querying raw blockchain data.
- The Graph Protocol: Decentralized indexing protocol for organizing blockchain data.
- Graph CLI: Command-line interface for developing and deploying subgraphs.
- AssemblyScript: A TypeScript-like language compiled to WebAssembly, used for writing subgraph mapping logic.
- Alchemy Subgraphs: Hosted service for subgraph deployment and querying.
This monorepo is organized into two primary subgraph projects, one for each target chain type (settlement chain and appchain):
.
├── settlement-chain-contracts/ # Subgraph for Base
│ ├── abis/ # Contract ABI files
│ ├── src/ # AssemblyScript mapping handlers
│ ├── <environment>.yaml # Subgraph manifest for a specific environment
│ ├── schema.graphql # GraphQL schema for entities
│ ├── .env # API key and version label
│ └── package.json # Build and deployment scripts
├── appchain-contracts/ # Subgraph for XMTP Appchain
│ ├── abis/
│ ├── src/
│ ├── <environment>.yaml
│ ├── schema.graphql
│ ├── .env
│ └── package.json
└── README.md
Each directory (app-chain and settlement-chain) contains a self-contained subgraph project, including its schema, ABIs, mapping logic, and scripts.
- Node.js
- npm or Yarn (Yarn recommended for
workspaces)
- Clone the repository:
git clone https://github.com/xmtp/subgraphs.git
cd subgraphs- Install dependencies:
In each project directory, run:
npm install
# or
yarn install- Configure Environment Variables: Create a
.envfile in the relevant subgraph project (settlement-chain-contractsorappchain-contracts) and add your Alchemy deploy key and a version label:
DEPLOY_KEY=YOUR_ALCHEMY_DEPLOY_KEY
VERSION_LABEL=v0.3.0
TODO
Once your subgraphs are deployed and synced, you can query their data using GraphQL. Alchemy provides a dedicated GraphQL API endpoint for each deployed subgraph. You can find this endpoint on your subgraph's dashboard in the Alchemy UI.
This project is licensed under the MIT License. See the LICENSE file for details.
