Quickstart
This 5-minute tutorial shows you how to grab an EVM Squid SDK indexer template. At the end you’ll have a complete blockchain indexer that fetches, decodes, and serves Ethereum USDC transfers data.What you’ll get
Your EVM indexer (squid) will:- Fetch all historical USDC transfers on Ethereum from the SQD Network
- Decode the transfer events using contract ABIs
- Save the data to a local PostgreSQL database
- Start a GraphQL server with a rich API to query the historical USDC data
This tutorial focuses on EVM chains. For other chains, see the Solana Quickstart or Substrate Quickstart.
Prerequisites
Before you begin, ensure you have:- Node.js v20+ - Download here
- Git - Download here
- Docker - Download here (for running PostgreSQL)
- WSL (Windows only) - Install WSL
1
(Optional) Install Squid CLI
Install the Squid CLI globally:
Verify installation by running
sqd --version2
Scaffold the indexer project
Create a new squid project from the USDC transfers example:or, if you skipped the installation of Squid CLI
3
Inspect the project structure
Explore the project structure:The Next,
Key files explained: -
src/abi/usdc.ts - Utility module generated from
the USDC contract ABI for event decoding and RPC queries - src/model/ -
TypeORM model classes auto-generated from schema.graphql for database
operations - main.ts - Main executable containing data retrieval
configuration and processing logicmain.ts file first defines the EvmBatchProcessor object and configures its data retrieval options:main.ts
main.ts defines the data processing and storage logic. Data processing is defined in the batch handler, the callback that processor.run() accepts as its second argument:main.ts
4
Install dependencies and build
Install dependencies and build the project:
Verify the build completed successfully by checking for the
lib/ directory.5
Start the database and processor
The processor continuously fetches data, decodes it, and stores it in PostgreSQL. All logic is defined in Apply database migrations:Then start the processor:
main.ts and is fully customizable.First, start a local PostgreSQL database (the template includes a Docker Compose file):The indexer is now running and will begin processing blocks.
6
Start the GraphQL API
Start the GraphQL API to serve the transfer data:
7
Query the data
You can now query your indexed data! Check it out at the GraphiQL playground at localhost:4350/graphql.

