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
  • SymParams
  • BurnerParams
  • owner
  • delay
  • globalReceiver
  • networkReceivers
  • operatorNetworkReceivers
  • VaultParams
  • version
  • epochDuration
  • DelegatorParams
  • delegatorType
  • hook
  • hookSetRoleHolder
  • networkLimitSetRoleHolders
  • operatorNetworkLimitOrSharesSetRoleHolders
  • operator
  • network
  • SlasherParams
  • slasherType
  • vetoDuration
  • resolverSetEpochsDelay
  1. Vault Creation
  2. Overview
  3. Vault Parameters

Symbiotic Parameters

PreviousEigenLayer ParametersNextRoles

Last updated 5 days ago

This page outlines the parameters required to initialize a Sym Byz Vault, which integrates with Symbiotic infrastructure. These parameters enable configuration of key Symbiotic modules: the BurnerRouter, Vault logic, Delegator mechanics, and Slasher behavior.

These structs are initialization parameters required when deploying a Byzantine Vault with Symbiotic support—SymParams being the top-level struct that groups all module configurations.

There is 1 main struct with 4 underlying:

  • SymParams — Main struct passed to the vault initialization function.

    • BurnerParams — Configures how slashed funds are routed.

    • VaultParams — Governs vault metadata, ownership, and epoch behavior.

    • DelegatorParams — Handles delegation logic across networks and operators.

    • SlasherParams — Configures the slashing and veto rules.

Most of the notions are references to the core mechanisms of Symbiotic. For more details about these mechanisms, check



SymParams

This struct is the main container used to initialize a Sym Byz Vault. It aggregates the configuration for all Symbiotic modules: burner, vault, delegator, and slasher.

struct SymParams {
    BurnerParams burnerParams;
    VaultParams vaultParams;
    DelegatorParams delegatorParams;
    SlasherParams slasherParams;
}


BurnerParams

Defines how slashed funds are routed across different receivers based on priority (operator-network > network > global).

struct BurnerParams {
    address owner;
    uint48 delay;
    address globalReceiver;
    IBurnerRouter.NetworkReceiver[] networkReceivers;
    IBurnerRouter.OperatorNetworkReceiver[] operatorNetworkReceivers;
}

owner

Admin of the BurnerRouter.

  • Can modify receivers and delay.

  • Must be a trusted address or set to address(0) to make the configuration immutable.


delay

Delay (in seconds) before new settings take effect.

  • Allows stakers to exit before changes if they disagree.


globalReceiver

Default receiver of slashed funds.

  • Used only if no network-specific or operator-specific routes are configured.


networkReceivers

Receiver routes for specific networks.

  • Takes precedence over globalReceiver.


operatorNetworkReceivers

Highest priority routing: used when a specific operator-network pair is slashed.

  • Overrides all other routes.



VaultParams

Specifies ownership, implementation version, and epoch configuration for the deployed vault.

struct VaultParams {
    uint64 version;
    uint48 epochDuration;
}

version

Implementation version to deploy.

  • Controls the specific version of the vault logic.


epochDuration

Epoch duration in seconds.

  • Defines the vault’s operational cycle.



DelegatorParams

Configures delegation logic and permissions for distributing stake across networks and operators.

struct DelegatorParams {
    DelegatorType delegatorType;
    address hook;
    address hookSetRoleHolder;
    address[] networkLimitSetRoleHolders;
    address[] operatorNetworkLimitOrSharesSetRoleHolders;
    address operator;
    address network;
}

delegatorType

Type of Delegator to deploy, among the DelagatorType enum.

  • Determines restaking logic structure.

enum DelegatorType {
    NETWORK_RESTAKE,
    FULL_RESTAKE,
    OPERATOR_SPECIFIC,
    OPERATOR_NETWORK_SPECIFIC
}

Delegator Types Explained

NETWORK_RESTAKE (Type 0)

  • Allocations to networks are set using absolute numbers.

  • Allocations to operators are expressed as shares of the network's total allocation.

  • Restaking is allowed across networks, but not across operators within a single network.

  • Operator and network allocations can be changed at any time by the respective role holders.

FULL_RESTAKE (Type 1)

  • Allocations to both networks and operators are absolute values.

  • Restaking is allowed both across networks and across operators within each network.

  • Operator and network allocations can be modified at any time by the designated role holders.

OPERATOR_SPECIFIC (Type 2)

  • Stake is allocated to a single, fixed operator across one or more networks.

  • Restaking across networks is possible only if the operator has opted in to each network.

  • The operator is immutable once the vault is created.

  • Network allocations can still be updated by the vault’s curator.

OPERATOR_NETWORK_SPECIFIC (Type 3)

  • Stake is allocated to one specific operator on one specific network.

  • This is the most restrictive delegation mode: both operator and network are fixed and immutable.

  • No allocation changes are allowed after vault creation.

If you're unsure which type to choose, refer to your vault's restaking goals. Use:

  • NETWORK_RESTAKE or FULL_RESTAKE for flexible, dynamic delegation strategies.

  • OPERATOR_SPECIFIC or OPERATOR_NETWORK_SPECIFIC when targeting a fixed operator setup.


hook

Optional slashing hook contract.

  • Called on each slash.

  • Must be added to the proper role holder arrays if set.


hookSetRoleHolder

Address allowed to update the hook.

  • Also responsible for maintaining associated role permissions.


networkLimitSetRoleHolders

Authorized addresses to manage network delegation limits.

  • Used in NETWORK_RESTAKE, FULL_RESTAKE, and OPERATOR_SPECIFIC.

  • Can be left empty for OPERATOR_NETWORK_SPECIFIC.


operatorNetworkLimitOrSharesSetRoleHolders

Authorized addresses to manage operator-network delegation.

  • Used for NETWORK_RESTAKE and FULL_RESTAKE.

  • Optional for simpler delegator types.


operator

Address of the delegated operator.

  • Used in OPERATOR_SPECIFIC and OPERATOR_NETWORK_SPECIFIC only.

  • Immutable once set.


network

Address of the delegated network.

  • Used only in OPERATOR_NETWORK_SPECIFIC.

  • Immutable once set.



SlasherParams

Defines slashing behavior, including whether veto mechanisms are enabled and the timing of resolver updates.

struct SlasherParams {
    SlasherType slasherType;
    uint48 vetoDuration;
    uint256 resolverSetEpochsDelay;
}

slasherType

Type of slashing mechanism.

  • Must match one of the SlasherType enum values: INSTANT or VETO.


vetoDuration

Time window (in seconds) to veto slash requests.

  • Used only if slasherType is VETO.

  • Immutable once set.


resolverSetEpochsDelay

Epoch delay for resolver changes to take effect.

  • Applies only to VETO slashing.

  • Immutable after setup.

🎛️
https://docs.symbiotic.fi/