Smart contracts
Last updated
Last updated
Our smart contract suite enables the packaging of any composable DeFi product and placing it on-chain. The suite is built on the following architecture:
The smart contract architecture components:
Vault: A vault is the contract that tracks all the investors positions and represents the value contained in the aggregation of different yield generating opportunities. It is in charge of tracking the Price Per Share of the underlying execution of the strategies, it allows deposits and withdrawals from investors, it manages the funds allocation that each underlying strategy should have and allows the governance of the vault to reallocate funds with a single transaction. One of the key features of our vault is that it can have 1 to the N strategies.
Controller: This controller enables communication between the vaults and strategies, providing standardized access control and governance features. It allows the interchange and upgrade of strategies without creating new smart contracts.
Strategies: These contracts hold the core of the yield generation and are where financial products perform and become composable. Strategies aggregate all positions deposited in the vault, consolidate execution for all investors, and interact with other DeFi products to generate yield. They also interact with keepers, which are external off-chain or on-chain systems that keep the strategy current and active, providing activities such as harvesting and monitoring. One of the key characteristics of the strategy is that it will aggregate all the positions deposited in the vault and consolidate the execution for all the investors.
Keeper System: This system is composed of different task executors that maintain strategy activity, checking and executing activities such as harvesting and rebalancing, and monitoring position health. These keepers are deployed both on-chain and off-chain, ensuring efficient operation.
Our Vault, Controller and Strategy contracts are decoupled but interact with each other in the following manner:
The vault allows deposits/withdrawals and tracks user's Price Per Share. It is also in charge of the 1 to the N allocation in each strategy.
The controller couples the funds and other governance functions with the Strategy.
The Strategy is where the earn (Yield Farming) actions take place and all the composability with other protocols happen.
Our architecture allows 1 vault to manage different strategies at the same time and track the yield from the different sources.
Normally the whitelisted investor will deposit them into the Vault, the Governance will then allocate this funds calling the earn function of the vault and the strategy will be up kept with the Keeper Bot who is constantly maintaining the strategy.
Our investment committee will check through our risk framework if the strategies need rebalancing and call the reallocation function from the vault to reallocate the portfolio of strategies held.
Some additional features added into our contract are:
Whitelisting
Front-running protection
Merkle proof guest listing
Governance roles
Upgradability and automated Deployments
Tokenized yields
High test and branch coverage
Hardhat development environment
Protocols that we are able to integrate with, this list is not exhaustive as we're constantly testing and developing new strategies:
Arbitrum: Uniswap V3
Arbitrum: Uniswap V2
Arbitrum: GMX v2
Arbitrum: Aaave