Meteora Dynamic Vaults allow users and integrated protocols to deposit and/or withdraw assets from the vault program any time. Deposited assets are distributed to various lending protocols like Solend & Tulip, with maximum allocation based on a combination of yield percentages and risk mitigation strategies around protocol audit, insurance coverage and open source status.
Fig 1: Meteora Dynamic Vaults overview
The system will consist of 3 main components:
Each Vault in the infra layer stores single token assets, e.g. USDC or SOL, and the majority of the assets will be allocated to various lending protocols to earn yield. The common tokens used in each connecting protocol, AMM or wallet will be stored in a single vault, e.g. USDC from AMM and the wallet will be held in the USDC vault. Users and protocols can deposit liquidity to each Vault directly through a simple interface.
We’ve created an off-chain keeper - Hermes to manage more complex logic and operations i.e. lending protocol monitoring and calculating optimal liquidity allocation across lending platforms etc. There are 3 main operations handled by Hermes:
Yield Optimizer - Hermes will calculate the liquidity allocation across the lending platforms that will generate the most optimal overall APY for the vault. The calculation will require key data from the various lending platforms i.e. Deposit APY, utilization rate, liquidity in pool etc. This process will repeat once every few minutes, and if there is a delta between the new allocation and the current one, a rebalance crank will be sent to the vault to trigger deposits and withdrawals to/from the lending platforms.
Key Metrics Tracker - As indicated above, the calculation of liquidity allocation requires various key data such as deposit APY and liquidity in pool from the lending platforms. The tracker will consistently monitor, track and store these information in the system for the use in calculations and for future references. These data are also exposed to potential integrators for them to display on their UIs or to support their own calculations or logics.
Risk Monitoring - Hermes also runs a risk monitoring service to track utilization rates and reserve levels of lending protocols to safeguard user assets, ready to withdraw liquidity when thresholds are reached. For example, if the utilization rate of a lending pool is above 80%, Hermes will send a transaction to the vault to trigger a full liquidity withdrawal from the pool. All deposits into the pool will also be stopped for 12 hours, giving us sufficient time to investigate and assess if we will continue deposits or stop them completely until further notice. Full details of the various mechanisms are discussed in section 4.3.3.
To make it easy for DApps and Protocols like AMMs and wallets to integrate with our Dynamic Yield Layer, we have created a straightforward SDK and are building up an entire library of pre-built modules and code samples for rapid app development and plug-and-play.
The liquidity in the protocols can be deposited into or withdrawn from the vaults directly via simple API calls. The vaults’ yield can be distributed back to the LPs of the integrated protocols.