Cross Protocol Vault

SuperERC20Vault Curator Guide

This guide explains the curator-specific functionality of the SuperERC20Vault, which is a vault that splits deposits between Symbiotic and EigenLayer protocols. For information about curating the underlying vaults (Symbiotic and EigenLayer), please refer to their respective documentation sections.

SuperERC20Vault: Asset Flow and Operational Architecture

Curator Roles

The SuperERC20Vault has two main curator roles:

  1. CURATOR_ROLE: Allows managing the vault's asset distribution and rebalancing

  2. CURATOR_FEE_CLAIMER_ROLE: Allows claiming curator fees from both underlying vaults

Key Functions

Rebalancing Assets

The curator can adjust the distribution ratio between Symbiotic and EigenLayer vaults through a two-step rebalancing process:

  1. Initiate Rebalancing

function rebalance(uint256 _newSymRatio) external
  • _newSymRatio: New target percentage (0-10000) to allocate to Symbiotic vault

  • Only callable by addresses with CURATOR_ROLE

  • Initiates withdrawals from both underlying vaults

  • Puts the vault in rebalancing mode

  • During rebalancing:

    • New deposits are accepted but held in the SuperVault

    • Withdrawals are tracked but not processed from underlying vaults

    • Assets will be distributed according to new ratio once rebalancing completes

  1. Complete Rebalancing

function completeRebalancing() external
  • Only callable by addresses with CURATOR_ROLE

  • Can only be called when rebalancing is in progress

  • Completes the rebalancing process by:

    • Completing withdrawals from both underlying vaults

    • Depositing assets into vaults according to new ratio

    • Reserving assets for pending withdrawals

    • Exiting rebalancing mode

Claiming Curator Fees

function claimCuratorFee(IERC20 token, address recipient) external
  • Only callable by addresses with CURATOR_FEE_CLAIMER_ROLE

  • Claims curator fees from both underlying vaults:

    • Symbiotic vault fees

    • EigenLayer vault fees

  • token: The token to claim fees for

  • recipient: Address to receive the claimed fees

View Functions

function getDistributionRatio() external view returns (uint256 symRatio, uint256 eigenRatio)
  • Returns current distribution ratio between Symbiotic and EigenLayer vaults

  • Values are in basis points (0-10000)

function rebalancingStatus() external view returns (bool isRebalancing, uint256 targetSymRatio)
  • Returns current rebalancing status

  • isRebalancing: Whether vault is currently rebalancing

  • targetSymRatio: Target Symbiotic ratio after rebalancing (0 if not rebalancing)

Important Notes

  1. The SuperVault manages the underlying vaults as private vaults, meaning only the SuperVault can deposit into them.

  2. During rebalancing:

    • New deposits are accepted but temporarily held

    • Withdrawals are tracked but fulfilled after rebalancing completes

    • Assets for pending withdrawals are reserved before reinvesting

  3. The curator fee structure is inherited from the underlying vaults, but the SuperVault acts as the fee claimer for both.

  4. For information about curating the underlying Symbiotic and EigenLayer vaults, please refer to their respective documentation sections.

Last updated