Soldexer is a high-throughput data service for accessing Solana's historical and real-time data. It processes 10MB+ per request with ~2-3 second latency, making it significantly faster than running your own node.
Unlike running your own decicated node (~$2k+/mo) or paying for proprietary APIs, Soldexer gives you scalable access, full filtering, and built-in transformations—at a fraction of the effort and cost.
Soldexer is under active development. Open Beta is coming soon.
- Yarn package manager
- Docker (if using local ClickHouse)
Install the project dependencies:
yarn installThe project uses a soldexer.json configuration file. Here's what each field means:
portalUrl(string): The URL of the Soldexer portalpipes(object): Configuration for each data pipeline
clickhouse(object): ClickHouse database configuration (uses defaults if not provided)
{
"portalUrl": "https://portal.sqd.dev",
"clickhouse": {
"url": "http://localhost:8123",
"database": "soldexer",
"username": "default",
"password": ""
},
"pipes": {
"swaps": {
"fromBlock": 332557468
},
"metaplex": {
"fromBlock": 332557468
},
"pumpfun": {
"fromBlock": 332557468
}
}
}Each pipe requires:
fromBlock(number): Starting block number for indexingtoBlock(number, optional): Ending block number (if not provided, runs indefinitely)
Available pipes: swaps, metaplex, pumpfun
If not provided, the following defaults are used:
url:http://localhost:8123database:defaultusername:defaultpassword:""(empty string)
You have two options for the database:
Start ClickHouse using Docker Compose:
docker compose up -dThis will start a local ClickHouse instance accessible at http://localhost:8123.
If you have your own ClickHouse instance, update the clickhouse section in soldexer.json:
{
"clickhouse": {
"url": "https://your-clickhouse-url:8123",
"database": "your_database_name",
"username": "your_username",
"password": "your_password"
}
}Once you have installed dependencies, configured soldexer.json, and set up your database, start the indexer:
yarn startThe indexer will:
- Read your configuration from
soldexer.json - Connect to the specified ClickHouse database
- Start all configured pipes simultaneously
- Begin indexing Solana data from the specified starting blocks
- Client sends a query to the Portal.
- Portal:
- Pulls recent data from local hotblocks storage.
- Splits and routes historical data queries to decentralized workers.
- Hotblocks Data Service streams live Solana data from RPCs into the Portal.
- Workers fetch and return compressed historical data stored in S3.
| Name | Description |
|---|---|
| solana-ingest | Extracts Solana data and uploads compressed chunks to S3. |
| solana-data-service | Streams live Solana blocks to Portals via RPC. |
| sqd-portal | Handles incoming queries and routes to workers or hotblocks. |
| worker-rs | Decentralized worker that queries and serves data chunks from S3. |
# Install dependencies
yarn install
# Start ClickHouse
docker compose up -d
# Start the swaps indexer
yarn ts-node src/main.ts