Gether is a social staking protocol. Our basic premise is that we humanize staking for events (such as how you had to stake for this event). Instead of staking with tokens, you stake by minting a personal NFT that you can hold after the event, or burn the NFT and get your stake returned. Similar to a stake of tokens, the NFT will be remotely burned if the attendee does not attend the event. They can be minted using USDC for events or gatherings in order to incentivize participation. The reasoning behind optional burning after the event is because we wanted to make a way for the organizers to accept tips for a valuable event (in USDC). If the event added value, then the user would be able to keep the minted token and use it as a verification on future job interviews, applications, etc. as a proof of attendance. We intend to expand our project in the future to include tiered/limited staking for different permissions at the event as well as a "passport" interface that allows the attendees to view all of their Gether NFTs from different events and share the link to other people.

Gether showcase

How it's made

For this project I was able to dive more deeply into solidity and smart contracts. In order to do the staking of USDC I had to figure out how to get one smart contract to talk to another smart contract, hold a balance of ERC20 Tokens, and transfer them back to the user. We also had to put it all together with a working demo on a live test net. It was a lot of technologies all coming together to create a simple user experience. Solidity/Hardhat/JavaScript/Ether.js/Alchemy(RPC): Smart Contracts HTML/CSS/JavaScript/Ether.js/React: Dapp OpenSea/NFT.Storage/IPFS/Filecoin: Metadata and file storage (setup but incomplete debugging)