How Taifoon Collects Block Headers Across 41 Chains

Taifoon’s core function is deceptively simple: collect every block header from every supported chain, in real time, without gaps.
The reality is considerably harder.
The Spinner
At the center of Taifoon’s infrastructure is a component called the Spinner — a Rust binary that runs 41 parallel collection tasks, one per chain. Each task maintains its own cursor (the last block collected), its own RPC pool, and its own backfill logic for gap recovery.
The Spinner was designed around one constraint: no chain can stall another. A slow Polkadot RPC can’t block Ethereum. A Monad reorg doesn’t freeze BTC collection. Every chain runs in its own async Tokio task.
EVM chains and the pool collector
For EVM-compatible chains, the Spinner uses a pool collector strategy. Each chain has a ranked list of RPC endpoints. A watchdog process probes each endpoint every 5 minutes, measures response latency, and ranks them. The fastest available endpoint always gets the request.
When the primary fails, failover happens in under 100ms — the next ranked endpoint steps up without any restart.
Non-EVM collectors
BTC, Solana, Aptos, ICP, Polkadot, TRON, and SUI each have purpose-built collectors. They handle chain-specific block formats, different finality semantics, and different RPC conventions.
BTC’s collector, for example, tracks sat_per_vbyte from the mempool and normalizes it into the same gas-equivalent format used for all EVM chains — so downstream consumers get a consistent interface regardless of chain.
MMR indexing
Every block header collected gets appended to a Merkle Mountain Range. The MMR grows monotonically. A proof for any historical block can be generated in O(log n) time.
This is what makes Taifoon’s data useful beyond simple monitoring: a DA API can prove, on-chain, that a given block existed at a given height, without trusting any intermediary.
What’s next
The collection layer is production-ready. The next phase is exposing the MMR proofs through the Lambda execution layer — letting smart contracts on any supported chain verify cross-chain state with a single call.
