Byzantine Finance
Website - Home🖥️ For Developers
  • 👋Introduction
    • What is Byzantine Finance?
      • Permissionless strategy vaults
      • Strategy layer & infrastructure layer - Explain Like I'm 5
      • Architecture Overview
    • Explanation of terms
    • Restaking explained
  • Media kit
  • 🔑Byzantine Vaults
    • What are Byzantine vaults?
    • Features of Native Vaults
      • Byzantine Oracle
      • Best practices for Validator Managers
    • Types of Native Vaults
      • Solo Staker Vaults
      • Partner Validated Vaults
      • Distributed Validator Vaults
  • ↔️Vault Interaction
    • Deposit
      • Deposit to ERC20 Vaults
      • Deposit to Native Vaults
    • Withdraw
      • Withdraw from ERC20 Vaults
      • Withdraw from Native Vaults
    • Claim Rewards
      • Restaking Rewards
        • EigenLayer Rewards
        • Symbiotic Rewards
  • 🎛️Vault Creation
    • Overview
      • Vault Configuration Guide
      • Vault Parameters
        • Byzantine Vault Parameters
        • Native Vault Parameters
        • EigenLayer Parameters
        • Symbiotic Parameters
      • Roles
    • Single Protocol Vaults
      • EigenLayer Vault
        • Eigen ERC20 Vault
        • Eigen Native Vault
      • Symbiotic Vault
        • Sym ERC20 Vault
        • Sym Native Vault
    • Cross Protocol Vaults
      • Eigen Layer / Symbiotic ERC20 Vault
  • 🤖Curation
    • Overview
    • Curator Related Roles
    • Vault Management
    • Restaking Strategy Management
      • EigenLayer Strategy
      • Symbiotic Strategy
      • Cross Protocol Vault
    • Curation Fee Management
  • 🌐Node operators
    • Operators in the Byzantine ecosystem
    • Register as a Staking Operator
    • Staking
    • Restaking Operator
      • Symbiotic Operators Guide
      • EigenLayer Operators Guide
  • Claiming DV operator fees
Powered by GitBook
On this page
  • Prerequisites
  • Overview
  • Operator Delegation Management
  • Delegation
  • Undelegation
  • Redelegation to a new operator
  • Complete Undelegation
  • Useful Information For Strategy Management
  1. Curation
  2. Restaking Strategy Management

EigenLayer Strategy

PreviousRestaking Strategy ManagementNextSymbiotic Strategy

Last updated 8 days ago

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).

Only the holders of the role DELEGATION_MANAGER_ROLE are allowed to delegate, undelegate and redelegate the vault's assets to any Eigen Operators.

Prerequisites

Before continuing, make sure you understood the concept of and on Eigen Layer.

Overview

  • 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. )

Operator Delegation Management

Delegation

function delegateTo(
  address operator,
  SignatureWithExpiry approverSignatureAndExpiry,
  bytes32 approverSalt
) external;

Note that:

  1. You can only delegate to one operator at a time

  2. Do not provide any signature or salt if the operator doesn't need any.

Undelegation

function undelegate() external returns (bytes32);
  • 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.

Redelegation to a new operator

function redelegate(
  address newOperator,
  SignatureWithExpiry newOperatorApproverSig,
  bytes32 approverSalt
) external returns (bytes32);

Complete Undelegation

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:

function completeUndelegation() external;

Effect:

Useful Information For Strategy Management

It is possible to monitor or read data about the Eigen restaking strategy by interacting with the following functions:

Purposes
Contract to interact with
Functions to call

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.

🤖
EigenERC20ByzVault
EigenNativeByzVault
how to approve stakers' delegation
EigenERC20ByzVault
EigenNativeByzVault
EigenERC20ByzVault
EigenNativeByzVault
completeUndelegation
undelegate
delegateTo
here
completeUndelegation
undelegate
redelegate
Operator Sets
Unique Stake
Allocation Manager contract
this section
Eigen Byz Vault's stake delegation
here