Service for streaming Solana blockchain data from Yellowstone gRPC (Geyser) and publishing it to Kafka.
- High-throughput streaming using Yellowstone gRPC.
- Supports multiple datasets: accounts, transactions, slots, etc.
- Granular filtering by Program ID.
- Built-in metrics server for Prometheus.
- Batching and buffering for optimized Kafka publishing.
Required and optional environment variables:
| Variable | Description | Default |
|---|---|---|
GRPC_ENDPOINT |
Yellowstone gRPC endpoint | solana-yellowstone-grpc.publicnode.com:443 |
GRPC_AUTH_TOKEN |
Optional authentication token | (None) |
KAFKA_BROKERS |
Comma-separated list of Kafka brokers | localhost:9092 |
COMMITMENT_LEVEL |
Solana commitment (processed, confirmed, finalized) |
confirmed |
SOLANA_DATASETS |
Datasets to process (comma-separated) | All |
ACCOUNT_PROGRAMS |
Program IDs to filter account updates | (None) |
LOG_LEVEL |
Logging level | info |
accounts: Account state updates.account_audits: Historical account balance changes.transactions: Full transaction data.block_metadata: Block rewards and metadata.slots: Slot status updates.entries: Entry-level validation data.
export GRPC_ENDPOINT="your-endpoint"
npm run devnpm run build
npm startExposes Prometheus metrics on port 9090 (default) including message counts, buffer sizes, and error rates.