A protocol-specific system designed to interface with one or multiple DeFi Protocols with as core premise to increase the deposits of underlying assets.
- Routing User funds to underlying DeFi Protocols
- Increasing the underlying asset deposited by End Users
- (Potentially, for in the future)
- Interfacing in a complex way with multiple DeFi Protocols to facilitate actions like:
- Depositing USDC into Spool and accumulating ETH
- And many more!
- Successful Spool Ecosystem Deployment
- Functioning underlying DeFi Protocol
- Deposited funds
- Successfully interfacing with external DeFi Protocols
- Grant the Spool Ecosystem the ability to:
- Deposit into underlying DeFi Protocols
- Withdraw from underlying DeFi Protocols
- Interact with underlying DeFi Protocols
- Each strategy is vastly different and depends on the protocol it interfaces with
- Slippage is used as needed in each strategy and is passed to it by the DoHardWorker
- Multi-Collateral Strategies with internal deposit matching systems have been developed
- A Strategy supports one currency to use while interacting with a DeFi Protocol
- Examples include, but are not limited to, DAI and USDC
A Strategy implementation does not have to be limited to interfacing with one protocol, for example, a Strategy Adapter interfacing with Aave to deposit ETH, borrow USDC against the ETH deposit and use the USDC to provide liquidity via Curve is equally valid as a simple Compound deposit adapter.
A Strategy must meet certain requirements to be a valid implementation. These requirements also mean that there are certain limitations to what a Strategy can be.
- In order for a Strategy to meet the implementational requirements:
- A Strategy must be able to withdraw in full, at any point in time
- A Strategy must support compounding rewards into its underlying assets
- The underlying DeFi Protocol of a Strategy must support deposits and withdrawals in the same transaction
- The underlying asset of a Strategy must be a supported one, or a new supported underlying asset needs to be added