project screenshot 1
project screenshot 2
project screenshot 3

Voting with UBI

Equal rights voting mechanism for DAO based on constant emission rate token

Voting with UBI

Created At

ETHGlobal Singapore

Winner of

Gnosis Chain - Best Build with Circles on Gnosis Chain

Project Description

We want to build a dapp to provide equal rights voting mechanism for everyone. The dapp is applicable for important decision such as to have a consensus decision on what features to be included in future product, or even everyday little thing like voting for where to go for lunch among your colleague.

There are 3 roles in the voting mechanism.

  1. Admin (the deployer of the voting contract) has the rights to start and end a voting round.
  2. Proposer - every participant is able to propose an idea once in each round
  3. Voter - any participant is able to cast multiple votes on multiple ideas.

When a vote is casted, the same amount of token has to be transferred to the voting contract. The token transferred will be locked in the pool for rewards. At the end of the voting round, the proposal with the highest vote will be calculated. 70% of the rewards will be awarded to the proposer and 30% of the reward will be awarded to one of the randomly chosen voter.

How it's Made

The project utilises CirclesUBI by Gnosis as the basis for our voting mechanism. Circles provides these features out of the box that suit our use case

  1. Closed group - Admin has the rights to invite only relevant people into their voting group
  2. Constant emission rate - The voting power is emitted at constant rate for everyone thus not favoring any individual.

We uses Circles SDK to create group and invite people into the group via its trust / untrust mechanism. The participants in the group can then use their Circles Currency (CRC) to mint the group token and use that as the voting currency for voting in the group. When a vote is casted, the group token will be sent to our voting contract to be included in the reward pool. The contract is deployed at https://gnosisscan.io/address/0xf85f0661f172128fc55b741e3581009a76eeea85#writeContract.

We built a UI using react to facilitate the above. In the admin view, the admin can start or end a vote. In the participant view, the participant can propose an idea. The metadata of the proposal such as the description will be recorded in the contract. The participants can also view the proposed ideas so far and vote for their favourite.

background image mobile

Join the mailing list

Get the latest news and updates