The Doppler Indexer provides structured, queryable data for tokens created through Doppler.
We are actively rebuilding our indexing infrastructure in Rust.
This repository is a work in progress and not yet ready for production use.
For the current production indexer, see doppler-indexer.
For API usage and public endpoints, refer to the Doppler Documentation.
The indexer maintains a Postgres database of everything Doppler-related: launched tokens and their metadata, bonding-curve and CPMM pools, swaps, per-block and candle (OHLCV) price history, TVL / market cap / 24h rolling metrics, wallet balances and holder counts, LP positions, and fee accounting — with USD denominations where a price path exists.
There are three ways to query it, all served by the API container:
- REST (
/v1/*) — paginated endpoints for tokens, pools, swaps, portfolios, candles, and search. OpenAPI spec at/openapi.json, Swagger UI at/docs. - GraphQL (
/graphql) — the same data with native field selection; playground included. - Raw SQL (
POST /v1/sql) — ad-hoc read-only queries against the live database for anything the canned endpoints don't cover.
The full consumer guide — table catalog, conventions (base58 vs. bytea, slots, base units), validated example queries, and deployment URLs — lives at docs/consumers/solana.md. Solana (mainnet and devnet) is documented today; EVM chains will follow.
- Local Docker Postgres can use a plaintext
DATABASE_URL, typically withsslmode=disable. - Managed PostgreSQL deployments should use a TLS-enabled
DATABASE_URL, such as DigitalOcean's defaultsslmode=requireconnection string.
This repository publishes a container image suitable for self-hosting.
The intended container flow is:
- Build or pull the image.
- Provide runtime environment variables.
- Mount a persistent
data/directory. - Run the container with Docker Compose or your preferred orchestrator.
Generic deployment examples live under deploy.
deploy/compose.example.yaml: example Compose service definitiondeploy/.env.example: runtime env var template
On pushes to main, the Publish Image workflow builds and pushes separate indexer and API images to:
ghcr.io/${owner}/doppler-indexer-rs:<git-sha>ghcr.io/${owner}/doppler-indexer-rs:mainghcr.io/${owner}/doppler-api:<git-sha>ghcr.io/${owner}/doppler-api:main
Join the Doppler Telegram community or open an issue in this repository to get in touch.