Smart contract keeps your exposure to given assets in balance.
Basically a recreation of an Prism (projected created by Shapeshift and later shutdown). The reason it was recreated was because we could not find anyone else having recreated it, we wanted it to exists, and seemed fun to recreate! The way it works is that users create an portfolio by depositing ETH, and the smart contract will re-balance the portfolio. Users can sell the portfolio and get ETH back. In the future more assets / protocol would most likely be added.
How it's made
We use Uniswap to go between assets. Because we are on Optimism (l2), we could not use the Uniswap oracle (because of the way block.timestamp work on Optimism). Therefore we used Chainlink to be able to track the price of assets. We used Foundry as the build tool for the smart contracts (so fast!). On the frontend we used React, and the Metamask api to make it easy to call the smart contract functions.