Herodotus is composed of both on-chain and off-chain components. The key components are:

Smart Contracts

These contracts relay block hashes across Ethereum layers and verify storage proofs, among other tasks. Learn more here.

Cairo Programs: Proven off-chain.

We use off-chain Cairo for intensive tasks, like expanding our accumulators with many proven block headers.

Circuits: Proven off-chain.

We utilize circuits to efficiently verify state proofs from specific zk-rollups. Currently, we haven't implemented these in production, but they'll be available in the future.