This project makes use of UMA Protocol's Expiring Multi Party. I have made a web interface that uses this EMP contract to allow any user to mint their own synthetic 1inch token (u1inch) using wETH as collateral. After minting 1inch tokens, users can then go to Uniswap and choose to long the token(swap other tokens for u1inch) or short the token(mint u1inch on UMA EMP contract and then swap u1inch for other tokens), hoping the price of u1inch will go down in the future. The app also allows users to deposit more collateral or withdrawal some of the collateral that they alr used to mint tokens, and also redeem u1inch to reduce the debt that they owe. Users can also deposit wETH to aave to earn the same amount of awETH. Using kovan testnet.
How It's Made
This project uses UMA's ready made expirying multi party (EMP) contract that lets users mint synthetic tokens using wETH collateral. I have requested for them to add 1INCHUSD as a price identifier for the contract and set the date of expiry to the start of 2022. I mainly used web3 to interact with the contracts of UMA, Uniswap, Aave and the token contracts that are used in the app (u1inch, wETH), which allowed me to create an easy interface for non-coders especially to be able to be exposed to the different defi elements such as synth tokens, uniswap and aave. I used Coingecko's api to get the price of tokens involved (ETH and 1inch) and used React JS to make the front-end. I am most satisfied with being able to be exposed to all the different defi contracts and learn how to integrate them into apps as I see this as an extremely useful skill that I have learnt. I am also impressed with being able to do this alone, so all responsibility came down to me. Using kovan testnet.