Staking

To participate in EES, an executor must stake ERC-20 tokens via the stake function. Depending on the deployed chain, the token and amount may vary. Staking is needed such that behaviour against the rules can be punished financially with slashing of funds. Staked executors are rewarded by having the chance to be designated during epochs and get further rewards from executing.

Module registration

Staking means registering for execution and fee modules that the the executor wants to be able to execute with. That is, an executor can only execute a job if the executor has registered for both the execution and fee module. Since registering for a module means committing to executing jobs with that module, there are higher stakes for registering more modules. More specifically, the amount of tokens required to stake is proportional to the number of modules registered or.

While the stake function requires registration of at least two modules, the executor might at a later point register further modules via the registerModules function or deregister modules via the deregisterModules function.

Unstaking

An executor can unstake via the unstake function, thus withdrawing their token balance back to the caller. This will completely withdraw their participation within the protocol and cannot be slashed going forward.

Active vs inactive executors

Upon staking an executor is set to active and is actively in the pool of executors who can be designated during epochs. If the executor's internal balance falls below the staking balance threshold, the executor will be deactivated and can no longer be designated in epochs. This can happen due to slashing or paying execution tax. While being inactive, the executors balance still persists and they can execute jobs outside designated rounds as usual.

The minimum staking amount it proportional to the number of modules registered and is enough to make sure that the executor has enough balance to be slashed. An inactive executor might topup their balance via the topup function to bring their balance back above the minimum.

Time restrictions

Staking can not happen during the alternating rounds of designation and open competition and during the slashing phase of an epoch. This is a technicality to preserve internal data structures after the designation seed is set. Furthermore, there is a lock period after any registration of modules which resets upon new registrations. During this time, the executor is committed and cannot unstake.

Last updated