Comment on page
Public voting and committee control charter smart contracts
Limited Developer Support
All assets represented in this library are community built, which means limited support from the Agoric OpCo development team. Please use components, APIs, and front-ends with caution.
An Agoric governance component using a new ElectionType that instantiates a public vote to give voting facets to the election winners. There should be a public registration of the identities of the candidates to make them visible. This contract focuses on creating the committee that will be elected and includes a charter to control the manner of their election and operation. Our existing committee is elected only once, and the membership can't be updated. The biggest open issues are refreshing the membership, and controlling the ability to create new votes. Possible approaches to membership include replacing members who have become unresponsive, scheduling periodic elections, or supporting recalls. There are several plausible ways to limit the ability to open new questions: a chair or subcommittee, require approval from some subset of the members, or require a payment or deposit.
Currently, voters only get a voting facet via an invitation. The electors vote to choose a committee, and the committee members then get the ability to vote. The voters can reliably identify the Electorate by subscribing to get a list of new questions. Voters can use the questionHandle from each update from the subscription to get the questionDetails. They cast their vote by sending their selected position(s) to their electorate, which they know and trust. We want everyone to be able to identify the candidates and winners. Anyone who knows the electorate can get a list of questions, so this includes both the original electorate and the elected committee members for the original election, and then the committee itself will be well-known, so both the public and the committee members can find out what questions the committee is voting on.
This structure of Electorates and VoteCounters allows voters and observers to verify how votes will be counted, and who can vote on them but doesn't constrain the process of creating questions. We now have a PSMCharter and EconCommittee Charter, that control aspects of creating questions that those committees can vote on. A charter or electionManager can control the voting threshold, the vote closing time, or the range of parameter values that can be specified.
Bounty Not Assigned Yet