Skip to main content

Contracts

tip

Looking for a practical guide to run nodes? Follow the Curated Module v2 guide or the CSM guide.

CMv2 and CSM run on the same CSM v3 codebase, so most contracts below are deployed once per module from the same source. Each page lists the deployed address for every module that uses it.

Six contracts are specific to one module: the module contract and its entry gate differ, and MetaRegistry exists only in CMv2. Deployed addresses for every network are listed under Deployed Contracts.

Module​

The core contract that stores Node Operators, validator keys, and deposit data, and talks to the Staking Router.

ContractApplies toWhat it does
CuratedModuleCMv2 onlyCore module contract. Stores operators and deposit data, and allocates stake by operator weight
CSModuleCSM onlyCore module contract. Stores operators and deposit data, and allocates stake through the deposit queue

Entry gates​

How an address becomes a Node Operator. Each module has its own gate, and the factory that deploys them is shared.

ContractApplies toWhat it does
CuratedGateCMv2 onlyLets an address in the gate's Merkle tree create a Node Operator of the gate's type
PermissionlessGateCSM onlyLets anyone register as a Node Operator
VettedGateCSM onlyLets addresses in the gate's Merkle tree register with a better bond curve, used for ICS and IDVTC
MerkleGateFactoryBothDeploys and initializes Merkle-based gate instances behind a proxy

Bond and rewards​

ContractApplies toWhat it does
AccountingBothHolds the bond as stETH shares and manages required bond, rewards, penalties, and charges
FeeDistributorBothHolds reward shares while unallocated or claimable, and stores the rewards Merkle tree

Configuration​

ContractApplies toWhat it does
ParametersRegistryBothStores per-Node-Operator-type parameters such as key limits, reward shares, and penalty amounts
MetaRegistryCMv2 onlyStores operator names and descriptions, and the operator groups and weights that drive stake allocation

Exits and penalties​

ContractApplies toWhat it does
ValidatorStrikesBothStores strike data reported by the Performance Oracle and can trigger ejection
ExitPenaltiesBothRecords exit-related penalties and charges per validator
EjectorBothTriggers validator withdrawals through EIP-7002

Oracles and proofs​

ContractApplies toWhat it does
FeeOracleBothProcesses the Performance Oracle report once consensus is reached
VerifierBothValidates Consensus Layer proofs against the beacon block root and reports the verified facts