> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monad.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Indexing Frameworks

## Background

**Smart contract indexers** are off-chain calculators that compute additional metrics specific to one smart contract. Calculators can be thought of as extensions to a smart contract that do additional off-chain computation and maintain additional off-chain state.

*Simple example:* the [UniswapV2Pair contract](https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol) maintains minimal state for the pool and emits `Mint`, `Burn`, and `Swap` events. If we wanted to know the cumulative number and volume of swaps on the pair, we could write and deploy a custom indexer instead of adding additional state variables and computation to the contract.

Smart contract indexers typically produce object schemas using the [GraphQL](https://graphql.org/) schema language.

Smart contract indexing services usually provide a hosted service so that users can deploy their indexers without having to run their own infrastructure.

## Provider Summary

<Tabs>
  <Tab title="Mainnet">
    <div class="mintlify-table-wrapper">
      <table class="mintlify-table">
        <thead>
          <tr>
            <th>Provider</th>
            <th>Status</th>
            <th>Docs</th>
            <th>Language</th>
            <th>Framework</th>
            <th>Known for</th>
            <th>Hosted service</th>
            <th>Decen- tralized hosted service</th>
            <th>Onchain & offchain data</th>
            <th>Web- socket subscr- iptions</th>
            <th>Query layer</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>[Envio](https://envio.dev/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.envio.dev/docs/HyperIndex/overview)</td>
            <td>JavaScript, TypeScript, Rescript</td>
            <td>[HyperIndex](https://github.com/enviodev/hyperindex)</td>
            <td>Performance and scale</td>
            <td>✅</td>
            <td>❌</td>
            <td>✅</td>
            <td>✅</td>
            <td>GraphQL</td>
          </tr>

          <tr>
            <td>[Ghost](https://tryghost.xyz/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.tryghost.xyz/ghostgraph/overview)</td>
            <td>Solidity</td>
            <td>GhostGraph</td>
            <td>Solidity development</td>
            <td>✅</td>
            <td>❌</td>
            <td>❌</td>
            <td>❌</td>
            <td>GraphQL</td>
          </tr>

          <tr>
            <td>[Goldsky](https://goldsky.com/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.goldsky.com/)</td>
            <td>AssemblyScript, SQL, TypeScript</td>
            <td>[subgraph](https://github.com/graphprotocol/graph-node), [ETL pipelines](https://docs.goldsky.com/mirror/introduction)</td>
            <td>Real-time data streaming</td>
            <td>✅</td>
            <td>❌</td>
            <td>✅ (with [Compose](https://docs.goldsky.com/compose/introduction))</td>
            <td>❌</td>
            <td>GraphQL and SQL ([in your db](https://docs.goldsky.com/mirror/sinks/postgres))</td>
          </tr>

          <tr>
            <td>[Ormi](https://ormilabs.com/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.ormilabs.com/)</td>
            <td>Assembly- Script</td>
            <td>[subgraph](https://github.com/graphprotocol/graph-node)</td>
            <td>High performance and custom environments</td>
            <td>✅</td>
            <td>❌</td>
            <td>❌</td>
            <td>❌</td>
            <td>Custom GraphQL</td>
          </tr>

          <tr>
            <td>[Sentio](https://www.sentio.xyz/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.sentio.xyz/docs/quickstart)</td>
            <td>JavaScript, TypeScript</td>
            <td>[sentio-sdk](https://github.com/sentioxyz/sentio-sdk)</td>
            <td>Performance; integrated alerting and visualization</td>
            <td>✅</td>
            <td>❌</td>
            <td>✅</td>
            <td>❌</td>
            <td>GraphQL & SQL</td>
          </tr>

          <tr>
            <td>[SQD](https://sqd.ai/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.sqd.ai)</td>
            <td>TypeScript</td>
            <td>[squid-sdk](https://github.com/subsquid/squid-sdk)</td>
            <td>Performance, decentralization</td>
            <td>✅</td>
            <td>Partial[^1]</td>
            <td>✅</td>
            <td>✅</td>
            <td>GraphQL</td>
          </tr>

          <tr>
            <td>[Streamingfast](https://thegraph.market/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.substreams.dev/tutorials/intro-to-tutorials/monad)</td>
            <td>Rust</td>
            <td>[Substreams](https://substreams.dev)</td>
            <td>Performance, low latency and custom sinks</td>
            <td>✅</td>
            <td>❌</td>
            <td>❌</td>
            <td>✅ (gRPC subscription)</td>
            <td>gRPC, 20+ db types supported</td>
          </tr>

          <tr>
            <td>[SubQuery](https://subquery.network/)</td>
            <td>✅</td>
            <td>[Docs](https://academy.subquery.network/)</td>
            <td>TypeScript</td>
            <td>[subql](https://github.com/subquery/subql)</td>
            <td>Decentral- ization</td>
            <td>✅</td>
            <td>✅</td>
            <td>✅</td>
            <td>❌</td>
            <td>GraphQL</td>
          </tr>

          <tr>
            <td>[The Graph](https://thegraph.com/)</td>
            <td>✅</td>
            <td>[Docs](https://thegraph.com/docs/en/subgraphs/quick-start/)</td>
            <td>Assembly- Script</td>
            <td>[subgraph](https://github.com/graphprotocol/graph-node)</td>
            <td>The original indexer</td>
            <td>✅</td>
            <td>✅</td>
            <td>❌</td>
            <td>❌</td>
            <td>Custom GraphQL</td>
          </tr>
        </tbody>
      </table>
    </div>

    *✅ = supported, ⌛️ = in progress, ❓ = unknown, ❌ = won't support*

    [^1]: SQD hosted service is semi-decentralized: the data lake is decentralized, but indexers run on proprietary infra.
  </Tab>

  <Tab title="Testnet">
    <div class="mintlify-table-wrapper">
      <table class="mintlify-table">
        <thead>
          <tr>
            <th>Provider</th>
            <th>Status</th>
            <th>Docs</th>
            <th>Language</th>
            <th>Framework</th>
            <th>Known for</th>
            <th>Hosted service</th>
            <th>Decen- tralized hosted service</th>
            <th>Onchain & offchain data</th>
            <th>Web- socket subscr- iptions</th>
            <th>Query layer</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>[Envio](https://envio.dev/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.envio.dev/docs/HyperIndex/overview)</td>
            <td>JavaScript, TypeScript, Rescript</td>
            <td>[HyperIndex](https://github.com/enviodev/hyperindex)</td>
            <td>Performance and scale</td>
            <td>✅</td>
            <td>❌</td>
            <td>✅</td>
            <td>✅</td>
            <td>GraphQL</td>
          </tr>

          <tr>
            <td>[Ghost](https://tryghost.xyz/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.tryghost.xyz/ghostgraph/overview)</td>
            <td>Solidity</td>
            <td>GhostGraph</td>
            <td>Solidity development</td>
            <td>✅</td>
            <td>❌</td>
            <td>❌</td>
            <td>❌</td>
            <td>GraphQL</td>
          </tr>

          <tr>
            <td>[Goldsky](https://goldsky.com/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.goldsky.com/)</td>
            <td>AssemblyScript, SQL, TypeScript</td>
            <td>[subgraph](https://github.com/graphprotocol/graph-node), [ETL pipelines](https://docs.goldsky.com/mirror/introduction)</td>
            <td>Real-time data streaming</td>
            <td>✅</td>
            <td>❌</td>
            <td>✅ (with [Compose](https://docs.goldsky.com/compose/introduction))</td>
            <td>❌</td>
            <td>GraphQL and SQL ([in your db](https://docs.goldsky.com/mirror/sinks/postgres))</td>
          </tr>

          <tr>
            <td>[Ormi](https://ormilabs.com/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.ormilabs.com/)</td>
            <td>Assembly- Script</td>
            <td>[subgraph](https://github.com/graphprotocol/graph-node)</td>
            <td>High performance and custom environments</td>
            <td>✅</td>
            <td>❌</td>
            <td>❌</td>
            <td>❌</td>
            <td>Custom GraphQL</td>
          </tr>

          <tr>
            <td>[SQD](https://sqd.ai/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.sqd.ai)</td>
            <td>TypeScript</td>
            <td>[squid-sdk](https://github.com/subsquid/squid-sdk)</td>
            <td>Performance, decentralization</td>
            <td>✅</td>
            <td>Partial[^1]</td>
            <td>✅</td>
            <td>✅</td>
            <td>GraphQL</td>
          </tr>

          <tr>
            <td>[SubQuery](https://subquery.network/)</td>
            <td>✅</td>
            <td>[Docs](https://academy.subquery.network/)</td>
            <td>TypeScript</td>
            <td>[subql](https://github.com/subquery/subql)</td>
            <td>Decentral- ization</td>
            <td>✅</td>
            <td>✅</td>
            <td>✅</td>
            <td>❌</td>
            <td>GraphQL</td>
          </tr>

          <tr>
            <td>[The Graph](https://thegraph.com/)</td>
            <td>✅</td>
            <td>[Docs](https://thegraph.com/docs/en/subgraphs/quick-start/)</td>
            <td>Assembly- Script</td>
            <td>[subgraph](https://github.com/graphprotocol/graph-node)</td>
            <td>The original indexer</td>
            <td>✅</td>
            <td>✅</td>
            <td>❌</td>
            <td>❌</td>
            <td>Custom GraphQL</td>
          </tr>
        </tbody>
      </table>
    </div>

    *✅ = supported, ⌛️ = in progress, ❓ = unknown, ❌ = won't support*

    [^1]: SQD hosted service is semi-decentralized: the data lake is decentralized, but indexers run on proprietary infra.
  </Tab>
</Tabs>

## Provider Details

### Envio

[Envio](https://envio.dev/) is a full-featured data indexing solution that provides application developers with a seamless and efficient way to index and aggregate real-time and historical blockchain data for Monad Testnet. The indexed data is easily accessible through custom GraphQL queries, providing developers with the flexibility and power to retrieve specific information.

[Envio HyperSync](https://docs.envio.dev/docs/HyperIndex/hypersync) is an indexed layer of the Monad Testnet blockchain for the hyper-speed syncing of historical data (JSON-RPC bypass). What would usually take hours to sync \~100,000 events can now be done in the order of less than a minute.

Designed to optimize the user experience, Envio offers automatic code generation, flexible language support, multi-chain data aggregation, and a reliable, cost-effective hosted service.

To get started, visit the [documentation](https://docs.envio.dev/docs/HyperIndex/overview) or follow the [quickstart](https://docs.envio.dev/docs/HyperIndex/contract-import) guide.

### Ghost

With [GhostGraph](https://tryghost.xyz/graph), you can write your indexers in the same language as your contracts: Solidity. This means less context switching and faster time to market.

To get started, visit the [documentation](https://docs.tryghost.xyz/ghostgraph/overview/) or check out the [tutorial](/guides/indexers/ghost).

Services supported:

* GhostGraph

### Goldsky

[Goldsky](https://goldsky.com/) handles the hard parts of building on crypto rails: real-time data and reliable connectivity, so you can ship better products, faster.

Goldsky offers two core self-serve products that can be used independently or in conjunction to power your data stack.

* [**Subgraphs**](https://docs.goldsky.com/subgraphs/deploying-subgraphs): Instant GraphQL APIs for Monad data with zero maintenance.
* [**Mirror**](https://docs.goldsky.com/mirror/create-a-pipeline): Stream realtime Monad data directly into your database.

To take your app to the next level, build using Goldsky’s next gen data pipeline engine:

* [**Turbo**](https://docs.goldsky.com/turbo-pipelines/introduction): *Really fast decoding*, infinite filters, dynamic tables, and live data inspection.

To get started, visit the [documentation](https://docs.goldsky.com/introduction) for guided walkthroughs.

### Ormi

[Ormi](https://ormilabs.com/) delivers real-time blockchain data that is fast, accurate, and ready for production.

It keeps data synced to the tip of the chain and makes it instantly accessible through Subgraphs and APIs without the need to manage indexing infrastructure.

Ormi provides two core products:

* **Subgraphs**: Smart contract data at sub-second latency with zero throttling.
* **Data API**: Real-time and historical blockchain data delivered through flexible, high-speed API endpoints.

Ormi supports shared, dedicated, and fully custom environments that provide isolated performance for high-demand workloads.

Start building by exploring the [documentation](https://docs.ormilabs.com/) or following the [Quickstart Guide](https://docs.ormilabs.com/subgraphs/quickstart).

### Sentio

[Sentio](https://www.sentio.xyz/) offers blazing-fast native processors and seamless subgraph hosting on Monad. With powerful database capabilities, intuitive dashboards, and comprehensive API functionalities, Sentio is built to provide an exceptional developer experience.

To get started, check out the [docs](https://docs.sentio.xyz/docs/readme) or visit the [quickstart](https://docs.sentio.xyz/docs/quickstart) guide.

### SQD

[SQD](https://sqd.ai/) enables permissionless, cost-efficient access to petabytes of high-value Web3 data.

SQD is a decentralized hyper-scalable data platform optimized for providing efficient, permissionless access to large volumes of data. It currently serves historical on-chain data, including event logs, transaction receipts, traces, and per-transaction state diffs.

To get started, visit the [documentation](https://docs.sqd.ai) or see this [quickstart](https://docs.sqd.ai/sdk/quickstart/) with [examples](https://docs.sqd.ai/sdk/examples) on how to easily create subgraphs via Subsquid.

### Streamingfast

[Streamingfast](https://thegraph.market/) builds massively scalable software
for processing and indexing blockchain data. StreamingFast has built two
foundational technologies:

* [Firehose](https://firehose.streamingfast.io/): a blockchain data extraction layer designed to
  process complete blockchain histories using a files-based and streaming-first approach.
* [Substreams](https://docs.substreams.dev/): a data transformation layer which   allows developers
  to write rust modules that can be composed like building blocks, building upon community-developed
  modules. Substreams can output data to various destinations including PosgreSQL, MongoDB\< Kafka,
  and flat files.

To get started, check out the [docs](https://docs.substreams.dev/), or visit the
[tutorial](https://docs.substreams.dev/tutorials/intro-to-tutorials/monad) for generating your
first substream on Monad.

### SubQuery

[SubQuery](https://subquery.network/) is a leading blockchain data indexer that provides developers with fast, flexible, universal, open source and decentralised APIs for web3 projects. SubQuery SDK allows developers to get rich indexed data and build intuitive and immersive decentralised applications in a faster and more efficient way. SubQuery supports many ecosystems including Monad, Ethereum, Cosmos, Near, Polygon, Polkadot, Algorand, and more.

One of SubQuery's advantages is the ability to aggregate data not only within a chain but across multiple blockchains all within a single project. This allows the creation of feature-rich dashboard analytics and multi-chain block scanners.

#### Useful resources:

* [SubQuery Academy (Documentation)](https://academy.subquery.network/)
* [Monad Testnet Starter](https://github.com/subquery/ethereum-subql-starter/tree/main/Monad/monad-testnet-starter)
* [Monad Testnet Quick Start Guide](https://academy.subquery.network/indexer/quickstart/quickstart_chains/monad.html)

For technical questions and support reach out to us `start@subquery.network`

### The Graph

[The Graph](https://thegraph.com/) is an indexing protocol that provides an easy way to query blockchain data through APIs known as subgraphs.

With The Graph, you can benefit from:

* **Decentralized Indexing**: Enables indexing blockchain data through multiple indexers, thus eliminating any single point of failure
* **GraphQL Queries**: Provides a powerful GraphQL interface for querying indexed data, making data retrieval super simple.
* **Customization**: Define your own logic for transforming & storing blockchain data. Reuse subgraphs published by other developers on The Graph Network.

Follow this [quick-start](https://thegraph.com/docs/en/subgraphs/quick-start/) guide to create, deploy, and query a subgraph within 5 minutes.
