Eigen Layer / Symbiotic ERC20 Vault
This section walks you through the creation of a Cross-Protocol ERC20 Vault, referred to as SuperERC20Vault
. These vaults allow deposits to be split automatically between two underlying vaults: one built on EigenLayer and one on Symbiotic.
They are initialized via the initialize()
function with a dedicated SuperVaultParams
struct containing configuration data for both protocols, as well as vault-wide parameters.
This function deploys and initializes a new SuperERC20Vault, sets up the underlying Symbiotic and EigenLayer vaults, and assigns deposit distribution logic.
Step-by-Step Vault Creation
1. Prepare Parameters (SuperVaultParams)
You must build a SuperVaultParams
struct with the following components:
byzVaultParams (type: ByzVaultParams
)
ByzVaultParams
)Vault-level configuration shared by both underlying vaults. Includes role setup, deposit constraints, tokenization settings, etc.
symRatio (uint256)
Defines the percentage (from 0 to 10_000) of assets to route to the Symbiotic vault upon deposit.
The remaining percentage (10_000 - symRatio) is allocated to the EigenLayer vault.
Example: symRatio = 6000 means 60% of new deposits go to Symbiotic.
eigenParams (type: EigenParams
)
EigenParams
)Configuration for the EigenLayer vault's delegation logic, including operator delegation and role assignments.
symParams (type: SymParams
)
SymParams
)Configuration for the Symbiotic vault: includes vault logic, delegator details, slasher behavior, and burner setup.
curator (type: adress
)
adress
)Address of the curator.
2. Call the Factory Function
Prerequisites
An Ethereum account (EOA) or smart contract that will act as the vault creator
The token you want to use for the vault (must be supported by EigenLayer for EigenLayer vaults)
Access to the Byzantine Factory contract address
Contract Addresses
ByzantineFactory
Coming Soon
Installation
System Requirements
Node.js (v14 or higher)
npm or yarn
TypeScript (optional but recommended)
Installation Steps
Install the SDK
Create Environment File Create a
.env
file in your project root:
Basic Setup
Supported Networks
Holesky Testnet (Chain ID: 17000)
Ethereum Mainnet (Chain ID: 1) - Coming Soon
Hoodi Testnet (Chain ID: 560048) - Coming Soon
SuperERC20ByzVault Creation
Create a Super Vault that integrates with the Symbiotic and Eigenlayer ecosystems:
With your SuperVaultParams
ready, call:
This deploys and initializes the super vault and the underlying Symbiotic and Eigenlayer vaults.
✅ You receive the new vault address. You can now whitelist stakers, set delegation limits, or start deposits.
Summary
To create a SuperERC20Vault, all you need is:
The correct factory and beacon addresses
A fully populated
SuperVaultParams
structCall the ByzantineFactory
Once created, the vault handles deposit splitting, rebalancing, and cross-protocol coordination automatically.
For help with individual parameter structures, refer to:
Last updated