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.
Components
AggOracle
Coordinate GER injection link.
Provers
Repository provers link.