diff --git a/docs/guides/tooling.md b/docs/guides/tooling.md index a37e8b415..95df3a352 100644 --- a/docs/guides/tooling.md +++ b/docs/guides/tooling.md @@ -38,6 +38,28 @@ The Lido Council Daemon monitors deposit contract keys. - [**Repository**](https://github.com/lidofinance/lido-council-daemon/tree/3.7.0) - [**Documentation**](/guides/deposit-security-manual) +## Depositor Bot + +Bot that submits deposit transactions to the Lido protocol once the Deposit Security Committee quorum is reached. + +- **Version**: 5.5.1 +- **Docker image**: sha256:bbacf8afbbb2be8b14efcfa0d03b4e8b01a0abe4ba87793d1684eeff5b4eb1a8, [lidofinance/depositor-bot@sha256-bbacf8afbbb2be8b14efcfa0d03b4e8b01a0abe4ba87793d1684eeff5b4eb1a8](https://hub.docker.com/layers/lidofinance/depositor-bot/5.5.1/images/sha256-bbacf8afbbb2be8b14efcfa0d03b4e8b01a0abe4ba87793d1684eeff5b4eb1a8) +- **Commit hash**: [lidofinance/depositor-bot@89fbbf8](https://github.com/lidofinance/depositor-bot/commit/89fbbf8deae2b93841f5b657b8865ff3d0c762d5) +- **Last update date**: 21 April, 2026 +- [**Repository**](https://github.com/lidofinance/depositor-bot/tree/5.5.1) +- [**Documentation**](/guides/depositor-bot) + +## Reward Distribution Bot + +Bot that distributes node-operator rewards in the Curated and Simple DVT staking modules. + +- **Version**: 1.1.0 +- **Docker image**: sha256:610609ad79a31bd4973299f3744170199732ad8456a18dccd19a9a5b5798977e, [lidofinance/nor-reward-distribution-bot@sha256-610609ad79a31bd4973299f3744170199732ad8456a18dccd19a9a5b5798977e](https://hub.docker.com/layers/lidofinance/nor-reward-distribution-bot/1.1.0/images/sha256-610609ad79a31bd4973299f3744170199732ad8456a18dccd19a9a5b5798977e) +- **Commit hash**: [lidofinance/nor-reward-distribution-bot@1e37b0a](https://github.com/lidofinance/nor-reward-distribution-bot/commit/1e37b0abb72200cbfed6590704e0bdab3da789dc) +- **Last update date**: 21 April, 2026 +- [**Repository**](https://github.com/lidofinance/nor-reward-distribution-bot/tree/1.1.0) +- [**Documentation**](/guides/reward-distributor-bot) + ## Keys API Lido keys HTTP API. diff --git a/docs/holders/lido-council-daemon.md b/docs/holders/lido-council-daemon.md new file mode 100644 index 000000000..fbce233b6 --- /dev/null +++ b/docs/holders/lido-council-daemon.md @@ -0,0 +1,23 @@ +# Lido Council Daemon + +[Lido Council Daemon](https://github.com/lidofinance/lido-council-daemon) is the off-chain service run by every member of the Deposit Security Committee (DSC). It monitors validator public keys in the `DepositContract` and across all Lido staking modules, signs `(depositRoot, keysOpIndex)` messages with the guardian's EOA key to permit deposits, and — if a malicious pre-deposit is detected — broadcasts a `pause` message that any single guardian can use to halt deposits, providing one-honest-participant safety against supermajority collusion. + +For the full description of the threat model, daemon configuration and on-chain interactions, see the [Deposit Security Committee manual](/guides/deposit-security-manual) and the [`DepositSecurityModule`](/contracts/deposit-security-module) contract reference. + +The committee was originally formed as part of [LIP-5: Mitigations for deposit front-running vulnerability](https://research.lido.fi/t/mitigations-for-deposit-front-running-vulnerability/1239); funding for guardian infrastructure is tracked in the [Council Daemons Funding](https://research.lido.fi/t/council-daemons-funding/8526) thread. + +## Mainnet members + +| Operator | Address | Announcement | +|--------------------|-------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------| +| Blockscape | [`0x7912Fa976BcDe9c2cf728e213e892AD7588E6AaF`](https://etherscan.io/address/0x7912Fa976BcDe9c2cf728e213e892AD7588E6AaF) | [post on x.com](https://x.com/BlockscapeLab/status/1452902878885068803) | +| Kiln | [`0x6d22aE126eB2c37F67a1391B37FF4f2863e61389`](https://etherscan.io/address/0x6d22aE126eB2c37F67a1391B37FF4f2863e61389) | [post on x.com](https://x.com/Kiln_finance/status/1969039576170745945) | +| Staking Facilities | [`0xf82D88217C249297C6037BA77CE34b3d8a90ab43`](https://etherscan.io/address/0xf82D88217C249297C6037BA77CE34b3d8a90ab43) | [post on x.com](https://x.com/StakingFac/status/1452656210927394818) | +| Lido dev team | [`0x5fd0dDbC3351d009eb3f88DE7Cd081a614C519F1`](https://etherscan.io/address/0x5fd0dDbC3351d009eb3f88DE7Cd081a614C519F1) | [post on x.com](https://x.com/LidoFinance/status/1452973085557149709) | +| P2P | [`0xa56b128Ea2Ea237052b0fA2a96a387C0E43157d8`](https://etherscan.io/address/0xa56b128Ea2Ea237052b0fA2a96a387C0E43157d8) | [post on x.com](https://x.com/P2Pvalidator/status/1452970276480819208) | +| Stakefish | [`0x4B87F16B8d32cb5a859a4C48a88edB5adBe3498E`](https://etherscan.io/address/0x4B87F16B8d32cb5a859a4C48a88edB5adBe3498E) | [post on x.com](https://x.com/stakefish/status/2041526695866323442) | + +**Signing quorum:** + +- **Deposit intent** — 4 out of 6 guardian signatures are required to permit a deposit. The current value is enforced on-chain and is readable via [`getGuardianQuorum()`](/contracts/deposit-security-module#getguardianquorum) on the [`DepositSecurityModule`](/contracts/deposit-security-module). +- **Pause** — a single guardian signature is sufficient to pause deposits via [`pauseDeposits()`](/contracts/deposit-security-module#pausedeposits). This gives any one honest member the ability to halt further deposits even if the rest of the committee colludes. diff --git a/docs/holders/lido-oracle.md b/docs/holders/lido-oracle.md new file mode 100644 index 000000000..04f7abf16 --- /dev/null +++ b/docs/holders/lido-oracle.md @@ -0,0 +1,25 @@ +# Lido Oracle + +[Lido Oracle](https://github.com/lidofinance/lido-oracle) is the off-chain daemon, run independently by each oracle member, that bridges Ethereum's Consensus and Execution layers for the Lido protocol. Members build reports off-chain and reach consensus on them via the on-chain `HashConsensus` contract; the agreed-upon report is then submitted on-chain and applied by Lido contracts. + +For a deep technical overview, see the [Oracle Operator Manual](/guides/oracle-operator-manual) and the [Oracle specification](/guides/oracle-spec/accounting-oracle). + +Onboarding of new oracle members and rotation of existing members is coordinated on the research forum in the [Expansion of Lido's Ethereum Oracle set](https://research.lido.fi/t/expansion-of-lidos-ethereum-oracle-set/2836) thread. + +## Mainnet members + +| Operator | Address | Forum post | +|----------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------| +| Chorus One (Bitwise) | [`0x8dB977C13CAA938BC58464bFD622DF0570564b78`](https://etherscan.io/address/0x8dB977C13CAA938BC58464bFD622DF0570564b78) | [address rotation](https://research.lido.fi/t/expansion-of-lidos-ethereum-oracle-set/2836/80) | +| Staking Facilities | [`0x404335BcE530400a5814375E7Ec1FB55fAff3eA2`](https://etherscan.io/address/0x404335BcE530400a5814375E7Ec1FB55fAff3eA2) | [post on x.com](https://x.com/StakingFac/status/1346557400057327616), [Lido post](https://x.com/LidoFinance/status/1346555154007470088) | +| Stakefish | [`0x042a9e5acCfa17e28300F1b5967f20891E973922`](https://etherscan.io/address/0x042a9e5acCfa17e28300F1b5967f20891E973922) | [address rotation](https://research.lido.fi/t/expansion-of-lidos-ethereum-oracle-set/2836/81) | +| P2P | [`0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5`](https://etherscan.io/address/0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5) | [address declaration](https://research.lido.fi/t/expansion-of-lidos-ethereum-oracle-set/2836/68) | +| bloXroute | [`0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8`](https://etherscan.io/address/0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8) | [intent to join](https://research.lido.fi/t/expansion-of-lidos-ethereum-oracle-set/2836/29), [address declaration](https://research.lido.fi/t/expansion-of-lidos-ethereum-oracle-set/2836/54) | +| Instadapp | [`0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12`](https://etherscan.io/address/0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12) | [intent to join](https://research.lido.fi/t/expansion-of-lidos-ethereum-oracle-set/2836/30), [address declaration](https://research.lido.fi/t/expansion-of-lidos-ethereum-oracle-set/2836/71) | +| Chainlayer | [`0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf`](https://etherscan.io/address/0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf) | [intent to join](https://research.lido.fi/t/expansion-of-lidos-ethereum-oracle-set/2836/17), [replacing Jump Crypto](https://research.lido.fi/t/jump-crypto-replacement-in-the-oracle-set/5620/8) | +| MatrixedLink | [`0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9`](https://etherscan.io/address/0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9) | [intent to join (replacing Rated)](https://research.lido.fi/t/rated-labs-replacement-in-the-oracle-set/7850/2), [address declaration](https://research.lido.fi/t/rated-labs-replacement-in-the-oracle-set/7850/14) | +| Caliber | [`0x4118DAD7f348A4063bD15786c299De2f3B1333F3`](https://etherscan.io/address/0x4118DAD7f348A4063bD15786c299De2f3B1333F3) | [intent to join (replacing Kyber)](https://research.lido.fi/t/expansion-of-lidos-ethereum-oracle-set/2836/78) | + +**Consensus quorum:** 5 out of 9 identical report hashes are required to finalize a report. The current value is enforced on-chain and is readable via [`getQuorum()`](/contracts/hash-consensus#getquorum) on each `HashConsensus` instance. + +The authoritative on-chain set is maintained by the [`HashConsensus`](/contracts/hash-consensus) contract; the values above can be cross-checked via [`getMembers()`](/contracts/hash-consensus#getmembers) on the `HashConsensus` instances bound to the [`AccountingOracle`](/contracts/accounting-oracle), [`ValidatorsExitBusOracle`](/contracts/validators-exit-bus-oracle) and [`CSFeeOracle`](/staking-modules/csm/contracts/CSFeeOracle). diff --git a/sidebars.js b/sidebars.js index b50b76cbe..c9da09861 100644 --- a/sidebars.js +++ b/sidebars.js @@ -183,6 +183,14 @@ module.exports = { 'multisigs/other', ], }, + { + type: 'category', + label: 'Holders', + items: [ + 'holders/lido-oracle', + 'holders/lido-council-daemon', + ], + }, { type: 'category', label: 'IPFS',