Skip to main content

Flow Examples

With Lido Tooling (KAPI + Ejector)

Using the recommended tooling, the flow looks like this:

  1. Get a list of validators for which to generate and sign exit messages - KAPI
  2. Generate and sign exit messages:
  • keystores - ethdo
  • dirk - ethdo
  • web3signer or a proprietary signer - custom script/tooling
  1. Encrypt the message files using the Ejector encryptor script
  2. Add files to the Ejector
  3. Wait until valid Ejector messages are running out
  4. Repeat

Ejector Only

  1. Get a list of validators for which to generate and sign exit messages:
  • By the order keys are stored in (eg choose oldest)
  • Query NodeOperatorsRegistry contract to get all your keys, sort by index, start with the lowest indexes. Each batch, either track the last pre-signed index or query validator status on the Consensus Node to ignore exiting and already exited validators.
  1. Generate and sign exit messages:
  • keystores - ethdo
  • dirk - ethdo
  • web3signer or a proprietary signer - custom script/tooling
  1. Encrypt the message files using the Ejector encryptor script
  2. Add files to the Ejector
  3. Wait until valid Ejector messages are running out
  4. Repeat

Without Lido Tooling

  1. Monitor ValidatorExitRequest events of the ValidatorsExitBusOracle
  2. Generate and sign exit messages:
  • keystores - ethdo
  • dirk - ethdo
  • web3signer or a proprietary signer - custom script/tooling
  1. Submit the messages:
  • ethdo can do it straight away in the previous step by leaving out --json argument
  • Submit it manually to the Consensus Node: API Docs