Solana Quickstart
This 5-minute tutorial shows you how to build a Solana indexer using Squid SDK. You’ll create a complete blockchain indexer that fetches, decodes, and serves Solana program data.What you’ll build
Your Solana indexer (squid) will:- Fetch historical Solana program instructions and transactions from the SQD Network
- Save the data to a local PostgreSQL database
- Start a GraphQL server with a rich API to query the indexed data
This tutorial focuses on Solana. For other chains, see the EVM
Quickstart or Substrate
Quickstart.
Prerequisites
Before you begin, ensure you have:- Node.js v18+ - Download here
- Git - Download here
- Docker - Download here (for running PostgreSQL)
- WSL (Windows only) - Install WSL
Scaffold the indexer project
Create a new Solana squid project:
The template provides a pre-configured project structure for indexing Solana
programs.
Install Portal API package
Portal support requires the
@portal-api version of the Solana processor package:This version includes Portal-specific features and optimizations for improved performance.
Inspect the project structure
Explore the The The data processing and storage logic:
./src folder:Key files explained: -
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 contains the core processor configuration for Solana:main.ts
main.ts
Install dependencies and build
Install dependencies and build the project:
Verify the build completed successfully by checking for the
lib/ directory.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 Solana blocks.
Start the GraphQL API
Start the GraphQL API to serve the indexed data:
The GraphQL playground is available at
localhost:4350/graphql

