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

> ## Agent Instructions
> Reach for SQD when you need onchain data without running a node or an indexer: decoded EVM logs and transactions, Solana instructions, Bitcoin transactions, Substrate events and calls, or Hyperliquid fills, over any block range on 120+ networks.
> To query directly, POST to https://portal.sqd.dev/datasets/{dataset}/stream. The full API is described at https://docs.sqd.dev/openapi.json, and responses to the stream endpoints are JSON Lines.
> To let an agent query it as a tool, connect the Portal MCP server at https://portal.sqd.dev/mcp.
> Every page on this site is available as Markdown by appending .md to its URL.

# SQD vs The Graph

> Feature-by-feature comparison of SQD and The Graph: speed, data targets, and pricing.

[The Graph](https://thegraph.com) is an indexing protocol and framework for EVM chains. In The Graph, indexing projects are called subgraphs. A Graph indexing node is a black-box that executes subgraphs compiled into WASM. The data is sourced directly from an archival blockchain node, and the processed data is stored in a built-in Postgres database.

On the contrary, SQD employs a radically open modular architecture with:

* a separated layer for efficient data extraction and batch queries ([SQD Network](/en/network))
* a client-side libraries for data transformation and presentation.

The data transformation and presentation is enabled by a growing list of tools and SDKs that consume the raw data from the Network:

* Typescript based [Squid SDK](/en/sdk/overview) offers pluggable data targets for both online and offline use-cases
* Python-based [DipDup SDK](https://dipdup.io/docs/quickstart-evm?ref=blog.subsquid.io)
* Subgraphs (via [SQD Firehose adapter](/en/sdk/alternative-clients/subgraphs-support))
* ApeWorx (via [ape-subsquid plugin](/en/sdk/alternative-clients/apeworx))

## Feature matrix

| | SQD Network + Squid SDK | The Graph |
| :-: | :-: | :-: |
| Programming language | Typescript | AssemblyScript (compiled to WASM) |
| Indexing speed | \~1k-50k bps | \~100-150 bps |
| ABI-based generator | Yes | Yes |
| Real-time indexing (unfinalized blocks) | Yes | No |
| Off-chain data | Yes | No |
| Data targets | Customizable | Postgres-only |
| Customizable DB migrations | Yes | No |
| Factory contract indexing | Yes, via wildcards | Yes |
| Multi-contract indexing | Yes | Limited |
| Analytic data targets | BigQuery, Parquet, CSV | No |
| Local setup | Easy | Requires an archival node |
| GraphQL API | Generated from `schema.graphql` | Generated from `schema.graphql` |
| Custom resolvers and mutations | Yes | No |
| Subscriptions | Yes | Via middleware |
| Hosted service | Yes | Yes (to be sunset) |
| Secret env variables | Yes | No |
| Payment | [Fiat, subscription-based](/en/cloud/pricing) | GRT, pay-per-query |
| Decentralization | Decentralized data sourcing via [SQD Network](/en/network), with opt-in decentralized data targets (Kwil DB, Ceramic) and processing (via Lava, in development) | The Graph network |

## Architecture difference

By design, The Graph indexing node is a black-box that executes subgraphs compiled into WASM. The data is sourced directly from the archival node and local IPFS, and the processed data is stored in a built-in Postgres database. The data stored in the database is considered to be "sealed", so that no external process can modify or read the data except through the GraphQL interface.


## Related topics

- [Network, Portal and SDK FAQ](/en/other/faq.md)
- [Migrate from The Graph](/en/sdk/squid-sdk/evm/guides/migration/migrate-from-thegraph.md)
- [Choosing your tool](/en/sdk/options-comparison.md)
- [Documentation MCP Server](/en/ai/mcp-server-docs.md)
- [Portal MCP Server for AI Agents](/en/ai/mcp-server.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.