The goal of this project is to create a staking platform that allows users to stake various cryptocurrencies and earn rewards. The platform will use the UMA protocol's financial contract templates to create customized staking products with different parameters.
Users can stake various cryptocurrencies and earn rewards in the same currency or a different currency. The staking period and reward rate can be customized for each staking product. Users can withdraw their staked cryptocurrency at any time, but will forfeit any unclaimed rewards. Rewards will be distributed automatically to stakers at the end of each staking period.
UMA protocol uses a staking smart contract written in Solidity and openzeppelin library. The development was done using React.js for frontend, Hardhat for testing, and Remix for deployment. The staking smart contract allows users to earn rewards by staking their UMA tokens.