Rollup Circuits
The rollup circuits compress thousands of transactions into a single SNARK proof for verification on Ethereum. They aggregate proofs from private kernel and AVM execution, validate state transitions, and produce the final epoch proof submitted to L1.
The rollup circuits use a "binary tree of proofs" topology. This allows proof generation to be parallelized across prover instances—each layer of the tree can be computed in parallel, or subtrees can be distributed to different provers.
Circuit Hierarchy
Rollup circuits operate at four levels, each producing outputs consumed by the next:
| Level | Circuits | Input | Output |
|---|---|---|---|
| Transaction | TX Base (Private/Public), TX Merge | Kernel proofs | Transaction rollup data |
| Block | Block Root, Block Merge | Transaction rollups | Block rollup data |
| Checkpoint | Checkpoint Root, Checkpoint Merge | Block rollups | Checkpoint data |
| Epoch | Root Rollup | Checkpoint rollups | Final epoch proof |
Transaction Level
TX Base Rollups
Process individual transactions from kernel proofs:
- TX Base Private - Processes transactions with only private execution. Validates the private kernel proof, updates tree snapshots (note hash, nullifier), and accumulates fees and mana usage.
- TX Base Public - Processes transactions that include public (AVM) execution. Validates the AVM proof, which has already performed tree updates and fee/mana accumulation during public execution.
TX Merge Rollup
Merges pairs of transaction rollup proofs in binary fashion. Can chain recursively to aggregate many transactions into a single proof. Validates proof correctness and consecutive transaction ordering.