2.2. Genesis creation
Glossary
sovereign chain: chain that ONLY uses the pessimistic proof and has NOT any state-transition proofsovereign contracts: smart contracts to be used by vanilla clients (i.e. clients that does not have the necessary code to insert GER natively)rollupTypeID: it forces rollup parameters when the rollup is createdlegacy: forces the genesis rootsovereign: genesis root is not forced (it is0x00..000)
timelock admin: setup timelock administration address and its delay. Timelock controls upgrades over the L2 contracts (Bridge & GERManager)premint account: Initial pre minted account to be able to do a very first bridge claim
Chains types
legacy: Hermez prover based chains (zkEVM, Validums)sovereign erigon: sovereign chain with cdk-sovereign-erigon clientsovereign vanilla: sovereign chain with a vanilla client
Table
| from rollupTypeID | Bridge initialization | SovereignContracts | timelock admin | premint account | |
|---|---|---|---|---|---|
| legacy | 🟢 | Decentralized injected batch | ❌ | ❌ | ❌ |
| sovereign erigon | ❌ | Centralized injected batch | ❌ | ❌ | ❌ |
| sovereign vanilla | ❌ | Embedded in the genesis | 🟢 | 🟢 | 🟢 |
Extra notes
legacy: genesisonlegacychains is created beforehand the chain is created. It is set when therollupTypeID` is createdsovereign erigon:- select a
genesis-basebased on the network (sepolia, mainnet) & RollupManager address (genesis-baseis the genesis that has been used bylegacychains) - once the rollup is created, the Smart contract assigns a
rollupIDto the rollup - create
injected batchdata and add it to the client as metadata
- select a
sovereign vanilla- select a
genesis-basebased on the network (sepolia, mainnet) & RollupManager address (genesis-baseis the genesis that has been used bylegacychains) - upgrade
genesis-basecontracts in order to havesovereign contracts - upgrade
genesis-basecontracts in order to have a pre-mint account and setup its timelock security
- select a