Glossary
Archives
Deprecated term used for SQD Network and for the data sourcing service of the deprecated FireSquid SDK version. Occasionally refers to a chain-specific endpoint available from either source (e.g. "an Ethereum archive"). The new terminology is:
- "Archives" as an abstract collection of services for some networks is replaced by "SQD Network" (when referring to data location) or "SQD Network gateway" (when referring to the service)
- "public Archives" are replaced by the open private version of SQD Network
- "an archive" for a particular network is replaced by "a SQD Network gateway"
List of gateways for the open private SQD Network is available in these docs and via sqd gateways
.
Not to be confused with archive blockchain nodes.
archive-registry
The deprecated NPM package @subsquid/archive-registry
that was used to look up squid data sources by network aliases (with lookupArchive()
and a small CLI). We now recommend using raw gateway URLs instead of lookupArchive()
calls in processor configuration. The exploratory CLI is replaced by sqd gateways
; list of available network-specific gateways is also available in these docs.
Block
An atomic state transition of a blockchain. Typically an ordered collection of transactions.
Call
On Substrate, a call is a sub-routine changing the runtime state. An extrinsic consists of a root call which in turn may have sub-calls, thus calls executed by an extrinsic have parent-child relationship. For example, util.batch
extrinsic has a single root call and multiple child calls. SQD processor is call-based rather than extrinsic based, as normally one is interested in specific calls changing the substrate state, no matter if it was part of a batch extrinsic, or it was wrapped in a sudo or proxy call.
Cloud (former Aquarium)
A cloud service for deploying squids in a serverless fashion maintained by Subsquid Labs GmbH.
Contracts pallet
Contracts
is a pallet developed by Parity to execute WASM-based smart contracts.
ETL
Stands for Extract-Transform-Load. A pipeline to extract data from the source, enrich, transform, normalize and load into the target data store.
Event
An operation performed during a blockchain state transition that results in emission of a structured log message. Subsequently, the message can be retrieved from blockchain nodes.
EVM
Stands for the Ethereum Virtual Machine. An instruction set and the runtime specification originally developed for the Ethereum network which was later adopted by many other chains (e.g. BSC, Polygon).
Extrinsic
On Substrate, a generalized transaction externally submitted to a Substrate runtime for execution. There are technical nuances differentiating transactions and extrinsics.
FRAME pallets
A collection of standard Substrate pallets maintained by Parity. Currently kept in the Substrate Repo.
Frontier pallet
Frontier is a Substrate pallet implementing the Ethereum Virtual Machine. In particular, Substrate chains with Frontier pallet support EVM-based smart contracts.
GraphQL
A declarative query language and an API specification language developed by Facebook as an alternative to REST. See the official GraphQL docs for more details.
Hot blocks
An alternative term for unfinalized blocks that emphasizes the fact that the data extracted from these blocks is volatile. Sometimes used in Squid SDK code and comments.
ink!
An SDK (software development kit) and a smart-contract language for developing WASM-based smart contracts, maintained by Parity. The contracts developed with ink! are compiled into a WASM blob compatible with the API exposed by the Contracts
pallet. More details here.
OpenReader
-
SQD's own open source GraphQL server, built in-house. No longer recommended for new projects running PostgreSQL due to its limitations. See Serving GraphQL to learn more.
-
The GraphQL schema generation library at the heart of 1. Implements OpenCRUD.
Pallet
A portable module that can be added to a Substrate runtime. Typically, contains a self-contained implementation of a business logic that can be re-used across multiple chains.
Schema file
A file describing the target data schema for a squid, normally called schema.graphql
. The file uses a GraphQL dialect to define entities, properties and relations. See details here.
State
A key-value map defining the internal worldview of an EVM contract of a Substrate runtime at a specific point in time. The consensus algorithm ensures that the honest majority of the nodes agree on the runtime state.
Storage
On Substrate, a persistent key-value database kept by the chain nodes. It is used to access the current and historical state. See details on the Substrate docs page
Squid
A project consisting of an ETL for extracting and transforming on-chain data (squid processor), and optionally an API to present the data (squid API).
Squid processor
The ETL part of the squid. Extracts on-chain data from an SQD Network gateway and/or directly from chain RPC, then transforms and optionally enriches it with external data. Saves the result into a target data sink.
Squid API
The data presentation part of the squid. Typically, it's an OpenReader GraphQL API auto-generated from a schema file.
Substrate
Substrate is a framework for developing blockchain runtimes. Used to develop the Polkadot, Kusama chains and all the parachains.
Substrate Runtime
The code that defines the state transition logic of a blockchain, and by extention its business logic. See details on the Substrate docs page.
Squid SDK
Squid SDK is a collection of open-source libraries for building squids.
Typegen
A tool generating strongly typed data access classes from a metadata in some format. Squid SDK includes typegen tools:
- for accessing EVM smart contract data based on the contract ABI
- for accessing event, extrinsics and storage data based on Substrate metadata
- for accessing ink! smart contract data based on the contract metadata
See this section for documentation on these tools.
WASM
A portable binary code format and an execution environment specification. WASM programs enjoy deterministic outputs and near-native execution speeds, which makes WASM an attractive alternative to EVM.