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
    • 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
      • EigenLayer
      • Allocation to existing Restaking Operators
      • Creation of on-demand Restaking Operators
  • Claiming DV operator fees
Powered by GitBook
On this page
  • Prerequisites
  • Overview
  • High Level Contract Structure
  • Delegators in Symbiotic
  • Strategy Management
  • Step-by-Step Strategy Implementation
  • Strategy Modifications
  • Useful Information For Strategy Management
  1. Curation
  2. Strategy Management

Symbiotic Strategy

PreviousEigenLayer StrategyNextCross Protocol Vault

Last updated 22 hours ago

This section explores how the curators of a Sym Byz vault can efficiently and strategically manage their operator and network delegations.

Prerequisites

Read to understand the Delegation and Delegators concepts in the Symbiotic Protocol.

Overview

  • Byzantine has abstracted the complexity of the Symbiotic protocol's multiple contracts and features. Curators of the Sym Byz vault can easily manage and delegate stakes to networks and operators through a streamlined, single point of access. (cf. High Level Contract Structure)

  • The relevant curator roles mentioned in this section are: networkLimitSetRoleHolders and operatorNetworkLimitOrSharesSetRoleHolders. (cf. )

  • At the creation of the Sym Byz vault, the vault creator must opt for a Delegator among the four types of Delegators implemented by Symbiotic: , , and . The level of risk varies from one delegator type to another.

If the term "Symbiotic vault" is not specified, "Sym Byz vault" and "vault" are synonymous in this section. A new Symbiotic vault is automatically created alongside a Sym Byz vault.

High Level Contract Structure

Curators interacts directly with the Sym Syz vault to manage their delegation strategy.

Links to the abovementionned contracts:

  • SymNativeByzVault: available soon

Delegators in Symbiotic

To effectively manage a vault's delegations and develop a strategy that aligns with a particular risk profile, it is crucial to understand how the four types of Delegators work in the Symbiotic protocol.

The table below the respective features of the four Delegators to help curators assess the risk profile that suits their needs:

Features / Delegator Type*
NRD
FRD
OSD
ONSD

MNMO

or

SNMO

MNMO

or

SNMO

MNSO

SNSO

(4 being the highest)

3

4

2

1

Explanatory note:

* Delegator Types:

  • NRD: Network Restke Delegator

  • FRD: Full Restake Delegator

  • OSD: Operator Specific Delegator

  • ONSD: Operator Network Specific Delegator

  1. The types of Delegator allow various configurations of the vault regarding the number of networks and operators.

    • MNMO: Multiple Networks, Multiple Operators

    • MNSO: Multiple Networks, Single Operator

    • SNMO: Single Network, Multiple Operators

    • SNSO: Single Network, Single Operator

  2. Stake isolation for networks ensures that the stake is dedicated uniquely to a single network. This prevents cross-slashing events, ensuring that a slashing event in one network does not impact the stake levels in others.

  3. Stake isolation for operators ensures that the stake is dedicated uniquely to a single operator. This protects against stake manipulation by malicious curators, as each operator's stake is independent and cannot affect others.

  4. The risk level score is determined by comparing the four types of Delegators with each other.

Diagram for understanding restaking in each Delegator type

Strategy Management

The delegation process varies depending on the type of Delegator selected. Regardless of the type of Delegator, the curator only needs to interact with the following two functions to implement a delegation strategy or modify it:

    /**
     * @notice Set operator shares or limit for a subnetwork for a set of operators
     */
    function manageOperatorsDelegation(
        bytes32[] memory subnetworks,
        address[] memory operators,
        uint256[] memory sharesOrLimits
    ) external;

Only the Network Limit Set Role Holders have the permission to call the above function.

    /**
     * @notice Set the stake limits of a set of subnetworks (how much stake the vault curator is ready to give to the subnetworks)
     */
    function manageNetworksDelegation(bytes32[] memory subnetworks, uint256[] memory limits) external;

Only the Operator Network Limit Set Role Holders have the permission to proceed with the above function.

Step-by-Step Strategy Implementation

Based on the chosen Delegator, curators can consult the appropriate step-by-step guide to learn how to establish and modify a delegation strategy.

For a more efficient and straightforward strategy implementation process, it is recommended that curators get in touch with networks and operators in advance to ensure both's willing to work with the Sym Byz vault.

A network must set its maximum limit to the vault before the curator calls manageNetworksDelegation to set the network's stake limit. Otherwise, the Set network limits step mentioned below will fail. By setting a non-zero limit for a Sym Byz vault, the network shows its willingness to work with this particular vault.

There can be multiple networks and multiple operators in this delegator type.

1. Set network limits

Once the networks opted-in to vault have set their maximum limits (maxLimit) for the vault, the curator can call manageNetworksDelegation to set each network's limit to the vault (networkLimit). This defines the maximum amount of stake a curator can allocate to each network.

The network limit set by the curator should not exceed the maximum limit set by the network.

networkLimit≤maxLimitnetworkLimit ≤ maxLimit networkLimit≤maxLimit

2. Set operator limits for networks

With the handshake between the networks and the Sym Byz vault now complete, the curator can set a stake limit for each operator within every opted-in network. This defines the maximum amount of stake a curator can allocate to each operator within the network.

The example below illustrates the calculation of stake weight:

The total stake allocated to all operators within a single network will never exceed the total stake of the vault.

The total stake of the Sym Byz vault is 2000 ETH. Curator has allocated 200 shares to Operator 1 and 1000 shares to Operator 2 (total shares of 1000).

Calculation of the weight of each operator: weightOp=sharesOp/totalSharesweightOp = sharesOp / totalSharesweightOp=sharesOp/totalShares

  • Stake weight of Operator 1 ≈ 16.66%

  • Stake weight of Operator 2 ≈ 83.33%

Calculation of the stake allocated to each operator: stakeOp=totalStake∗weightOpstakeOp = totalStake * weightOpstakeOp=totalStake∗weightOp

  • Stake allocated to Operator 1 ≈ 333.2 ETH

  • Stake allocated to Operator 2 ≈ 1666.6 ETH

There can be multiple networks and multiple operators in this delegator type.

1. Set network limits

Once the networks opted-in to the vault have set their maximum limits (maxLimit) for the vault, the curator can call manageNetworksDelegation to set each network's limit to the vault (networkLimit). This defines the maximum amount of stake a curator can allocate to each network.

The network limit set by the curator should not exceed the maximum limit set by the network.

networkLimit≤maxLimitnetworkLimit ≤ maxLimit networkLimit≤maxLimit

2. Set operator limits for networks

The total stake allocated to all operators within a single network can exceed the total stake of the vault.

With the handshake between the networks and the Sym Byz vault now complete, the curator can set a stake limit for each operator within every opted-in network. This defines the maximum amount of stake a curator can allocate to each operator within the network.

There can be multiple networks but one single operator in this delegator type.

In this delegator type, the creator should have already delegated 100% of the stake to a specific operator at the creation of the Sym Byz vault. This way, the curator has only one step to complete the delegation process.

Set network limits

Once the networks opted-in to the vault have set their maximum limits (maxLimit) for the vault, the curator can call manageNetworksDelegation to set each network's limit to the vault (networkLimit). This defines the maximum amount of stake a curator can allocate to each network.

The network limit set by the curator should not exceed the maximum limit set by the network.

networkLimit≤maxLimitnetworkLimit ≤ maxLimit networkLimit≤maxLimit

There can only be one single network and one single operator in this delegator type.

In this delegator type, the curator has nothing to do as the strategy has been implemented at the creation of the Sym Byz vault. The vault creator should have delegate 100% of the vault stake to a specific network and to a specific operator.

Strategy Modifications

The curators can change the vault strategy by calling the same functions for implementation.

Useful Information For Strategy Management

Multiple parties are involved in dealing with the Symbiotic strategy implementation, such as networks, operators and curators. It is helpful for curators to know about the actions taken by the operators and the networks before making any decision. The following functions allow the curators to check the details related to participants of the vault.

Purposes
Contracts to interact with
Functions to call

Check if a Network or an Operator has registered within the Symbiotic ecosystem

IOperatorRegistry

isEntity()

Check if an Operator has opted-in to a Symbiotic vault (and at a specific moment)

IOptInService

isOptedIn() isOptedInAt()

Check if an Operator has opted-in to a Network

IOptInService

isOptedIn() isOptedInAt()

All types of Delegator

Check the maximum limit set by a Network

IBaseDelegator

maxNetworkLimit()

For NRD

Check the sum of Operators' shares for a specific Network (and at a specific moment)

INetworkRestakeDelegator

totalOperatorNetworkShares() totalOperatorNetworkSharesAt()

Check an Operator's shares for a Network

INetworkRestakeDelegator

operatorNetworkShares()

Check the Network limit set by the curator itself

INetworkRestakeDelegator

networkLimit()

For FRD

Check an Operator's limit for a Network (and at a specific moment)

IFullRestakeDelegator

operatorNetworkLimit() operatorNetworkLimitAt()

Check the Network limit set by the curator itself (and at a specific moment)

IFullRestakeDelegator

networkLimit() networkLimitAt()

For OSD

Check the Operator managing the vault's funds

IOperatorSpecificDelegator

operator()

Check the Network limit set by the curator itself (and at a specific moment)

IOperatorSpecificDelegator

networkLimit() networkLimitAt()

For ONSD

Check the Operator managing the vault's funds

IOperatorNetworkSpecificDelegator

operator()

Check the Network the vault delegates the funds to

IOperatorNetworkSpecificDelegator

network()

Check the maximum limit set by a Network at a specific moment

IOperatorNetworkSpecificDelegator

maxNetworkLimitAt()

Vault configuration

Restaking across multiple networks

Restaking across multiple operators within the same network

Stake isolation for networks

SNMO MNMO

SNMO MNMO

Stake isolation for operators

Relative risk level

Restaking across multiple networks allows the stake of the vault to be restaked in every network that has been opted-in to the vault. (cf. )

Restaking across multiple operators within the same network allows the stake of the vault to be restaked across multiple operators within the same network. (cf. )

For more details on how the Delegator type can affect the slashing result, go to .

Recommendations:

The curator must specify a number of shares they wish to allocate to the operator for a particular network. As mentioned earlier, the NRD type does not allow restaking across multiple operators within the same network (cf. ). The weight of the stake allocated to an operator depends on the total number of shares within the network. Each operator's stake is distinct, ensuring it's not reused (restaked) in the same network.

Unlike the NRD, the curator specifies a limit of stake for each operator within a particular network. This thereby allows restaking not only across networks but also within the same network. In other words, every operator within a single network can be allocated the total amount of stake that a SymByz vault has. (cf. )

To call the functions above mentioned, it is necessary to know the addresses of the deployed contracts. Find them .

🤖
🍀
SymERC20ByzVault
SymbioticManager
BaseDelegator
here
here
Delegator diagram 1, 2 & 3
Network 3 in Delegator diagram 2
Diagram 1
Diagram 2
✅
✅
✅
❌
❌
✅
❌
❌
✅
❌
✅
❌
❌
✅
❌
❌
✅
✅
1
2
3
4
5
6
this page
NetworkRestakeDelegator
FullRestakeDelegator
OperatorSpecificDelegator
OperatorNetworkSpecificDelegator
here