Our project allows the monetization of voting rights in typical Token Governance.

Demo Video Source Code




Compound Governance


This project provides two services. One is the monetization of voting rights in token governance systems such as UNI, Compound or MakerDAO. And the other is the ability to buy those voting rights to influence decisions in those systems. It does this through a pool system, so it doesn't degrade to a simple ebay for votes. There is one pool per token where it is possible to deposit (or withdraw) your own voting token. The contract registers how many percent of the total pool you own, so you can earn your appropriate payout. The second component provides a buying pool for every proposal/decision for a specific voting token. In these pools you can drop DAI to determine how the voting pool will vote. In a simple yes/no decision you can attach your DAI to either side. The side that has the most DAI at the end of the voting period gets the complete voting pool for this decision. Their money gets payed out to the voting pool. The losing party keeps its DAI and is able to withdraw or reuse them for other proposals later.

How It's Made

We use two smart contracts written in solidity. One just serves as the vault for the voting token. The other allows the buying of voting rights and basically does the rest of the managment. We separated the vault as a security measure. Should the main contract somehow fail everyone would still be able to withdraw their token from the vault, because the withdraw is not blockable by the other contract. Initially we wanted the voting pool to vote proportional to the buying contract and give all the money to the pool. But that is not possible because of how for example UNI works. It basically freezes the token amounts at proposal start, so we can't later split the pool again. This also prevents us from generating a positiv feedbackloop where both pools grow during a voting period, because they make each other more valuable. The rest of the techstack is not really interesting. We use Vue and Vuetify for the frontend with Metamask.


Maximilian Niemzik
← click here to see all projects