Triggerable Exits Working Group

🎯 Group goals

  • Develop and integrate Triggerable Exits support into the Lido protocol.

Withdrawal Сredentials contract

A smart contract on the Lido WC address that facilitates basic interaction with the CL as described in EIP-7685.
Permissionless interaction with proof can also be included in this contract instead of VEBO.

🎯 Subproject goal

  • Create design for eip-7685 support.
  • Create and implement interface that creates Triggerable Withdrawal Requests (TWR).

VEBO contract

The primary focus is to maintain VEBO exit limits within a frame.

🎯 Subproject Goals

  • Create and implement an interface to permissionlessly create TWR.
  • Create and implement an interface to permissionfully deliver reports from Staking Modules and Governance.
    OR
  • Design an Oracle to deliver Priority Exits with the current report.

Priority Exit Bus contract/role

This contract can be integrated with the VEBO contract. It is essential to determine how Staking Modules and the DAO will interact with this contract. Priority Exit reports should be designed to be applicable for various use cases by the DAO or Staking Modules.

🎯 Subproject Goals

  • Develop an interface for Staking Modules and Lido DAO to request validators to exit.
  • Ensure that reports sent to VEBO have a higher priority than default reports.

VEBO offchain

🎯 Subproject Goals

  • Support the new version of the VEBO contract.
  • Support new limits partially utilized by Priority Exits.

Exit Trigger Bot

The Exit Trigger bot should be available for anyone to use for exiting validators. It should have a straightforward interface that allows flexible exiting of any validators.

🎯 Subproject Goals

  • Develop a trigger exit policy.
  • Create a bot that can deliver WE proof with different fee strategies.
  • Make this an open-source project and create a CLI within the bot to enable the creation of selected TWRs.

TE spec
EIP-7002
Miro board
MVP: https://github.com/lidofinance/core/pull/38

Sepolia testnet (not tested):
https://discord.com/channels/761182643269795850/1186287629503840327/1232879697122168832
Bytecode for 7002 on geas https://github.com/lightclient/sys-asm

Updates check

https://ethereum-magicians.org/t/eip-7002-execution-layer-triggerable-exits/14195
Or on on all core devs meet (short https://weekinethereumnews.com/)
https://github.com/lightclient

Plan

Startup

  • Create workgroup
  • Create weekly sync call
  • Create timeline (deadline is Pectra hardfork?)
  • Check latest existing code
  • Check latest changes in EIP

Developing

  • Each subproject
    • Write documentation and plan interfaces
    • Proof of concept
      • Create testing wf (auto delivery scripts)
    • Unit testing
  • Integration testing + manual?
  • Deliver documentation into Lido and get approves
  • Create deploy scripts and deliver to prod
  • Profit

Roles

  • EIP guy @Max
    • Periodically looking into EIP. Delivery latest changes on syncs.
  • Lead role @raman
    • Sumup all researches into one
    • Deliver and approve everything with proseco and other teams
    • Communication
  • Lead tech role @krogla @george?
    • Make sure all interfaces is compatible.
    • Review all PRs.
    • Make sure nothing lost.
  • Subprojects guys
    • WC contract @Max
    • VEBO @Alex K
    • VEBOracle @Raman
    • Priority Exit Bus @Anna
    • Exit Trigger Bot @litus