ReviewDAO is all about Token Curated Registries. It allows users to deploy new lists, apply for listings and get rewarded for participation. The structure of the DAO is as follows: ReviewDAO master contract which is governed by NFT holders. Factory which is creating new TCR lists. Settings which controls TCR lists parameters. TCR lists which allow users to apply their listing. Two tokens: ReviewDAO ERC20 token and ReviewDAO ERC721 NFT. NFT holders get rewarded for successful list proposals and successful votes. The governance rewards are replenished by a mechanism in TCR lists. The TCR lists can be about anything. Best rock band, best Thai food, whatsoever. In each TCR list, anyone with enough tokens can apply for listing with their related subject. They pay a stake cost and possible challenger reward cost, which is double the stake. If the listing isn't challenged before the listing period is over, they successfully register to the list. Their challenger reward gets refunded and their stake goes to the ReviewDAO contract for governance rewards. If they are challenged by anyone who matches the listing's stake a challenge period begins. During the challenge period, anyone with enough tokens can vote for either including or excluding the listing. If the listing wins, they get refunded the challenger reward and their stake goes to the master contract for governance rewards. Challenger's stake is shared between the people who voted for including the listing. If the listing loses, then the challenger gets the challenger rewards and their stake goes to the master contract for governance. Nevertheless, they are doubling their tokens. The listing's stake is then distributed between the people who voted against. Listings can reapply if they lose the challenge, but they must pay the listing costs again. Once a whitelisted listing reaches certain number of negative votes during their lifetime, they get banished from the list but can try to reapply again. ReviewDAO can change the settings with successful proposals by NFT owners, e.g. modifying the duration which is required for the listing registration period of each new and past TCR list or the cost required for the listing. Created @ Dobby Labs

ReviewDAO showcase

How it's made

For our project we had to create multiple Solidity contracts to create the required functionality. Our contracts have the following structure: dao: ReviewDAO.sol, ReviewDAOSettings.sol, IReviewDAOSettins.sol list: ReviewDAOList.sol extensions: IReviewDAOListMetadata.sol factory:ReviewDAOListFactory.sol, IReviewDAOListFactory.sol token: ReviewDAONFT.sol, ReviewDAOToken.sol Frontend application is made in React library using ethersjs for wallet connection and The Graph for querying data emitted by our contracts. The plan is to include all data in the Graph, right now we are storing only one list for testing purposes. Contracts will be connected to the application later. IPFS is implemented in the application using Infura API to store images and descriptions of our proposals, lists and listings once utilizing the contracts.