# How to check the Lido DAO onchain vote #185
## 1. What the vote is about
This document outlines the items included in [the Lido DAO on-chain vote #185](https://vote.lido.fi/vote/185), which proposes a protocol upgrade to ensure continued compatibility with Ethereum’s upcoming Pectra hardfork.
The upgrade is strictly focused on maintaining protocol operability and does not introduce any of the new features proposed in Pectra, as described in the previously approved [LIP-27](https://github.com/lidofinance/lido-improvement-proposals/blob/develop/LIPS/lip-27.md).
The voting script includes 11 steps:
- steps 1–9 update the oracles - [AccountingOracle](https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee), [ValidatorsExitBusOracle](https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e), and [CSFeeOracle](https://etherscan.io/address/0x4d4074628678bd302921c20573eea1ed38ddf7fb) - switching them to a new consensus algorithm designed to ensure correct behavior both before and after the Pectra hardfork;
- steps 10–11 replace the [CS Verifier contract](https://etherscan.io/address/0x3Dfc50f22aCA652a0a6F28a0F892ab62074b5583), removing slashing reports and updating the `gIndex` structure.
## 2. Resources for the Proposal Validation
The resources listed in this section are considered trustworthy and reliable.
- [Lido Docs](https://docs.lido.fi) - use this to verify contract addresses
- [Blockchain Explorer Etherscan](https://etherscan.io) (or alternatives such as [Blockscout](https://www.blockscout.com)) - use this to review contract functionality, check the current state of contracts, and inspect available contract functions
- [Lido Research Forum](https://research.lido.fi) - use this to access original proposals, review details of proposed changes, and validate modification parameters
- [Snapshot](https://snapshot.box/#/s:lido-snapshot.eth) - use this to review finalized and pre-approved DAO versions of proposals
Direct links to relevant sources will be provided for each item in the vote, ensuring easy access to the associated information.
## 3. Voting scripts "translation" and verification
#### 1. Grant MANAGE_CONSENSUS_VERSION_ROLE role on Accounting Oracle to Aragon Agent.
The vote calls the [grantRole](https://etherscan.io/address/0x852ded011285fe67063a08005c71a85690503cee#writeProxyContract#F3) function of the [AccountingOracle](https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee) contract with the parameters mentioned below:
```
1. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 1.1
1.1. On [AccountingOracle]
0x852ded011285fe67063a08005c71a85690503cee
function grantRole(
bytes32 role,
address account
)
Call data:
[1] [MANAGE CONSENSUS VERSION ROLE] 0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341
[2] [AragonAgent] 0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts)
- The Accounting Oracle contract address [0x852deD011285fe67063a08005c71a85690503Cee](https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#oracle-contracts)
- The keccak of MANAGE CONSENSUS VERSION ROLE `0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341` matches the one that can be obtained via [Etherscan](https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee#readProxyContract#F11)
#### 2. Update Accounting Oracle consensus version to 3.
The vote calls the [setConsensusVersion](https://etherscan.io/address/0x852ded011285fe67063a08005c71a85690503cee#writeProxyContract#F9) function of the [AccountingOracle](https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee) contract with the parameters mentioned below:
```
2. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 2.1
2.1. On [AccountingOracle]
0x852ded011285fe67063a08005c71a85690503cee
function setConsensusVersion(
uint256 version
)
Call data:
[1] 3
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts) and matches the one previously used
- The Accounting Oracle contract address [0x852deD011285fe67063a08005c71a85690503Cee](https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#oracle-contracts) and matches the one previously used
- The new Accounting Oracle consensus version (3) matches the one published on the [Research forum](https://research.lido.fi/t/lip-27-ensuring-compatibility-with-ethereum-s-pectra-upgrade/9444#p-20086-oracles-consensus-version-7).
#### 3. Revoke MANAGE_CONSENSUS_VERSION_ROLE role on Accounting Oracle from Aragon Agent
The vote calls the [revokeRole](https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee#writeProxyContract#F7) function of the [AccountingOracle](https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee) contract with the parameters mentioned below:
```
3. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 3.1
3.1. On [AccountingOracle]
0x852ded011285fe67063a08005c71a85690503cee
function revokeRole(
bytes32 role,
address account
)
Call data:
[1] [MANAGE CONSENSUS VERSION ROLE] 0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341
[2] [AragonAgent] 0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts) and matches the one previously used
- The Accounting Oracle contract address [0x852deD011285fe67063a08005c71a85690503Cee](https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#oracle-contracts) and matches the one previously used
- The keccak of MANAGE CONSENSUS VERSION ROLE `0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341` matches the one that can be obtained via [Etherscan](https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee#readProxyContract#F11) and matches the one previously used
#### 4. Grant MANAGE_CONSENSUS_VERSION_ROLE role on Validator Exit Bus Oracle to Aragon Agent
The vote calls the [grantRole](https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e#writeProxyContract#F2) function of the [ValidatorsExitBusOracle](https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e) contract with the parameters mentioned below:
```
4. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 4.1
4.1. On [ValidatorsExitBusOracle]
0x0de4ea0184c2ad0baca7183356aea5b8d5bf5c6e
function grantRole(
bytes32 role,
address account
)
Call data:
[1] [MANAGE CONSENSUS VERSION ROLE] 0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341
[2] [AragonAgent] 0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40d73eb977dc6a537af587d48316fee66e9c8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts) and matches the one previously used
- The Validator Exit Bus Oracle contract address [0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e](https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#oracle-contracts)
- The keccak of MANAGE CONSENSUS VERSION ROLE `0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341` matches the one that can be obtained via [Etherscan](https://etherscan.io/address/0x0de4ea0184c2ad0baca7183356aea5b8d5bf5c6e#readProxyContract#F5)
#### 5. Update Validator Exit Bus Oracle consensus version to 3
The vote calls the [setConsensusVersion](https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e#writeProxyContract#F10) function of the [ValidatorsExitBusOracle](https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e) contract with the parameters mentioned below:
```
5. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 5.1
5.1. On [ValidatorsExitBusOracle]
0x0de4ea0184c2ad0baca7183356aea5b8d5bf5c6e
function setConsensusVersion(
uint256 version
)
Call data:
[1] 3
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40d73eb977dc6a537af587d48316fee66e9c8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts) and matches the one previously used
- The Validator Exit Bus Oracle contract address [0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e](https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#oracle-contracts) and matches the one previously used
- The new Validator Exit Bus Oracle consensus version (3) matches the one published on the [Research forum](https://research.lido.fi/t/lip-27-ensuring-compatibility-with-ethereum-s-pectra-upgrade/9444#p-20086-oracles-consensus-version-7)
#### 6. Revoke MANAGE_CONSENSUS_VERSION_ROLE role on Validator Exit Bus Oracle from Aragon Agent
The vote calls the [revokeRole](https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e#writeProxyContract#F8) function of the [ValidatorsExitBusOracle](https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e) contract with the parameters mentioned below:
```
6. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 6.1
6.1. On [ValidatorsExitBusOracle]
0x0de4ea0184c2ad0baca7183356aea5b8d5bf5c6e
function revokeRole(
bytes32 role,
address account
)
Call data:
[1] [MANAGE CONSENSUS VERSION ROLE] 0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341
[2] [AragonAgent] 0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40d73eb977dc6a537af587d48316fee66e9c8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts) and matches the one previously used
- The Validator Exit Bus Oracle contract address [0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e](https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#oracle-contracts) and matches the one previously used
- The keccak of MANAGE CONSENSUS VERSION ROLE `0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341` matches the one that can be obtained via [Etherscan](https://etherscan.io/address/0x0de4ea0184c2ad0baca7183356aea5b8d5bf5c6e#readProxyContract#F5)
#### 7. Grant MANAGE_CONSENSUS_VERSION_ROLE role on CSFeeOracle to Aragon Agent
The vote calls the [grantRole](https://etherscan.io/address/0x4d4074628678bd302921c20573eea1ed38ddf7fb#writeProxyContract#F2) function of the [CSFeeOracle](https://etherscan.io/address/0x4d4074628678bd302921c20573eea1ed38ddf7fb) contract with the parameters mentioned below:
```
7. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 7.1
7.1. On [CSFeeOracle]
0x4d4074628678bd302921c20573eea1ed38ddf7fb
function grantRole(
bytes32 role,
address account
)
Call data:
[1] [MANAGE CONSENSUS VERSION ROLE] 0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341
[2] [AragonAgent] 0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40d73eb977dc6a537af587d48316fee66e9c8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts) and matches the one previously used
- The CSFeeOracle contract address [0x4D4074628678Bd302921c20573EEa1ed38DdF7FB](https://etherscan.io/address/0x4D4074628678Bd302921c20573EEa1ed38DdF7FB) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#community-staking-module)
- The keccak of MANAGE CONSENSUS VERSION ROLE `0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341` matches the one that can be obtained via [Etherscan](https://etherscan.io/address/0x4d4074628678bd302921c20573eea1ed38ddf7fb#readProxyContract#F5)
#### 8. Update CSFeeOracle consensus version to 2
The vote calls the [setConsensusVersion](https://etherscan.io/address/0x4d4074628678bd302921c20573eea1ed38ddf7fb#writeProxyContract#F14) function of the [CSFeeOracle](https://etherscan.io/address/0x4d4074628678bd302921c20573eea1ed38ddf7fb) contract with the parameters mentioned below:
```
8. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 8.1
8.1. On [CSFeeOracle]
0x4d4074628678bd302921c20573eea1ed38ddf7fb
function setConsensusVersion(
uint256 version
)
Call data:
[1] 2
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40d73eb977dc6a537af587d48316fee66e9c8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts) and matches the one previously used
- The CSFeeOracle contract address [0x4D4074628678Bd302921c20573EEa1ed38DdF7FB](https://etherscan.io/address/0x4D4074628678Bd302921c20573EEa1ed38DdF7FB) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#community-staking-module) and matches the one previously used
- The new CSFeeOracle consensus version (2) matches the one published on the [Research forum](https://research.lido.fi/t/lip-27-ensuring-compatibility-with-ethereum-s-pectra-upgrade/9444#p-20086-oracles-consensus-version-7)
#### 9. Revoke MANAGE_CONSENSUS_VERSION_ROLE role on CSFeeOracle from Aragon Agent
The vote calls the [revokeRole](https://etherscan.io/address/0x4d4074628678bd302921c20573eea1ed38ddf7fb#writeProxyContract#F12) function of the [CSFeeOracle](https://etherscan.io/address/0x4d4074628678bd302921c20573eea1ed38ddf7fb) contract with the parameters mentioned below:
```
9. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 9.1
9.1. On [CSFeeOracle]
0x4d4074628678bd302921c20573eea1ed38ddf7fb
function revokeRole(
bytes32 role,
address account
)
Call data:
[1] [MANAGE CONSENSUS VERSION ROLE] 0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341
[2] [AragonAgent] 0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40d73eb977dc6a537af587d48316fee66e9c8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts) and matches the one previously used
- The CSFeeOracle contract address [0x4D4074628678Bd302921c20573EEa1ed38DdF7FB](https://etherscan.io/address/0x4D4074628678Bd302921c20573EEa1ed38DdF7FB) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#community-staking-module) and matches the one previously used
- The keccak of MANAGE CONSENSUS VERSION ROLE `0xc31b1e4b732c5173dc51d519dfa432bad95550ecc4b0f9a61c2a558a2a8e4341` matches the one that can be obtained via [Etherscan](https://etherscan.io/address/0x4d4074628678bd302921c20573eea1ed38ddf7fb#readProxyContract#F5) and matches the one previously used
#### 10. Revoke VERIFIER_ROLE role on CSM from old CS Verifier.
The vote calls the [revokeRole](https://etherscan.io/address/0xda7de2ecddfccc6c3af10108db212acbbf9ea83f#writeProxyContract#F40) function of the [CSModule](https://etherscan.io/address/0xda7de2ecddfccc6c3af10108db212acbbf9ea83f) contract with the parameters mentioned below:
```
10. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 10.1
10.1. On [CSModule]
0xda7de2ecddfccc6c3af10108db212acbbf9ea83f
function revokeRole(
bytes32 role,
address account
)
Call data:
[1] [VERIFIER ROLE] 0x0ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea09
[2] [CSVerifier] 0x3Dfc50f22aCA652a0a6F28a0F892ab62074b5583
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40d73eb977dc6a537af587d48316fee66e9c8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts) and matches the one previously used
- The CSModule contract address [0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F](https://etherscan.io/address/0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#community-staking-module)
- The old CS Verifier contract address [0x3Dfc50f22aCA652a0a6F28a0F892ab62074b5583](https://etherscan.io/address/0x3Dfc50f22aCA652a0a6F28a0F892ab62074b5583) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#community-staking-module)
- The keccak of VERIFIER ROLE `0x0ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea09` matches the one that can be obtained via [Etherscan](https://etherscan.io/address/0xda7de2ecddfccc6c3af10108db212acbbf9ea83f#readProxyContract#F16)
#### 11. Grant VERIFIER_ROLE role on CSM to new CS Verifier.
The vote calls the [grantRole](https://etherscan.io/address/0xda7de2ecddfccc6c3af10108db212acbbf9ea83f#writeProxyContract#F21) function of the [CSModule](https://etherscan.io/address/0xda7de2ecddfccc6c3af10108db212acbbf9ea83f) contract with the parameters mentioned below:
```
11. On [AragonAgent]
0x3e40d73eb977dc6a537af587d48316fee66e9c8c
function forward(
bytes _evmScript
)
Call data:
[1] See parsed evm script at 11.1
11.1. On [CSModule]
0xda7de2ecddfccc6c3af10108db212acbbf9ea83f
function grantRole(
bytes32 role,
address account
)
Call data:
[1] [VERIFIER ROLE] 0x0ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea09
[2] [CSVerifierProposed] 0x0c345dFa318f9F4977cdd4f33d80F9D0ffA38e8B
```
Key Verification Points:
- The Aragon Agent contract address [0x3e40d73eb977dc6a537af587d48316fee66e9c8c](https://etherscan.io/address/0x3e40d73eb977dc6a537af587d48316fee66e9c8c) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#dao-contracts) and matches the one previously used
- The CSModule contract address [0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F](https://etherscan.io/address/0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#community-staking-module) and matches the one previously used
- The new CS Verifier contract address [0x0c345dFa318f9F4977cdd4f33d80F9D0ffA38e8B](https://etherscan.io/address/0x0c345dFa318f9F4977cdd4f33d80F9D0ffA38e8B) is published on [Lido Docs](https://docs.lido.fi/deployed-contracts/#community-staking-module)
- The audit of the new CS Verifier contract version, along with its deployment address, are published on the [research forum](https://research.lido.fi/t/lip-27-ensuring-compatibility-with-ethereum-s-pectra-upgrade/9444/9)
- The keccak of VERIFIER ROLE `0x0ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea09` matches the one that can be obtained via [Etherscan](https://etherscan.io/address/0xda7de2ecddfccc6c3af10108db212acbbf9ea83f#readProxyContract#F16) and matches the one previously used