Instrumental Dev Logs 1:
Overview
Instrumental Finance will serve as Picasso’s cross-chain strategy hub. How is this actually accomplished? This first ever Dev Logs on Instrumental will dive deep into the architecture of the pallets behind the project and the strategy currently in the works.
Pallets: You can split the pallets native to STRM into three categories: (1) the Instrumental pallet, (2) the Instrumental dynamic strategy, and (3) the protocol-specific strategies themselves. Instrumental’s architecture was designed this way to allow the easy addition of future strategies without needing to force any changes to the core Instrumental pallet.
Strategies: The first strategy being released with Instrumental is the Instrumental-Pablo strategy. This strategy redirects its liquidity into the most optimal Pablo pool.
Manual vs Autonomous: Early on with Instrumental we made the decision to keep Instrumental permissioned during Picasso’s infancy rather than being fully autonomous. Certain decisions (e.g. what strategy should be associated with a whitelisted asset, when protocol-level pool should be set for a strategy, …) would benefit from being set manually so we could drive growth to a specific protocol or e.g. a specific Pablo pool. As Picasso continues to mature these decisions will slowly be phased out in an autonomous manner.
Instrumental Pallet
This pallet is the user-facing, abstraction over the Instrumental protocol. The dev team is able to whitelist assets to be acceptable by STRM and users are able to add and remove liquidity from the protocol.
Whitelist
When a new asset is whitelisted by the dev team, an underlying Cubic vault needs to be created. This vault is responsible for holding onto Instrumental’s reserves of the whitelisted assets.
Add/Remove Liquidity
Through Instrumental’s frontend, a user will have the option to deposit/withdraw liquidity into the protocol. By doing so, this liquidity is transferred into/from the Cubic vault that was created for the whitelisted asset.
Instrumental Dynamic Strategy
This pallet follows the Composite design pattern to act as an abstraction over all of the underlying protocol-specific strategies. By doing so, the Instrumental pallet is able to query this pallet for the most optimal strategy for any given whitelisted asset. Following the initial asset -> strategy association, a new strategy can be set for the asset.
Instrumental Protocol Strategies
This is where the meat of Instrumental lives. Any strategy can be created and associated with the Instrumental Dynamic strategy as long as the pallet implements a specific trait. These pallets expose functionality to interact with the underlying protocol. In the case for the Pablo strategy, the dev team can specify what Pablo pool each whitelisted asset should be sent to.
Rebalance
These protocol-specific strategies are responsible for keeping the passive reserves of the Cubic vault and active reserves within the protocol itself in line with a predetermined ratio. Following a set frequency, these pallets will perform the transfers necessary to rebalance the reserves back to this amount.
Progress
Overview. The Instrumental developers have been hard at work developing and implementing the above design.
Instrumental Pallet. The Instrumental pallet is feature complete and waiting on the completion of the Pablo strategy to be fully tested.
Instrumental Pablo Strategy
Pablo
The Developers have spent a considerate amount of time working with and understanding the Pablo code in order to add additional features to its design. For example, in order to future-proof the process of depositing and withdrawing a singular asset from a Pablo pool, the developers have been adding the ability to perform a single-asset deposit and withdraw into/from a Pablo pool. This pushes the asset transfer logic into Pablo, instead of having it live within the strategy.
This functionality has been fully tested, however the code itself has not been audited and thus will not be present during the release of Pablo. You can expect to see this functionality within Pablo closer to the release of Instrumental itself.
Instrumental Dynamic Strategy
Since wrapping up the Pablo strategy, one of the STRM devs has redirected their focus to the dynamic strategy. More specifically, they have been adding the ability to halt the flow of liquidity to and from a strategy.
Once Instrumental is released and connects to a wide range of pallets, a large dependency graph is created. Due to the mutable nature of pallets, whenever one of these pallets is upgraded there is a possibility that the update can negatively affect the Instrumental strategy that connects to the pallet. The halting functionality will be used during this exact scenario to temporarily prevent the misuse of any STRM liquidity.
Instrumental Default Strategy
The last feature currently being worked on is a default strategy for STRM. Instead of connecting to a specific protocol, this strategy will hold its funds within a cubic vault. As such, this strategy will not provide any long-term benefits but will find itself useful in specific scenarios.
For example, when a new asset is being whitelisted in Instrumental, it can be whitelisted with this strategy set to mimicking a pre-order of a protocol-specific strategy or a locking of funds before being sent into a real strategy.
Similarly, if a strategy is being offboarded, this strategy can be used as a middle man to centralize all of the whitelisted asset’s liquidity before being sent into another APY-earning strategy.
For all things Instrumental, follow us on our socials: