Symbiotic
Overview
Vault curators on Symbiotic can easily deploy Cap-specific Symbiotic Vaults using the CapSymbioticVaultFactory directly on the app's Create Vault page. Cap must first approve the Vault before delegated stake can be used as collateral.
1. Deploy Symbiotic Vault
Curators can deploy Cap-specific Symbiotic Vaults either via
Cap's UI for creating Vault
Vault Factory contract's createVault function on Etherscan.
As most of the parameters and modules are preconfigured, curators only have to specify the operator address and Collateral asset address when creating the Vault.
The factory contract will create Symbiotic's Delegator, Burner, Slasher and Rewarder modules as needed in Cap's Symbiotic Vault requirements.
/// @param _owner The owner of the vault, will manage delegations and set deposit limits
/// @param asset The asset of the vault
/// @param _agent The agent of the vault
/// @param _network The network of the vault
/// @return vault The address of the new vault function
createVault(address _owner, address asset, address _agent, address _network) external
returns (address vault, address delegator, address burner, address slasher, address stakerRewards);
Once the Vault is deployed, Cap will add the operator-delegator pair to the system with loan parameters via SymbioticAgentManager's addAgent
function. The function handles necessary registry of the Vault. Once this part is complete, delegators can start using delegated stake as collateral.
2. Admin Controls
Key administrative functions available to vault admins include configuring admin fees, setting deposit limits, and whitelisting depositors. Admin fees are taken from the rewards distributed to depositors, as a percentage of the total rewards.
// Set an admin fee
stakerRewards.setAdminFee(adminFee);
// Enable/disable deposit limit
vault.setIsDepositLimit(status);
// Set deposit limit
vault.setDepositLimit(amount);
// Enable/disable deposit whitelist
vault.setDepositWhitelist(status);
// Add/remove whitelisted depositors
vault.setDepositorWhitelistStatus(depositor, status);
3. Collecting Rewards
Rewards are automatically distributed to the StakerRewarder when an operator repays a loan.
Delegators can also manually claim rewards via the realizeRestakerInterest function on the Lender contract. The contract will distribute accrued interest on the operator's borrowed amount to the StakerRewarder.
Vault admins can claim the admin fee via the claimAdminFee function of the Symbiotic StakerRewards.
Last updated