Methodology

Built to be auditable

How IBCFlow turns raw IBC packets into numbers you can verify: no synthesized hashes, no failed transfers counted as volume, and no silent gaps in the index.

9chains indexed
10s agolast event
v1API version

Correctness guarantees

Constraints the indexer enforces on every packet, not after the fact.

C1

Real transaction hashes

Every tx hash is the SHA-256 of the real transaction bytes. We never synthesize a placeholder; if the bytes are missing the row is dropped rather than fabricated, so every hash verifies on-chain.

C5

Failed transfers excluded

Timed-out and error-acknowledged packets never count toward completed volume. An in-flight send is counted once, and only as settled volume after it is acknowledged.

C2

Key-based packet pairing

Sends and receives are matched on (chain, channel, sequence), not on timing or amount heuristics, so a transfer is counted exactly once across its full lifecycle.

C3

Honest USD valuation

Volume is valued from on-chain amounts against a priced asset registry. Tokens with no known price still count toward transfer totals but never inflate USD volume.

I

No silent index gaps

If a block range fails to fetch, the indexer aborts the range before writing instead of advancing its cursor past the hole. There are no permanent gaps and no double counting on retry.

Data sources

Read directly from the chains, decoded from real on-chain events.

v1

CometBFT RPC

IBC v1 packet lifecycle read directly from validator-operated full nodes across the indexed chains.

v2

Ethereum ICS26 router

Eureka / IBC v2 packets decoded from real on-chain events emitted by the Ethereum settlement router.

Open feeds and APIs

The dashboard dogfoods exactly what external integrators consume.