> For the complete documentation index, see [llms.txt](https://docs.creatorchain.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.creatorchain.io/developer-resources/data.md).

# Data Indexers

## Discover essential tools for integrating and querying blockchain data.&#x20;

Our official Data indexer from **Subquery** : <https://github.com/subquery/ethereum-subql-starter/tree/main/Creator/creator-testnet-starter>

<figure><img src="/files/wYg2eCmGiCZ6A1sPVjXh" alt=""><figcaption></figcaption></figure>

## SubQuery - Example Project for Creator Testnet

[SubQuery](https://subquery.network/) is a fast, flexible, and reliable open-source data indexer that provides you with custom APIs for your web3 project across all of our supported networks. To learn about how to get started with SubQuery, [visit our docs](https://academy.subquery.network/).

**This SubQuery project indexes all transfers and approval events for the** [**USDT**](https://explorer.creatorchain.io/token/0xB0517790d29753429D63eFe95be5879EDc8c3311) **(`0xB0517790d29753429D63eFe95be5879EDc8c3311`) on Creator Testnet**

### Start

First, install SubQuery CLI globally on your terminal by using NPM `npm install -g @subql/cli`

You can either clone this GitHub repo, or use the `subql` CLI to bootstrap a clean project in the network of your choosing by running `subql init` and following the prompts.

Don't forget to install dependencies with `npm install` or `yarn install`!

### Editing your SubQuery project

Although this is a working example SubQuery project, you can edit the SubQuery project by changing the following files:

* The project manifest in `project.ts` defines the key project configuration and mapping handler filters
* The GraphQL Schema (`schema.graphql`) defines the shape of the resulting data that you are using SubQuery to index
* The Mapping functions in `src/mappings/` directory are typescript functions that handle transformation logic

SubQuery supports various layer-1 blockchain networks and provides [dedicated quick start guides](https://academy.subquery.network/quickstart/quickstart.html) as well as [detailed technical documentation](https://academy.subquery.network/build/introduction.html) for each of them.

### Run your project

*If you get stuck, find out how to get help below.*

The simplest way to run your project is by running `yarn dev` or `npm run-script dev`. This does all of the following:

1. `yarn codegen` - Generates types from the GraphQL schema definition and contract ABIs and saves them in the `/src/types` directory. This must be done after each change to the `schema.graphql` file or the contract ABIs
2. `yarn build` - Builds and packages the SubQuery project into the `/dist` directory
3. `docker-compose pull && docker-compose up` - Runs a Docker container with an indexer, PostgeSQL DB, and a query service. This requires [Docker to be installed](https://docs.docker.com/engine/install) and running locally. The configuration for this container is set from your `docker-compose.yml`

You can observe the three services start, and once all are running (it may take a few minutes on your first start), please open your browser and head to [http://localhost:3000](http://localhost:3000/) - you should see a GraphQL playground showing with the schemas ready to query. [Read the docs for more information](https://academy.subquery.network/run_publish/run.html) or [explore the possible service configuration for running SubQuery](https://academy.subquery.network/run_publish/references.html).

### Query your project

For this project, you can try to query with the following GraphQL code to get a taste of how it works.

```
{
  query {
    transfers(first: 5, orderBy: VALUE_DESC) {
      totalCount
      nodes {
        id
        blockHeight
        from
        to
        value
        contractAddress
      }
    }
  }
  approvals(first: 5, orderBy: BLOCK_HEIGHT_DESC) {
    nodes {
      id
      blockHeight
      owner
      spender
      value
      contractAddress
    }
  }
}
```

You can explore the different possible queries and entities to help you with GraphQL using the documentation draw on the right.

### Publish your project

SubQuery is open-source, meaning you have the freedom to run it in the following three ways:

* Locally on your own computer (or a cloud provider of your choosing), [view the instructions on how to run SubQuery Locally](https://academy.subquery.network/run_publish/run.html)
* By publishing it to our enterprise-level [Managed Service](https://managedservice.subquery.network/), where we'll host your SubQuery project in production ready services for mission critical data with zero-downtime blue/green deployments. We even have a generous free tier. [Find out how](https://academy.subquery.network/run_publish/publish.html)
* By publishing it to the decentralised [SubQuery Network](https://app.subquery.network/), the most open, performant, reliable, and scalable data service for dApp developers. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way
