Skip to content

Compatibility Table

The following compatibility table shows which components should be used depending on the chain you are working with. This table helps ensure that the correct configurations and contracts are selected for each setup:

Table

Chain verifierType SC consensus Proofs/Prover Client SC Components
AgglayerBridgeL2 AgglayerGERL2 AggOracleCommittee AggOracle AggSender Provers
zkEVM StateTransition PolygonZkEVMEtrog FEP # Hermez legacy-cdk-erigon
Validium StateTransition PolygonValidiumEtrog FEP # Hermez legacy-cdk-erigon
v0.3.5-ECDSA ALGateway AggchainECDSAMultisig PP # SP1 legacy-cdk-erigon ✅ (optional) ✅ (optional) ✅ (optional) ✅ (optional)
v0.3.5-ECDSA ALGateway AggchainECDSAMultisig PP # SP1 vanilla-cdk-erigon ✅ (optional) ✅ (optional)
v0.3.5-ECDSA ALGateway AggchainECDSAMultisig PP # SP1 op-stack ✅ (optional) ✅ (optional)
v0.3.5-FEP ALGateway AggchainFEP (PP + FEP) # SP1 op-stack ✅ (optional)

Clients

legacy-cdk-erigon

The original CDK Erigon client. It handles batch injection and GER injection directly at the client level (no sovereign contracts). Used by existing zkEVM and Validium chains, and also supported for ECDSA chains that haven't migrated to sovereign contracts yet.

vanilla-cdk-erigon

A CDK Erigon client where GER injection is handled through AgglayerGERL2 and AggOracle instead of being hardcoded in the client. This decouples the client from GER management and enables the use of sovereign contracts.

op-stack

An OP Stack-based client (e.g. OP-Succinct). GER injection goes through AgglayerGERL2 and AggOracle. It can be used for PP and FEP chains.

L2 SC

AgglayerBridgeL2

The AgglayerBridgeL2 smart contract is designed to be deployed on L2. It is only required for the AggchainFEP setup because hashChains are necessary, which are used in the aggchain-proof (located in the provers). The contract implements the same LocalBalanceTree logic as the pessimistic program. The contract allows authorized parties to insert and remove global exit roots, maintaining a mapping of these roots with an insertion order. All GERs inserted on L2 must be verifiable against a valid L1InfoTreeRoot. This ensures the validity of every GER injected into the chain.

More information v0.2.0 link Update v0.3.0 link

Components

AggOracle

Coordinate GER injection link.

Provers

Repository provers link.