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. Update Vault's Metadata

  • Role Required: VERSION_MANAGER_ROLE

  • Function:

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

    • Change the off-chain metadata URI.


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

Last updated