Data

Data Model

ChainForge separates raw, decoded, canonical and semantic tables. Each layer is derived from the one below it and never mutates it.

Layers

schema
raw        arc.blocks · arc.transactions · arc.logs · arc.traces
decoded    uniswap_v3.swap · erc20.transfer · aave_v3.borrow
canonical  dex.trades · token.transfers · lending.activities
semantic   entity.attributions · activity.classifications

Naming

Raw tables are namespaced by chain. Decoded tables are namespaced by protocol. Canonical tables are namespaced by domain and carry a protocol column so rows from different decoders coexist.

Lineage

Every canonical row keeps tx_hash, log_index and block_number, so any value can be traced back to the exact raw log that produced it.