Introducing modular Vault infrastructure for PowerPool structured products
The next level of abstraction for asset management in structured products
DeFi’s holy grail is the opportunity to use assets for generating staking yield by leveraging “DeFi lego” composability. And it is not surprising — imagine that it is possible to get all at once: (1) the asset itself and exposure to its price action (2) asset utility, including governance rights (3) additional yield based on staking in a third-party contract. It looks easy when applied to a single token, but it is tricky for complex structured products like indices.
An index is a basket of assets stored in the contract. For trustless staking these assets in other contracts, there should be an asset manager for each token and a tool for automating contract calls for yield harvesting. End users own a share of the assets in the index contract through holding LP tokens (index tokens). Since the index contract, in turn, owns assets in asset managers, the end-user owns them all the time, and the product is non-custodial.
The first PowerPool product — ASSY (AAVE SUSHI SNX YFI basket), offering additional yield on the basket by staking, was built on our Balancer v1 fork. We implemented asset managers technology based on Wrapper-Router architecture to generate a yield from Balancer pool assets. This solution is flexible and allows to change staking contracts on-the-fly without affecting the operation of Balancer pool itself.
We are proud that our v1-based solution inspired Balancer v2 asset management infrastructure.
In recent months we worked on building the next version of asset managers architecture. The goals of this update were to make it as modular as possible, including the opportunity to supply liquidity directly to the Vaults not only from the Balancer pool but also from user-owned addresses. This article introduces modular Vault infrastructure, upcoming Balancer v2 integration, and future plans.
Modular Vaults infrastructure
How do PowerPool asset managers work?
Let’s discuss it using the example with BSCDEFI — blue chip Defi Binance Smart Chain index:
While assets are inside the index contract (not transferred to Vaults), it is just the basket composed of CAKE, XVS, etc. In order to deposit tokens to Vaults for staking, they are initially transferred to the Wrapper contract. After this, each token is replaced by its wrapped version or piToken — CAKE by piCAKE, XVS by piXVS, etc. piTokens are derivative assets acting as LP tokens for Vaults and accumulating interest from staking over time.
Underlying ERC20 tokens are staked via Router and Connector contracts. An example of a simple strategy is staking to CAKE staking contract.
Router contract is separately created for each Vault. Router calls Connector using the delegate call to deposit tokens into this or that staking contract. So, Connector customizes the staking logic. A Router can stake tokens into several staking opportunities via several connectors; for example, stake 50% of available CAKE in CAKE staking (earning CAKE staking rewards), and stake the remaining 50% in some Sirup pool (earning some BEP20 token as a reward), sell it and convert to CAKE on schedule. CAKE is automatically added to the staking position.
All necessary contract calls, including yield harvesting, are executed by a permissionless automation network — PowerAgent, powered by independent agents signing transactions. More information regarding brand new PowerAgent architecture will be shared in the next articles.
Modular liquidity provision and its benefits
New PowerPool Vaults will support modular liquidity provision. Only tokens from the index contract could be deposited into the Vault in the past. Users who are not index LPs can also use Vaults for their own needs. For example, if there is a BSCDeFi index with more than 10 assets in the basket, a user can use only CAKE Vault by depositing CAKE there without interacting with an index.
The modular approach significantly increases TAM (Total addressable market) for PowerPool products involving additional users.
So, users can deposit liquidity in the following ways:
- Using protocol token (ETH for Ethereum, BNB for BSC, AVAX for Avalanche, etc) or stablecoin for depositing into the index via ZAP solution. In this case, the user’s liquidity will be deposited into all Vaults used by the index. Also, ERC20 from the index composition can be wrapped into the index.
- Depositing single asset into any PowerPool Vault
- Depositing assets into any arbitrary number of PowerPool Vaults (for example, into four of them) and creating custom index basket generating staking yield.
Another advantage of modularity is integration possibilities. Any user or protocol can use Vaults for their own needs and create products on top of it. The simplest case is using Vault LP tokens as an interest-bearing version of popular assets, similar to aTokens and cTokens in lending markets.
Technical features of PowerPool Vaults
The first feature is reserves. Since PowerPool Vaults are primarily designed for structured products, it is important to store several % of total assets on the Wrapper contract for cheap (in terms of gas costs) withdrawals of small amounts. There are reserve ratio lower bound and upper bound constants that are unique for each Vault and depend on the nature of the staking contract and associated gas costs.
Another feature is T — claim rewards interval. It is a standard time interval for harvesting yield or other contract calls by the PowerAgent network. PowerAgent will do a necessary activity every T time if reserve conditions are met. In case of violating reserve conditions for some reason, PowerAgent can make calls more frequently (Force rebalance).
Balancer v2 and PowerPool Vaults and products
PowerPool Vaults were designed for technical specifications of PowerPool products based on Balancer v1 fork. Balancer v2 asset managers are slightly different by architecture. First, they allow depositing liquidity only from v2 Vault — the main Balance v2 contract storing all the liquidity from v2 pools. In this case, LP tokens for tokens taken from v2 Vault are not minted since all taken balances are kept inside the asset manager’s contract.
It narrows the opportunity for using Vaults to provide assets from existing Balancer v2 AMM pools. But, what if we can integrate PowerPool asset managers into Balancer v2, allowing to deposit liquidity from AMM pools and independent user wallets?
Balancer v2 is gas efficient, powers network effect, and offers excellent opportunities for building structured products on top of it.
This is why the integration of PowerPool Vaults in Balancer v2 is our priority. After exploring technical opportunities, we found one that will fix the issue mentioned above, preserving a high level of security and reliability for asset managers.
We will adapt the architecture of our asset managers to Balancer v2 by adding an additional method in the Router contract. This method will account for how many tokens were taken from v2 Vault and from external addresses for maintaining reserves. Such an upgrade will allow external users and protocols to deposit their tokens outside of AMM pools, resulting in better flexibility and opportunity to attract additional audience benefiting TVL of PowerPool and Balancer.
The first step will be the implementation of new Vaults infrastructure for BSCDeFi converting BSCDeFi into a yield-generating basket.
All holders of BSCDeFi will automatically become LPs into all Vaults holding index assets.
Holders of assets included in the BSCDeFi composition will have an opportunity to generate yield on their assets in an automated way selecting one asset or a basket they want.
The following steps include launching the brand new version of PowerAgent network on new chains and creating the first Vault compatible with Balancer v2 infrastructure.