squid-sdk is a free, open source data engineering & integration project written in TypeScript and released under Apache-2.0. It has 1,340 GitHub stars, 202 forks and 57 open issues, and was last pushed 14 hours ago. On this registry it ranks #34 of 51 tracked projects in Data Engineering & Integration, with 5 head-to-head comparisons available.

Squid SDK - an ETL framework for Web3 data

npm License: Apache-2.0 Docs

Squid SDK is a TypeScript ETL toolkit for blockchain data, that currently supports

  • Ethereum and everything Ethereum-like
  • Substrate-based chains
  • Solana.

Squid SDK is distinguished by

  • Being a toolkit (rather than an indexing app like TheGraph or Ponder)
  • Fast binary data codecs and type-safe access to decoded data
  • Native support for sourcing the data from SQD Network.

The latter is a key point, as SQD Network is a decentralized data lake and query engine, that allows to granularly select and stream subset of block data to lightweight clients while providing high performance compared to traditional RPC APIs.

Quickstart

Install the SQD CLI and scaffold a new project:

npm install -g @subsquid/cli
sqd init my-squid

For step-by-step instructions, follow the How to start guide.

Documentation

Developer community

Our developers are active in the SQD developer community on Telegram. Feel free to join and ask any question!

Contributing

SQD is an open-source project, contributions are welcomed, encouraged and will be rewarded!

Please consult CONTRIBUTING.md for hacking instructions and make sure to read our code of conduct.

Change Management

This project uses Rush for monorepo management. When making changes to packages, you need to document them using the rush change system:

  1. After making your changes and committing them, run:

    rush change -b origin/master
    
  2. Follow the interactive prompts to:

    • Select the type of change (major, minor, patch, or none)
    • Provide a clear description of what changed
    • The description should explain the feature/fix from a user's perspective
  3. Change types:

    • major: Breaking changes that require users to update their code
    • minor: New features that are backward compatible
    • patch: Bug fixes and small improvements
    • none: Internal changes that don't affect the public API
  4. Best practices:

    • Write clear, concise descriptions
    • Focus on what changed from the user's perspective
    • Include relevant technical details when necessary
    • Use present tense ("Add feature X" not "Added feature X")

The change files are automatically generated in common/changes/@subsquid/[package-name]/ and will be used to generate changelogs during the release process.

Frequently asked questions

Is squid-sdk free to use?

squid-sdk is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does squid-sdk do?

TypeScript ETL toolkit for indexing Ethereum, Solana, and Substrate data, sourced from SQD Network.

What is squid-sdk written in?

squid-sdk is primarily written in TypeScript. Its source is publicly available at https://github.com/subsquid/squid-sdk, and it has 1,340 GitHub stars.