Solos
StakeWise Solos smart contract details.
The Solos contract is an entry point for deposits into StakeWise Solo. This contract stores ETH collected from the users before it is sent to the ETH2 Validator Registration Contract.
The contract is not upgradable to prevent StakeWise from unilaterally changing the withdrawal credentials through the upgrade mechanism.
To create a solo validator, the user must have at least 32 ether on their balance. Together with the deposit amount, the user must also provide the withdrawal credentials that can be generated by following our guide. By calling addDeposit function in the
Solos
contract, the user will be placed in the queue for validator registration. For every 32 ETH deposited by the user, a new validator will be created.The user can cancel the deposit by calling the cancelDeposit function and withdraw deposited ether back if it did not move to the ETH2 Validator Registration Contract within a period of time specified by the withdrawalLockDuration variable (currently set at 1 day).
The time lock is needed for the
operator
to have some time for registering the validator without the user disrupting the registration process. For example, a malicious user could send the transaction which would cancel the deposit and the operator
would lose gas by trying to register the canceled deposit.When there are deposits in the
Solos
contract, a user with an operator
role can register a new validator. It is possible to create multiple validators in one batch if there is more than one deposit. In order to register a new validator, the operator
must generate the deposit data for every validator and submit it through the registerValidator function. The operator
cannot use the withdrawal credentials that are different from those submitted by the user, since the ETH2 Validator Registration Contract would reject the transaction.Operator generates deposit data for every validator and initiates validator registration
The
operator
runs in the cluster and listens to the Solos
' events. As soon as there is enough ETH collected, the operator
will spin up the validator nodes and register their deposit data through the Solos
contract. The Validators contract keeps track of all the validators registered by the Pool
and Solos
contracts. It rejects registering the validators with already used public keys as there should be only one validator registration call per public key. The ETH2 Validator Registration Contract (VRC) is an official contract for registering new validators.Last modified 2yr ago