Flow Examples
With Lido Tooling (KAPI + Ejector)
Using the recommended tooling, the flow looks like this:
- Get a list of validators for which to generate and sign exit messages - KAPI
- Generate and sign exit messages:
- keystores - ethdo
- dirk - ethdo
- web3signer or a proprietary signer - custom script/tooling
- Encrypt the message files using the Ejector encryptor script
- Add files to the Ejector
- Wait until valid Ejector messages are running out
- Repeat
Ejector Only
- 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.
- Generate and sign exit messages:
- keystores - ethdo
- dirk - ethdo
- web3signer or a proprietary signer - custom script/tooling
- Encrypt the message files using the Ejector encryptor script
- Add files to the Ejector
- Wait until valid Ejector messages are running out
- Repeat
Without Lido Tooling
- Monitor
ValidatorExitRequest
events of theValidatorsExitBusOracle
- Generate and sign exit messages:
- keystores - ethdo
- dirk - ethdo
- web3signer or a proprietary signer - custom script/tooling
- 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