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
  • Summary of Curator Actions (ByzVault / NativeByzVault)
  • 1. Assign/revoke all roles
  • 2. Manage Deposit Whitelisting
  • 3. Set or Update Deposit Limits
  • 4. Upgrade Vault or Update Metadata
  • 5. Register Ethereum Validators (Solo Staker Vaults Only)
  1. Curation

Vault Management

The Curator is a privileged role responsible for managing the lifecycle, configuration, and fee logic of a Byzantine Vault. This includes vaults built with either the ByzVaultParams or NativeByzVaultParams structs.

This section outlines the behaviors available to curators for ERC-20 vaults and native ETH vaults, detailing the required role and the associated functions to call.

Summary of Curator Actions (ByzVault / NativeByzVault)

Action
Role Required
Vault Type
Function / Field

Assign/revoke all roles

roleManager

ByzVault

grantRole, revokeRole, renounceRole

Manage Deposit Whitelisting

DEPOSIT_WHITELIST_MANAGER_ROLE

ByzVault

setCanDeposit(), setIsPrivateVault()

Set or Update Deposit Limits

DEPOSIT_LIMIT_MANAGER_ROLE

ByzVault

setDepositLimit(), setIsDepositLimit()

Upgrade Vault or Update Metadata

VERSION_MANAGER_ROLE

ByzVault

updateMetadataURI()

Register validators

VALIDATORS_MANAGER_ROLE

NativeByzVault

registerValidators()


1. Assign/revoke all roles

  • Role Required: roleManager

  • Functionality:

    • Grant or revoke any role defined in the vault.

    • Transfer roleManager to another address.

  • Functions:

    function grantRole(bytes32 role, address account) external;
    function revokeRole(bytes32 role, address account) external;
    function renounceRole(bytes32 role, address account) external;

2. Manage Deposit Whitelisting

  • Role Required: DEPOSIT_WHITELIST_MANAGER_ROLE

  • Function:

    function setCanDeposit(address[] calldata _stakers, bool _canDeposit) external;
    function setIsPrivateVault(bool _isPrivateVault) external;
  • Functionality:

    • Enable or disable private vault mode.

    • Approve or deny deposit permissions to specific stakers.


3. Set or Update Deposit Limits

  • Role Required: DEPOSIT_LIMIT_MANAGER_ROLE

  • Function:

    function setIsDepositLimit(bool _isDepositLimit) external;
    function setDepositLimit(uint256 _depositLimit) external;
  • Functionality:

    • Cap deposits into the vault to a defined limit.

    • Toggle deposit cap logic on or off.


4. Upgrade Vault or Update Metadata

  • Role Required: VERSION_MANAGER_ROLE

  • Function:

    function updateMetadataURI(string calldata metadataURI) external;
  • Functionality:

    • Change the off-chain metadata URI.

    • Update vault implementation (done through proxy upgrade, external to interface).


5. Register Ethereum Validators (Solo Staker Vaults Only)

  • Role Required: VALIDATORS_MANAGER_ROLE

  • Function:

    function registerValidators(Validator[] calldata validators) external;
  • Functionality:

    • Add new Ethereum validators to the vault for staking.

    • Only callable if the operatorId is set to bytes32(0) (Solo Staker Vault).

PreviousCurator Related RolesNextStrategy Management

Last updated 1 month ago

🤖