High-performance, self-hosted, Kubernetes-native blockchain indexer built in Rust.
Write custom event indexing logic in TypeScript withlogrix-sdkand deploy production indexer clusters to Local Kubernetes or AWS EKS in seconds.
Most blockchain indexers force you into expensive proprietary cloud subscriptions with vendor lock-in, or crash when network reorgs and RPC rate-limits occur.
Logrix is engineered for 100% data sovereignty, cost control, and high-throughput production:
- Custom Event Logic with TypeScript: Write custom business logic and state transformations using
@logrix/sdk(compiled to sandboxed WebAssembly) or zero-code Declarative YAML. - Zero-Dependency Kubernetes Deployment: Mount custom WASM binaries and GraphQL schemas directly into standard pods via Kubernetes Secrets. No custom Docker builds or S3 buckets required.
- High-Throughput Ingestion: Vectorized PostgreSQL writes (
UNNESTarrays) processing >20,000 events/second. - Zero Silent Data Loss (Reorg Safe): In-memory parent-hash rolling buffer detects forks, executes atomic database rollbacks (
is_reverted = TRUE), indexes the canonical winning block immediately, and self-heals gaps. - RPC Billing Protection: Multi-provider failover pool with per-provider circuit breakers, decorrelated jitter, and a built-in Compute Unit (CU) ledger that pauses backfills before exceeding your monthly budget.
- Dual Storage Tiering: Hot GraphQL entities in PostgreSQL; raw full block envelopes compressed with
zstdinto cold AWS S3/MinIO buckets, slashing cloud database storage bills by up to 85%. - Kubernetes Native (Local & AWS): Microservice architecture with active-passive Ingester leader election (Kubernetes Leases) and event-driven worker autoscaling via KEDA (1 to 50+ pods).
EVM Blockchain (Ethereum, Arbitrum, Base, Polygon)
│
▼
┌───────────────────────────────┐
│ Logrix RPC Gateway │
│ • Multi-Provider Failover │
│ • CU Budget Ledger ($) │
│ • Singleflight Dedup │
└───────────────┬───────────────┘
│
▼
Logrix Ingester (Leader Pod)
│
▼
Message Queue (RabbitMQ / AWS SQS)
│
┌────────────────┼────────────────┐
▼ ▼
Logrix Processor (KEDA) Webhook Dispatcher
• Reorg Auto-Rollback • HMAC-SHA256 Signed
• @logrix/sdk WASM Handlers • Exponential Retries
• Self-Healing Gap Reconciler • Dead-Letter Queue
│
┌──────────┴──────────┐
▼ ▼
PostgreSQL AWS S3
(Hot Query Tier) (Cold zstd Blobs)
│
▼
GraphQL API Server
• Sub-10ms Queries
• Live WebSockets
• GraphiQL Studio (:4000)
npx @logrix/sdk init my-indexer
cd my-indexer
npm installnpm run codegenimport { TransferEvent } from "./generated/events";
import { TransferEntity } from "./generated/schema";
export function handleTransfer(event: TransferEvent): void {
let entity = new TransferEntity(event.transactionHash + "-" + event.logIndex.toString());
entity.blockNumber = event.blockNumber;
entity.fromAddress = event.params.from;
entity.toAddress = event.params.to;
entity.amount = event.params.value;
entity.transactionHash = event.transactionHash;
entity.timestamp = event.blockTimestamp;
entity.save();
}npm run buildLogrix publishes pre-built container images and Helm charts directly on GitHub Container Registry (GHCR). No container builds or repository cloning are required.
Deploy a complete, self-contained indexer cluster with built-in in-cluster PostgreSQL 16 and RabbitMQ:
helm install my-indexer oci://ghcr.io/vishal-770/charts/logrix \
--set localDev.enabled=true \
--set-file config.manifestContent=manifest.yaml \
--set-file config.schemaContent=schema.graphql \
--set-file config.wasmBinary=handlers/mapping.wasmPort-forward and open the GraphQL playground:
kubectl port-forward svc/my-indexer-logrix-api 4000:4000Visit http://localhost:4000/ in your browser.
Deploy to AWS EKS with Aurora Serverless v2 PostgreSQL, Amazon SQS, Amazon S3, and KEDA autoscaling.
-
Using Existing AWS Resources: If you already have AWS RDS/Aurora PostgreSQL, Amazon SQS, and an S3 bucket, configure your endpoints in
values-aws.yaml. -
Provisioning with Terraform: If starting from scratch, run the Terraform modules scaffolded by Logrix:
cd infra/terraform terraform init terraform apply(If developing directly from the source repository, the Terraform modules are located in
deploy/terraform/aws.)Copy the Terraform outputs (
database_url,sqs_queue_url,s3_bucket_name, andiam_role_arn) intovalues-aws.yaml.
helm install my-indexer oci://ghcr.io/vishal-770/charts/logrix \
-f values-aws.yaml \
--set-file config.manifestContent=manifest.yaml \
--set-file config.schemaContent=schema.graphql \
--set-file config.wasmBinary=handlers/mapping.wasmSupply your existing database and queue credentials directly via --set flags or a custom values file:
helm install my-indexer oci://ghcr.io/vishal-770/charts/logrix \
--set config.databaseUrl="postgres://user:pass@your-db-host:5432/dbname" \
--set config.queueDriver="rabbitmq" \
--set config.rabbitmqUrl="amqp://user:pass@your-queue-host:5672/%2f" \
--set config.rpcUrl="https://arb1.arbitrum.io/rpc" \
--set-file config.manifestContent=manifest.yaml \
--set-file config.schemaContent=schema.graphql \
--set-file config.wasmBinary=handlers/mapping.wasmCheck sync progress, queue depth, and reorg history directly in your terminal:
logrix status --watchThe GraphQL API server exposes Prometheus metrics at http://localhost:4000/metrics:
logrix_head_lag_blockslogrix_events_indexed_totallogrix_queue_depth{queue="live|backfill|webhook|dlq"}logrix_rpc_cu_consumed_totallogrix_reorg_detected_total
Licensed under the Apache License, Version 2.0. See LICENSE for details.