# CMv2 and CSMv3 parameters ## CMv2 ### General - stakeShareLimit = 10000 // Unlimitted - priorityExitShareThreshold = 10000 // Unlimitted - stakingModuleFee = 400 // 4%, the highest possible Node Operator fee for all Node Operator types - treasuryFee = 600 // 6% - maxDepositsPerBlock = 100 // Up to 100 32 ETH initial deposits per single deposit TX - minDepositBlockDistance = 75 // Minimal block distance between deposit TXs ### Oracle - secondsPerSlot = 12 // https://github.com/eth-clients/mainnet/blob/f6b7882618a5ad2c1d2731ae35e5d16a660d5bb7/metadata/config.yaml#L58 - slotsPerEpoch = 32; // https://github.com/ethereum/consensus-specs/blob/7df1ce30384b13d01617f8ddf930f4035da0f689/specs/phase0/beacon-chain.md?plain=1#L246 - clGenesisTime = 1606824023; // https://github.com/eth-clients/mainnet/blob/f6b7882618a5ad2c1d2731ae35e5d16a660d5bb7/README.md?plain=1#L10 - oracleReportEpochsPerFrame = 225 * 14 // 14 days - fastLaneLengthSlots = 300 // 1 hour - consensusVersion = 4 // Synced with CSM ### Verifier - verifierFirstSupportedSlot = 364032 * 32 // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7600.md#activation - minWithdrawalRatio = 9950 // The minimal percentage in BP of the validator balance reduction accepted by the contract. Ex. withdrawal balances up to 2037,76 ETH for the validator that received 2048 ETH deposits are accepted by Verifier.sol for permissionless withdrawal reports with minWithdrawalRatio = 9950. ### Accounting - defaultBondCurve = [[1, 11 ether], [2, 1 ether]] // First validator - 11 ETH, others - 1 ETH - minBondLockPeriod = 4 weeks // Minimal value allowed to be set for bondLockPeriod without contract implementation upgrade - maxBondLockPeriod = 365 days // Maximal value allowed to be set for bondLockPeriod without contract implementation upgrade - bondLockPeriod = 60 days - chargePenaltyRecipient = 0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c // Lido Treasury ### Module - moduleType = "curated-onchain-v2" // This parameter is used by off-chain tools to distinguish module types - generalDelayedPenaltyReporter = 0x2570e0b22AD904501dfB0d49575991ACB801dD91 // CMC https://docs.lido.fi/multisigs/committees#220-curated-module-committee-cmc ### ParametersRegistry For parameter meanings, see - https://github.com/lidofinance/community-staking-module/blob/develop/src/interfaces/IParametersRegistry.sol - defaultKeyRemovalCharge = 0 - defaultGeneralDelayedPenaltyAdditionalFine = 0.1 ether - defaultKeysLimit = 100 - defaultAvgPerfLeewayBP = 10000 // 100% means that any performance is acceptable by CMv2 Performance Oracle - defaultRewardShareBP = 6250 // 62.5% of 4% = 2.5% of the total - defaultStrikesLifetimeFrames = 6 // Not used currently given CMv2 Performance Oracle setting above - defaultStrikesThreshold = 3 // Not used currently given CMv2 Performance Oracle setting above - queueLowestPriority = 0 // Not used in CMv2 - defaultQueuePriority = 0 // Not used in CMv2 - defaultQueueMaxDeposits = type(uint32).max // Not used in CMv2 - defaultBadPerformancePenalty = 0 ether // Not used currently given CMv2 Performance Oracle setting above - defaultAttestationsWeight = 54 // https://eth2book.info/capella/part2/incentives/rewards/ - defaultBlocksWeight = 8 // https://eth2book.info/capella/part2/incentives/rewards/ - defaultSyncWeight = 2 // https://eth2book.info/capella/part2/incentives/rewards/ - defaultAllowedExitDelay = 4 days - defaultExitDelayFee = 0.01 ether // The value is set per 32 ETH validator balance - defaultMaxElWithdrawalRequestFee = 0.1 ether - penaltiesManager = 0x2570e0b22AD904501dfB0d49575991ACB801dD91 // CMC https://docs.lido.fi/multisigs/committees#220-curated-module-committee-cmc ### Node Operator types Each Node Operator type uses default params unless custom values are defined. #### Professional Operator - metaRegistryBondCurveWeight = 50000 // 0.5 of default 100_000 - keysLimit = 80 #### Professional Trusted Operator - bondCurve = [[1, 11 ether], [2, 0.1 ether],[19, 0.7 ether]] // First key - 11 ETH, from second to 18th - 0.1 ETH, others - 0.7 ETH - generalDelayedPenaltyAdditionalFine = 0.05 ether - keysLimit = 500 - rewardShareData = [1, 8750] // 87.5% of 4% = 3.5% of the total - metaRegistryBondCurveWeight = 100000 // default 100_000 - exitDelayFee = 0.005 ether #### Public Good Operator - bondCurve = [[1, 11 ether], [2, 0.1 ether],[19, 0.7 ether]] // First key - 11 ETH, from second to 18th - 0.1 ETH, others - 0.7 ETH - generalDelayedPenaltyAdditionalFine = 0.05 ether - keysLimit = 500 - rewardShareData = [1, 10000] // 100% of 4% = 4% of the total - metaRegistryBondCurveWeight = 100000 // default 100_000 - exitDelayFee = 0.005 ether #### Decentralization Operator - bondCurve = [[1, 11 ether], [2, 0.1 ether],[19, 0.7 ether]] // First key - 11 ETH, from second to 18th - 0.1 ETH, others - 0.7 ETH - generalDelayedPenaltyAdditionalFine = 0.05 ether - keysLimit = 500 - rewardShareData = [1, 10000] // 100% of 4% = 4% of the total - metaRegistryBondCurveWeight = 100000 // default 100_000 - exitDelayFee = 0.005 ether #### Extra Effort Operator Gate - bondCurve = [[1, 11 ether], [2, 0.1 ether],[19, 0.7 ether]] // First key - 11 ETH, from second to 18th - 0.1 ETH, others - 0.7 ETH - generalDelayedPenaltyAdditionalFine = 0.05 ether - keysLimit = 500 - rewardShareData = [1, 10000] // 100% of 4% = 4% of the total - metaRegistryBondCurveWeight = 100000 // default 100_000 - exitDelayFee = 0.005 ether #### Intra-Operator DVT Cluster - bondCurve = [[1, 11 ether], [2, 0.1 ether],[19, 0.7 ether]] // First key - 11 ETH, from second to 18th - 0.1 ETH, others - 0.7 ETH - generalDelayedPenaltyAdditionalFine = 0.05 ether - keysLimit = 500 - rewardShareData = [1, 8750] // 87.5% of 4% = 3.5% of the total - metaRegistryBondCurveWeight = 100000 // default 100_000 - exitDelayFee = 0.005 ether #### Intra-Operator DVT Cluster Plus - bondCurve = [[1, 11 ether], [2, 0.1 ether],[19, 0.7 ether]] // First key - 11 ETH, from second to 18th - 0.1 ETH, others - 0.7 ETH - generalDelayedPenaltyAdditionalFine = 0.05 ether - keysLimit = 500 - rewardShareData = [1, 10000] // 100% of 4% = 4% of the total - metaRegistryBondCurveWeight = 100000 // default 100_000 - exitDelayFee = 0.005 ether ### Gates - curatedGatePauseManager = 0x2570e0b22AD904501dfB0d49575991ACB801dD91 // CMC https://docs.lido.fi/multisigs/committees#220-curated-module-committee-cmc ### MetaRegistry - setOperatorInfoManager = 0x2570e0b22AD904501dfB0d49575991ACB801dD91 // CMC https://docs.lido.fi/multisigs/committees#220-curated-module-committee-cmc ### CircuitBreaker - circuitBreakerPauser = 0x2570e0b22AD904501dfB0d49575991ACB801dD91 // CMC https://docs.lido.fi/multisigs/committees#220-curated-module-committee-cmc ### Easy Track - trustedCaller = 0x2570e0b22AD904501dfB0d49575991ACB801dD91 // CMC https://docs.lido.fi/multisigs/committees#220-curated-module-committee-cmc ## CSMv3 ### Oracle - secondsPerSlot = 12 // https://github.com/eth-clients/mainnet/blob/f6b7882618a5ad2c1d2731ae35e5d16a660d5bb7/metadata/config.yaml#L58 - slotsPerEpoch = 32 // https://github.com/ethereum/consensus-specs/blob/7df1ce30384b13d01617f8ddf930f4035da0f689/specs/phase0/beacon-chain.md?plain=1#L246 - clGenesisTime = 1606824023 // https://github.com/eth-clients/mainnet/blob/f6b7882618a5ad2c1d2731ae35e5d16a660d5bb7/README.md?plain=1#L10 - oracleReportEpochsPerFrame = 225 * 28 // 28 days - fastLaneLengthSlots = 300 // 1 hour - consensusVersion = 4 // Incremental from the current version = 3 ### Verifier - verifierFirstSupportedSlot = 364032 * 32 // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7600.md#activation - minWithdrawalRatio = 9900 // The minimal percentage in BP of the validator balance reduction accepted by the contract. Ex. withdrawal balances up to 2027,52 ETH for the validator that received 2048 ETH deposits are accepted by Verifier.sol for permissionless withdrawal reports with minWithdrawalRatio = 9900. ### Accounting - defaultBondCurve = [[1, 2.4 ether], [2, 1.3 ether]] // First validator - 2.4 ETH, others - 1.3 ETH - minBondLockPeriod = 4 weeks // Minimal value allowed for bondLockPeriod - maxBondLockPeriod = 365 days // Maximal value allowed for bondLockPeriod - bondLockPeriod = 8 weeks - setResetBondCurveAddress = 0xC52fC3081123073078698F1EAc2f1Dc7Bd71880f // CSM Committee MS - chargePenaltyRecipient = 0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c // Lido Treasury ### Module - moduleType = "community-onchain-v1"; // Just a unique type name to be used by the off-chain tooling - generalDelayedPenaltyReporter = 0xC52fC3081123073078698F1EAc2f1Dc7Bd71880f; // CSM Committee MS ### ParametersRegistry For parameter meanings, see - https://github.com/lidofinance/community-staking-module/blob/develop/src/interfaces/IParametersRegistry.sol - defaultKeyRemovalCharge = 0.02 ether - defaultGeneralDelayedPenaltyAdditionalFine = 0.1 ether - defaultKeysLimit = type(uint256).max // Practically unlimited - defaultAvgPerfLeewayBP = 300 - defaultRewardShareBP = 5834 // 58.34% of 6% = 3.5% of the total - defaultStrikesLifetimeFrames = 6 - defaultStrikesThreshold = 3 - queueLowestPriority = 5 - defaultQueuePriority = 5 - defaultQueueMaxDeposits = type(uint32).max // Practically unlimited - defaultBadPerformancePenalty = 0.258 ether - defaultAttestationsWeight = 54 // https://eth2book.info/capella/part2/incentives/rewards/ - defaultBlocksWeight = 8 // https://eth2book.info/capella/part2/incentives/rewards/ - defaultSyncWeight = 2 // https://eth2book.info/capella/part2/incentives/rewards/ - defaultAllowedExitDelay = 4 days - defaultExitDelayFee = 0.1 ether - defaultMaxElWithdrawalRequestFee = 0.1 ether - penaltiesManager = 0xC52fC3081123073078698F1EAc2f1Dc7Bd71880f // CSM Committee MS ### VettedGates - identifiedCommunityStakersGateManager = 0xC52fC3081123073078698F1EAc2f1Dc7Bd71880f // CSM Committee MS, also responsible for IDVTC gate management ### Node Operator types Each Node Operator type uses default params unless custom values are defined. #### Identified Community Staker - identifiedCommunityStakersGateBondCurve = [[1, 1.5 ether], [2, 1.3 ether]] // First validator - 1.5 ETH, others - 1.3 ETH - identifiedCommunityStakersGateKeyRemovalCharge = 0.01 ether - identifiedCommunityStakersGateGeneralDelayedPenaltyAdditionalFine = 0.05 ether - identifiedCommunityStakersGateKeysLimit = type(uint248).max // Practically unlimited - identifiedCommunityStakersGateAvgPerfLeewayData = [[1, 500], [151, 300]] // 5% for the first 150 keys, and 3% for the others - identifiedCommunityStakersGateRewardShareData = [[1, 10000], [17, 5834]] // 6% for the first 16 keys, and 3.5% for the others - identifiedCommunityStakersGateStrikesLifetimeFrames = 6 - identifiedCommunityStakersGateStrikesThreshold = 4 - identifiedCommunityStakersGateQueuePriority = 0 - identifiedCommunityStakersGateQueueMaxDeposits = 10 - identifiedCommunityStakersGateBadPerformancePenalty = 0.172 ether - identifiedCommunityStakersGateAttestationsWeight = 54 - identifiedCommunityStakersGateBlocksWeight = 4 - identifiedCommunityStakersGateSyncWeight = 2 - identifiedCommunityStakersGateAllowedExitDelay = 5 days - identifiedCommunityStakersGateExitDelayFee = 0.05 ether - identifiedCommunityStakersGateMaxElWithdrawalRequestFee = 0.1 ether #### Identified DVT Cluster - identifiedDVTClusterBondCurve = [[1, 1.5 ether], [2, 0.5 ether]] // First validator - 1.5 ETH, others - 0.5 ETH - identifiedDVTClusterRewardShareData = [[1, 5834], [65, 3334]] // 3.5% for the first 64 keys, and 2% for the others - identifiedDVTClusterQueuePriority = 1 - identifiedDVTClusterQueueMaxDeposits = 40 - identifiedDVTClusterKeyRemovalCharge = 0.01 ether - identifiedDVTClusterGeneralDelayedPenaltyAdditionalFine = 0.05 ether - identifiedDVTClusterAllowedExitDelay = 5 days - identifiedDVTClusterExitDelayFee = 0.05 ether ### CircuitBreaker - circuitBreakerPauser = 0xC52fC3081123073078698F1EAc2f1Dc7Bd71880f // CSM Committee MS ### Easy Track - trustedCaller = 0xC52fC3081123073078698F1EAc2f1Dc7Bd71880f // CSM Committee MS #### Staking Module Share Limit (CSM) - maxStakeShareLimitIncrease = 500 BP - maxStakeShareLimitDecrease = 500 BP - maxPriorityExitShareThresholdIncrease = 600 BP - maxPriorityExitShareThresholdDecrease = 600 BP