Investing with LP positions is time consuming and has a high barrier to entry. Aqueduct is an easy solution to invest in LP positions, reducing the impacts of high price volatility through real time asset streaming using Superfluid. In as simple as three clicks, users are able to stream funds and receive rewards automatically. We use Uniswap V3 to swap incoming tokens such that an equal contribution of liquidity can be provided. We then deposit those funds into Uniswap V2 LP positions. This entire process of swapping, depositing, and retrieving funds is all automated on a set interval by ChainLink keepers.
Superfluid enables real-time streaming of assets by initiating a constant flow agreement to our super app contract. Our super app contract acts as a factory to dynamically deploy another contract to manage a user's LP positions when they start a stream. These LP position contracts are managed on a set interval using ChainLink keepers, which allow us to iterate through the positions held by users. We use Uniswap V3 for swapping tokens and Uniswap V2 to mint, add, and remove liquidity. In addition, we use WalletConnect on our frontend to provide a variety of wallets to users. We use web3.js, along with the Superfluid SDK to manage calls to our super app contract. Every time the ChainLink keeper updates a position, it downgrades the entirety of super tokens on the user's contract, swaps half of that balance with WETH, and updates the user's LP position with their newly streamed funds. We encountered a lot of difficulties getting every component working together seamlessly, but this became a great opportunity to learn about the different protocols we were using.