Skip to main content

Blockchain Indexer: Deploying a Subgraph

Part 1: Introduction​

This tutorial will guide you through deploying an already initialized subgraph tailored for the Moonchain NFT Marketplace Smart Contract on the Geneva Testnet using The Graph.

Overview of The Graph​

The Graph allows developers to query blockchain data easily using GraphQL. It provides powerful tools to index blockchain data and serve it through a GraphQL endpoint, enabling efficient data access for decentralized applications.

To get started with deploying our pre-initialized subgraph on the Geneva Testnet, follow the steps below:

Prerequisites​

1. Clone the Repository: First, clone the repository and switch to the Geneva branch.

git clone --branch geneva https://github.com/MXCzkEVM/mxc-nft-graph.git
cd mxc-nft-graph

2. Install Required Packages: Install the necessary packages.

yarn add global package.json

Steps for Deployment​

Note

In this tutorial section, we omit the 'init' command typically used to initialize a new subgraph. This is because Geneva Testnet and similar non-standard networks are not supported by the standard init command of The Graph. Instead, we focus on generating the subgraph code directly from the existing schema.

Part 2: Deployment​

Please refer to Moonchain Chains Overview for advanced configurations and specific setup instructions tailored to non-standard networks like the Geneva Testnet.

1. Code Generation: Generate the subgraph code.

graph codegen

2. Build the Subgraph: Build and compile the subgraph.

graph build

3. Create the Subgraph: Generate the subgraph code, replacing <SUBGRAPH-NAME> with the actual name of your subgraph.

graph create --node http://geneva-graph-node.moonchain.com:8020/ <SUBGRAPH-NAME>

4. Deploy the Subgraph: Deploy the subgraph using graph deploy to the Geneva Testnet node specified. Again, replace <SUBGRAPH-NAME> with the actual name of your subgraph.

graph deploy --node http://geneva-graph-node.moonchain.com:8020/ <SUBGRAPH-NAME>

Upon successful deployment, you will receive the URL where you can interact with your Moonchain NFT Marketplace subgraph.

Conclusion​

Use GraphQL queries such as the following example to explore and utilize the capabilities of your deployed subgraph.

query {
marketplaceOrderInfos {
id
assetId
seller
nftAddress
blockNumber
blockTimestamp
transactionHash
event
priceInWei
expiresAt
totalPrice
buyer
}
}

This query retrieves information about orders made on the marketplace, demonstrating how you can leverage your subgraph to access and analyze marketplace order data effectively on the Geneva Testnet.