Should GnosisDAO + MetaFactory help fund an off-chain conviction voting scheme?
Metafactory, Gnosis, and Ceramic are looking for someone to implement an off-chain conviction voting scheme that uses Ceramic for off-chain vote aggregation and Gnosis safe for on-chain execution. For an overview of how the system should work have a look at this article: Trust minimized, off-chain conviction voting.
The goal of this project is to create a framework for off-chain conviction voting using Ceramic, and to make it compatible with Gnosis Safe for on-chain execution. The system should meet the necessary requirements outlined in this RFP, the article linked above can serve as a general guideline. You will be working closely with the Metafactory, Gnosis, and Ceramic teams in order to implement this system.
The project is separated into two main components. An sdk which developers can use to create conviction voting apps and a front-end for creating proposals and triggering on-chain execution via a Gnosis Safe.
Create an SDK for off-chain conviction voting
The snapshot service should be possible to run by anyone using a simple cli or docker container. It should take a few configuration options such as which ERC20 token to use for example. The snapshot service observes votes by users and token balances from the blockchain, then computes the conviction score for each proposal.
The main functionality needed in the library:
- Creating proposals
- Voting on proposals
- Listing active proposals and their total conviction
Build a frontend
The two main things that need to be possible here are:
- users need to be able to create and vote on proposals
- users can initiate an on-chain execution of transactions approved by a proposal, via a Gnosis Safe.
The frontend application allows users to see existing proposals and their total conviction score. Users can authenticate using 3id-connect, and once authenticated they should be able to create new proposals and vote on existing ones (given that they hold the erc20 token in question).
Getting the UX right in a conviction voting app can be tricky and is something which is still being researched. 1Hive has an interesting discussion around UX.
On-chain execution module
Gnosis recently released a module for on-chain execution of off-chain votes, including an implementation that allows a Snapshot instance to control a Gnosis Safe. It should be fairly straight forward to adapt this on-chain execution model for our purposes.
We will be evaluating proposals based on:
- Understanding of how to design blockchain applications
- Understanding of Gnosis Safe and Ceramic
- Detailed description of work required for each sub-task
- Estimated time for each sub-task
- Estimated cost for each sub-task
Please post your submissions as replies to this topic
Appendix: Existing partial implementation
p.s. Thanks to Joel from Ceramic for helping to coordinate and writing this up <3