Skip to main content

Lido Council Daemon

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 and the DepositSecurityModule contract reference.

The committee was originally formed as part of LIP-5: Mitigations for deposit front-running vulnerability; funding for guardian infrastructure is tracked in the Council Daemons Funding thread.

Mainnet members

[proposed to rotate] Current members:

OperatorAddressAnnouncement
Blockscape0x7912Fa976BcDe9c2cf728e213e892AD7588E6AaFpost on x.com
Kiln0x6d22aE126eB2c37F67a1391B37FF4f2863e61389post on x.com, exit request
Staking Facilities0xf82D88217C249297C6037BA77CE34b3d8a90ab43post on x.com
Lido dev team0x5fd0dDbC3351d009eb3f88DE7Cd081a614C519F1post on x.com
P2P0xa56b128Ea2Ea237052b0fA2a96a387C0E43157d8post on x.com
Stakefish0x4B87F16B8d32cb5a859a4C48a88edB5adBe3498Epost on x.com

[proposed] EDF DelegationContracts (LIP-37). Kiln leaves the committee and Stakely takes its seat, see the Kiln exit request:

OperatorAddressAnnouncement
Blockscape0xDc1579636686C082fc3b00B9EB25259A110D0C44EDF DelegationContract
Stakely0x6A22d74a816662078f2371A7138E7614874cd61dreplacing Kiln, EDF DelegationContract
Staking Facilities0x35506190Ca6df385aA6Bc4a970646dd4f49426c1EDF DelegationContract
Lido dev team0x915F0Fa50E1af761B113b41c79ab33Bf4734C36EEDF DelegationContract
P2P0xe387Ba1d5C9f6306eCe9ac949C7fB6233dD5411EEDF DelegationContract
Stakefish0x031E597BcF680f1f2293b119b4b2B14096B15497EDF DelegationContract

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() on the DepositSecurityModule.
  • Pause — a single guardian signature is sufficient to pause deposits via pauseDeposits(). This gives any one honest member the ability to halt further deposits even if the rest of the committee colludes.