Byzantine Vault Parameters
The following section documents the full list of initialization parameters specific to a Byzantine Vault entity. These parameters are grouped under the ByzVaultParams
struct, which defines core logic, access controls, fees, and configuration options.
ByzVaultParams
token
The ERC20 token to be deposited into the vault.
The token must be associated with a whitelisted EigenLayer Strategy.
For ETH deposits on the Beacon Chain, use the canonical address
0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
.
roleManager
The address responsible for managing all roles in the Byz Vault—except the curatorFeeClaimer role. It holds the DEFAULT_ADMIN_ROLE
and has the authority to grant, revoke, or transfer any of the vault's roles.
In the AccessControl contract, this is the address that the role
DEFAULT_ADMIN_ROLE
is granted to.This address has the authority to:
grant any existing role to another address
transfer its own roleManager privileges to a new address by renouncing the current role
revoke any existing role from any address
versionManager
The address of Byz Vault's version manager.
This address can:
upgrade the Byz Vault to a newer version of implementation that is whitelisted by Byzantine
update the metadata URI of the vault
This role can be managed by the roleManager
depositWhitelistManager
The address that manages the whitelist of depositors.
This address can:
add / remove addresses from the deposit whitelist
set / change the vault from public to private or vice versa
Can be set to
address(0)
ifwhitelistedDeposit
is false, in case the creator plans to let anyone depositThis role can be managed by the roleManager
depositLimitManager
Address that can update depositLimit
and enable/disable the isDepositLimit
status.
This role can be managed by the roleManager
curatorFeeClaimer
Address that is the holder of the CURATOR_FEE_CLAIMER_ROLE
, can claim the curator fee from the restaking rewards.
Only the
curatorFeeClaimerRoleAdmin
address can manage this roleThis role cannot be managed by the
roleManager
curatorFeeClaimerRoleAdmin
Admin address in charge of managing the CURATOR_FEE_CLAIMER_ROLE
.
This role holder can:
renounce its own admin role
revoke the
CURATOR_FEE_CLAIMER_ROLE
from its holdergrant the
CURATOR_FEE_CLAIMER_ROLE
to a new address
curatorFee
The fee percentage allocated to the vault curator or risk manager, taken from restaking rewards.
Expressed in basis points:
1_000
represents 10%,10_000
represents 100%.
depositLimit
Maximum quantity of assets that can be deposited into the vault.
Only enforced when
isDepositLimit
istrue
.If
isDepositLimit
is enabled anddepositLimit
is not set, the value defaults to 0 and new deposits will be rejected.Can only be modified by the
depositLimitManager
.
isDepositLimit
If true, the vault has a maximum amount of assets that can be deposited.
If false, an infinite number of assets can be deposited (theoretically).
Only the
depositLimitManager
can update this later.
isPrivateVault
Defines who is able to deposit in the vault.
If true, only the addresses that are whitelisted, i.e. set to true in the
canDeposit
mapping, can deposit into the Byz VaultOnly the
depositWhitelistManager
can update this later.
isTokenized
Whether the Byz Vault is tokenized or not.
If the Byz Vault is tokenized, the
byzShares
holders can transfer them to other addresses
name
The name of the Byz Vault Shares.
symbol
The symbol of the Byz Vault Shares.
metadataURI
URI pointing to the off-chain metadata associated with the vault.
Can only be updated later by the
versionManager
.This value is not stored on-chain; only and event is emitted.
How to get metadataURI
We expect the URI to point to a JSON object that follows a specific structure. This ensures consistent display of metadata across the app and makes it easier for others to interpret and use it as well.
To achieve this, please follow the structure below:
Only name
and description
are mandatory.
The other fields are optional and allow you to share more context with your users.
Note that this metadata is considered the initial set of parameters, but it can be updated at any time by the versionManager
using updateMetadataURI(metadataURI)
We support multiple ways to generate and host the metadata. Choose the method that best suits your setup:
Install Byzantine SDK
Setup your
.env
file
Write your code
Last updated