project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5

WNS.Vote

WNS.Vote is a sybil resistant governance system with ENS is its core enabling transparent and fair quadratic voting

WNS.Vote

Created At

ETHGlobal London

Winner of

trophy

Worldcoin - Best Public Goods Use Case

trophy

ENS - Best use of ENS 2nd place

Project Description

We wanted to build a project that allows for real, un-gameable quadratic voting. In traditional quadratic voting systems, whales have the ability to split up their holdings amongst many wallets undermining the goal of the system. Additionally, most governance systems are pretty opaque and its often hard to tell who delegates are without off-chain centralized voter registries.

We built a registry for registering ENS addresses with WorldCoin--each individual person can only register one ENS address, and only ENS addresses registered in the registry can vote. This makes our governance system sybil resistant. On top of this, our governance system does accounting wholly based on ENS address--you delegate to ENS addresses, and votes are cast by ENS address. This allows maximal transparency into the DAO.

How it's Made

We started off by forking Compound Governance and customizing it to use ENS at its core. We replaced all the delegation logic to rely on ENS nodes--this means that when you delegate, you delegate to an ENS node, not an address. Additionally, when you vote, your primary ENS address is looked up and used for getting your voting power. This makes our governance system more transparent and have better UX by actually using ENS on chain as opposed to just off chain like most applications.

Beyond this, we made our governance system sybil proof via Worldcoin. We made a ENS registry where each person can validate one ENS domain with a World ID proof generated by Worldcoin and verified on-chain. If an individual tries to validate more than one ENS address, the transaction would be reverted due to a duplicate nullifierHash. On the vote function, we require that the ENS node representing the user is validated in our registry. This makes our governance sybil proof.

We used the Scaffold-ETH 2 template to get started on the front end.

Finally, we get to our final project--a sybil proof, transparent, quadratic voting system. Quadratic voting is historically very gameable. We fixed that.

background image mobile

Join the mailing list

Get the latest news and updates