Description

Supervest is a platform designed to encourage investment in crypto by slowly streaming an amount per month that the user is willing to invest. The idea came from the recently volatile markets and the large losses that many endured. We are still in the early stages of blockchain and investing now will most likely prove worthwhile in the future. However due to volatility many are discouraged from doing so. Supervest acts similar to a 401K where every set amount of time your money, in USDC in this case, is converted to the crypto you want to invest in. You can set how much per month you want to invest in a token. Currently only investing in MATIC is supported.

supervest showcase

How it's made

First you connect to the dapp using the web3modal which allows for Metamask, Coinbase Wallet, and WalletConnect. Then you can fund your wallet using Transak integration. In the main dashboard you can see how many streams you have along with the price of MATIC obtained through the Redstone API. In the streams dashboard you can create, update, and delete existing streams. Currently only the Polygon Mainnet is supported and transfers from USDC -> Polygon. Be careful using this as it was not properly tested due to time constraints. Streams are created using Superfluid Supertokens. Unfortunately, Superfluid only allows streaming per second to a wallet and not swapping. Thus once a stream is created, the USDC is streamed to a middle-man wallet which will perform the swap every X amount of seconds using the Uniswap v3 SDK. Then the wallet transfers the swapped amount back to the user connected wallet using ethers.js. I was able to get all of those mechanics working on mumbai mainnet, but unfortunately was sometimes receiving errors on polygon mainnet regarding gas fees and transaction underpriced errors. I had never done as much web3 development as in this hackathon and learnt so much in the process. I'm impressed that I was able to seamlessly connect wallets, start streams, and implement swapping and transferring tokens.