A data source for squids that stores the historical block data in a normalized way. See Archives.
A cloud service to deploy and run squids in a serverless fashion maintained by Subsquid Labs GmbH. See Deploy a Squid
A set of external transactions and execution logs that defines an atomic state transition of the chain. The chain blocks have a well-defined structure and are partially ordered by the hash references. See more details in the Substrate docs
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. Subsquid 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.
A pallet developed by Parity to execute WASM-based smart contracts.
Stands for Extract-Transform-Load. A pipeline to extract data from the source, enrich, transform, normalize and load into the target data store.
A structured log message emitted by the Substrate runtime and stored on-chain as part of the block data.
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).
A generalized transaction externally submitted to a Substrate runtime for execution. There are technical nuances differentiating transactions and extrinsics.
A collection of standard Substrate pallets maintained by Parity. Currently kept in the Substrate Repo
A Substrate palette implementing the Ethereum Virtual Machine. In particular, Substrate chains with a Frontier palette support EVM-based smart contracts. See Parity Tech Docs page
A declarative query language and an API specification developed by Facebook as an alternative to REST. See the official GraphQL docs for more details.
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
A portable module that can be added to the Substrate runtime. Typically, contains a self-contained implementation of a business logic that can be re-used across multiple chains.
A file describing the target data schema for a squid, normally called
schema.gql. The file uses a GraphQL dialect to define entities, properties and relations. See details here.
A key-value map defining the internal world view of the Substrate runtime in a specific point of time. The consensus algorithm ensures that the honest majority of the nodes agree on the runtime state.
A persistent key-value database kept by the Substrate nodes. It is used to access the current and historical state. See details on the Substrate docs page
A project consisting for an ETL for extracting and transforming on-chain data (squid processor), and an API to present the target (squid API)
The ETL part of the squid. Extracts on-chain data from an Archive, transforms, optionally enriches with external data and saves into a target database.
The data presentation part of the squid. Typically, it's a GraphQL API auto-generated from the schema file. See details here.
A framework for developing blockchain runtimes. Used to develop the Polkadot, Kusama chains and all the parachains.
The code run by the chain nodes that defines the state transitions. The runtime defines the business logic of the chain. See details on the Substrate docs page.
A collection of open-source libraries to build squids.
A tool generating strongly typed data access classes from a metadata in some format. Subsquid SDK includes typegen tools:
- for accessing event, extrinsics and storage data based on the substrate metadata. See Substrate typegen
- for accessing EVM smart contract data based on the contract ABI. See EVM typegen
- for accessing Ink! smart contract data based on the contract metadata. See Ink! typegen
A portable binary code format and the execution environment specification. WASM programs enjoy deterministic outputs and near-native execution speeds, which makes WASM an attractive alternative to EVM.