EigenLayer Strategy
Last updated
Last updated
This section explains how the curators of EigenLayer vaults can choose and adjust their underlying restaking strategy (i.e the portfolio of AVSs and Operator Sets the vault is exposed to).
Before continuing, make sure you understood the concept of and on Eigen Layer.
Currently on Eigen Layer, the restaking strategy is mastered by the operators. This is the address managing the operator who can allocate an operator delegated stake to different operator sets. This is done by calling the function modifyAllocations
on the .
The Eigen Byz vaults curators can only choose (or change) the operator their vault's stake will be delegated to.
It is thus recommended to the curators to do a due diligence on the operator you are about to delegate to or to work closely with the entity running the operators.
To learn more about node operator onboarding steps on Eigen Layer and allocation of their unique stake among operator sets, refer to .
The relevant curator roles mentioned in this section is delegationSetRoleHolder
(cf. )
This function queues a withdrawal of all the vault's delegated stake on Eigen Layer to remove the assets from the current delegated operator. As all Eigen withdrawals, the queued assets are still subject to slashing until the withdrawal is completable (after MIN_WITHDRAWAL_DELAY_BLOCKS
blocks which is approximatively 14 days).
The id of the withdrawal request is returned by the function.
As all undelegations act as withdrawals on Eigen Layer, it must be completed after the withdrawal period (14 days). Anyone can call this function to complete an undelegation process:
Effect:
It is possible to monitor or read data about the Eigen restaking strategy by interacting with the following functions:
Get the operator address the vault's stake is currently delegated to
EigenERC20ByzVault
or EigenNativeByzVault
delegatedTo()
Returns the current/pending stake allocation an operator has from a strategy (token) to an operator set
AllocationManager
getAllocation()
Given a strategy (a token), returns a list of operator sets and corresponding stake allocations an operator is exposed to. Note that this returns a list of ALL operator sets the operator has allocations in. This means some of the returned allocations may be zero.
AllocationManager
getStrategyAllocations()
The DELEGATION_MANAGER_ROLE
holder can delegate byz vault's assets to an eigen layer operators by calling the function (from either an or an ):
Some operators are not permissionless and must approve stakers' delegation. Therefore the delegator / curator must provide an approver signature signed and given by the operator's approver address. Learn .
The DELEGATION_MANAGER_ROLE
holder can undelegate all the delegated vault's assets from the eigen operator by calling the function (from either an or an ):
To fully undelegate, a call to the function is required after the withdrawal delay period elapsed.
The DELEGATION_MANAGER_ROLE
holder can also redelegate the vault's assets to a new operator (for example if the current operator changes the restaking strategy that does't meet anymore the curator's need). Just call the below function (from either an or an ):
A call to this function acts as a call to and then .
An operator's approver signature and salt might be required if new delegations to the operator are permissioned (more details )
For the stake to be fully delegated to the new operator, a call to will be required at the end of the withdrawal period.
If called after a call to , the byzantine vault simply get back its assets and do not do nothing it (no active restaking, so stake not slashable, no rewards generation)
If called after a call to , the assets are pulled from the previous operator and deposited / delegated to the new operator, specified at redelegation. The stake is still slashable and the vault will continue earning restaking rewards.