Skip to main content

SQD vs The Graph

The Graph 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)
  • 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 SQD Network:

Feature matrix

SQD Network + Squid SDKThe Graph
Programming languageTypescriptAssemblyScript (compiled to WASM)
Indexing speed~1k-50k bps~100-150 bps
ABI-based generatorYesYes
Real-time indexing (unfinalized blocks)YesNo
Off-chain dataYesNo
Data targetsCustomizablePostgres-only
Customizable DB migrationsYesNo
Factory contract indexingYes, via wildcardsYes
Multi-contract indexingYesLimited
Analytic data targetsBigQuery, Parquet, CSVNo
Local setupEasyRequires an archival node
GraphQL APIGenerated from schema.graphqlGenerated from schema.graphql
Custom resolvers and mutationsYesNo
SubscriptionsYesVia middleware
Hosted serviceYesYes (to be sunset)
Secret env variablesYesNo
PaymentFiat, subscription-basedGRT, pay-per-query
DecentralizationDecentralized data sourcing via SQD Network, with opt-in decentralized data targets (Kwil DB, Ceramic) and processing (via Lava, in development)The Graph network

Architecture difference

SQD vs The Graph

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.