Upgrade process
The vote is a single Aragon vote with two items.
Item 1 submits one Dual Governance proposal that atomically switches the protocol to EDF and DepositSecurityModule v5 in a single Agent.forward call (78 actions):
- for each of the four oracle committees and each of the nine oracle operators: remove the operator’s EOA hot key from the HashConsensus and add the operator’s DelegationContract, keeping the quorum of 5 (72 actions);
- upgrade the LidoLocator implementation so that its depositSecurityModule entry points to the new DSM v5, all other entries stay the same (1 action);
- move STAKING_MODULE_UNVETTING_ROLE on StakingRouter from DSM v4 to DSM v5 (2 actions);
- move TOP_UP_ROLE on TopUpGateway from the depositor bot EOA to the depositor bot DelegationContract (2 actions);
- grant BUFFER_RESERVE_MANAGER_ROLE on Lido to the Easy Track EVMScriptExecutor (1 action).
Item 2 is executed by the Aragon Voting directly: add the SetDepositsReserveTarget Easy Track factory with the permission limited to Lido.setDepositsReserveTarget(uint256), per the CMC deposit reserve target proposal.
DSM v5 is already deployed with the guardian set moved to DelegationContracts (see the deployment post), so the vote does not touch the guardians: it only switches the protocol to the new module. The guardian quorum stays 4 of 6, Stakely takes the seat of Kiln.
Oracle committees
| # | Committee | HashConsensus | Quorum |
|---|---|---|---|
| 1 | AccountingOracle | 0xD624B08C83bAECF0807Dd2c6880C3154a5F0B288 | 5 |
| 2 | ValidatorsExitBusOracle | 0x7FaDB6358950c5fAA66Cb5EB8eE5147De3df355a | 5 |
| 3 | CSFeeOracle | 0x71093efF8D8599b5fA340D665Ad60fA7C80688e4 | 5 |
| 4 | Curated Module FeeOracle | 0x902D64c93F6595339aA46105627a085591051aFb | 5 |
Oracle members (the same rotation on every committee)
DSM guardians (already set on DSM v5, not changed by the vote)
| # | Operator | DSM v4 guardian EOA | DSM v5 guardian DelegationContract |
|---|---|---|---|
| 1 | Lido dev team | 0x5fd0dDbC3351d009eb3f88DE7Cd081a614C519F1 | 0x915F0Fa50E1af761B113b41c79ab33Bf4734C36E |
| 2 | P2P | 0xa56b128Ea2Ea237052b0fA2a96a387C0E43157d8 | 0xe387Ba1d5C9f6306eCe9ac949C7fB6233dD5411E |
| 3 | Staking Facilities | 0xf82D88217C249297C6037BA77CE34b3d8a90ab43 | 0x35506190Ca6df385aA6Bc4a970646dd4f49426c1 |
| 4 | Blockscape | 0x7912Fa976BcDe9c2cf728e213e892AD7588E6AaF | 0xDc1579636686C082fc3b00B9EB25259A110D0C44 |
| 5 | Stake.fish | 0x4B87F16B8d32cb5a859a4C48a88edB5adBe3498E | 0x031E597BcF680f1f2293b119b4b2B14096B15497 |
| 6 | Stakely (takes the seat of Kiln) | Kiln 0x6d22aE126eB2c37F67a1391B37FF4f2863e61389 | 0x6A22d74a816662078f2371A7138E7614874cd61d |
Contracts and roles
| What | Before | After |
|---|---|---|
| DepositSecurityModule (LidoLocator entry) | v4 0xF573E9E3de1f86B085417ab294f56E7920B4e9Be | v5 0x39BB5d491e98A44D1bfe8047A737a81E296a63E0 |
| LidoLocator implementation | 0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313 | 0x60E09F1791F1168d0450E4F100616B4a3F95119C |
| STAKING_MODULE_UNVETTING_ROLE on StakingRouter | DSM v4 | DSM v5 |
| TOP_UP_ROLE on TopUpGateway | depositor bot EOA 0xF82aC5937A20dC862F9bc0668779031E06000f17 | depositor bot DelegationContract 0x6Aa249bA53A3abcaC52F91146583B3eE2Ee4C7F5 |
| BUFFER_RESERVE_MANAGER_ROLE on Lido | Agent | Agent and Easy Track EVMScriptExecutor 0xFE5986E06210aC1eCC1aDCafc0cc7f8D63B3F977 |
| Easy Track factories | - | SetDepositsReserveTarget 0x62E9Dc68BDCBC46362f40e0bb9c154C9a42E62b0, trusted caller CMC multisig, cap 9,600 ETH |
The vote script and the fork tests: lidofinance/scripts#682.