Engineering

Designing On-chain Data Infrastructure

Close-up of tower servers with blue and red lighting

Events are your API to the chain. Every dashboard, alert and integration downstream depends on the events your contracts emit — so event design is architecture, not logging.

Emit transitions with full context: not just "swap executed" but the pool, amounts, prices and fee at execution time. ChainLens indexes two million events daily, and the pipelines that never break are the ones whose events carry everything the consumer needs — no follow-up calls required.

Reorgs are not edge cases; they're Tuesday. Design your indexer to track chain tips, hold short confirmation windows for provisional data, and rewrite cleanly when history changes. Mark unconfirmed data as provisional in the product — Vaultline's timeline shows pending states explicitly rather than pretending every block is final.

Backfills need first-class support from day one. New features, new chains, corrupted ranges: you will re-index. Build range-based backfill jobs with checksums per range, idempotent writes, and progress your team can watch. The backfill you write during an incident is always worse than the one you wrote calmly in week three.

Stack-wise, we pair The Graph subgraphs for standard query shapes with a custom streaming indexer where latency or reorg semantics demand it. Boring where possible, custom where measured — and the measurement comes from production load, not benchmarks.

Need data pipelines that stay correct?

We build indexers that survive reorgs and scale.