Development resources at your finger tips
Build with the coolest Web3 projects
Recurring funding for Open Source
Learn about Web3 & earn rewards
Show appreciation for each other
Meet fellow developers, designers, futurists and more. Collaborate and BUIDL awesome projects together.
Discover great web3 organizations, work on meaningful projects and build relationships with like minded people. Browse Tribes
Meet the top hunters and contributors from our community.
In partnership with Protocol Labs, we’re excited to welcome builders from everywhere to APOLLO, your mission control to engage with the builder…
We’re excited to publically announce that Matic Network is partnering with Gitcoin to launch the Build-n-Earn Program – assisting dApps t…
Gitcoin is GDPR complaint. Learn more in
Gitcoin's Terms & Conditions.
Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
### Challenge Description
DemocracyDAO is a fork of the [original MolochDAO v1 contract](https://github.com/MolochVentures/moloch) with two key modifications:
- Proposals instead of consisting of simple Yes/No vote, **now can include a list of candidates as voting options**.
- **A new Quadratic Voting mechanism is introduced** to vote for such candidates by allocating a specific amount of votes that get taxed from a voter's shares quadratically.
Our goal with this bounty is finishing the implementation, deploy and test this contract on the Ethereum mainnet.
### Why Quadratic Voting?
In our research we have found that one of the outstanding properties of QV is that it allows for a constituency to prioritize a long tail of options. During our pilot implementation with the Colorado State House 🇺🇸in 2019 we used QV to help 41 legislators prioritize over 107 bills. Unlike other approaches like Participatory Budgeting (PB) where the outcome led to having "70% of the bills were part of a big blob with roughly the same amount of votes and no clear preference", QV allowed legislators get an organic distribution of votes over the entire list of proposals.
This emergent property of QV will help create better governance mechanisms for DAOs in general. At Democracy Earth we are aiming to implement a _QV-Compatible_ Moloch DAO to get the Ethereum community to rank every DAO in the ecosystem. A DAO of DAOs able to rank the long tail of entities created in the ecosystem will help establish their trustworthiness and reputation.
If you want to learn more about QV and the first official pilot in the USA, we recommend the following links:
- Bloomberg Businessweek: ["A New Way of Voting That Makes Zealotry Expensive"](https://www.bloomberg.com/news/articles/2019-05-01/a-new-way-of-voting-that-makes-zealotry-expensive)
- Wired Magazine: ["Colorado Tried a New Way to Vote: Make People Pay—Quadratically"](https://www.wired.com/story/colorado-quadratic-voting-experiment/)
- Colorado Sun: ["$120 million in requests and $40 million in the bank. How an obscure theory helped prioritize the Colorado budget"](https://coloradosun.com/2019/05/28/quadratic-voting-colorado-house-budget/)
### Technical Aspects
These are the main modifications that can be found on the code as it is right now when compared with a default MolochDAO v1:
- An additional parameter in the constructor `bool _quadraticMode` is introduced to make optional tallying the votes on this DAO quadratically or old school.
- `Proposals` now include a `mapping (address => Ballot) votesByMember` that allows to persist votes given to `candidates`.
- `Ballot` struct persists for each `proposal` an array of `candidates` and the corresponding indexed `votes` and `quadraticVotes` that `candidate` received from a `member`.
- When processed, an `electedCandidate` address from a `proposal` will be awarded with the corresponding shares from the DAO.
- Each proposal has an array of `candidates` and a tally of `totalVotes` and `totalQuadraticVotes`.
### Judging Criteria
The bounty will be awarded to the developer (or team) able to polish the current code and make a successful deploy of a demo QV DAO that is able to allow for:
- Creating one or many proposals with a list of candidates.
- Inviting one or many members to participate in the QV DAO
- Being able to successfully vote on one or more proposals
- Effectively calculate the QV tally of the decision process.
### Submission Requirements
A deployed QV DAO on the Ethereum mainnet ready to be tested and used and a Pull request with the final source code.
### Submission Deadline
End of the GitcoinxChange Hackathon.
This is for Solidity developers. Familiarity with MolochDAO code is a helpful plus.
### Bonus Track
Additional materials about Quadratic Voting and how we will use it for the governance of our protocol can be found on [this Twitter thread](https://twitter.com/santisiri/status/1263904216411705352).