Skip to content

Open Elections Specification

Latest deployments:
NetworkDeployment
--

Organisational Structure & Context

Vision & Mission

Open Elections DAO demonstrates a governance model focused on the democratic election of Delegates by Voters. It implements a full on-chain election lifecycle including creation, nomination, voting, and tallying, ensuring a transparent and verifiable process for selecting representatives.

Assets

The DAO controls the following assets:

  • It is the owner of the treasury (implicit in the Powers contract).

Actions

The DAO can take the following actions:

  • Voters can create elections, nominate themselves, vote, and tally results.
  • Delegates are elected by Voters and have the power to revoke roles (check on power).
  • Admin can assign roles to any account.

Roles

Role IdRole nameSelection criteria
0AdminAssigned at deployment.
1VotersAssigned by Admin.
2DelegatesElected by Voters.
PublicEveryone.

Electoral Mandates

Election Cycle

The election process follows a strict sequence: creating the election, opening it for voting, tallying the results, and finally cleaning up the governance artifacts.

RoleName & DescriptionBase contractUser InputExecutable OutputConditions
VotersCreate electionBespokeAction_Simple.sol"string Title, uint48 StartBlock, uint48 EndBlock"Creates election entryThrottled (once every ~2 hours).
VotersOpen Vote for electionElectionList_CreateVoteMandate.solNoneCreates Vote MandateRequires "Create election" to be fulfilled.
VotersTally electionsElectionList_Tally.solNoneAssigns Delegate role to winnersRequires "Open Vote for election" to be fulfilled. Top 5 candidates elected.
VotersClean up electionBespokeAction_OnReturnValue.solNoneRevokes election mandatesRequires "Tally elections" to be fulfilled.

Nomination

Voters can nominate themselves (or revoke nomination) for an upcoming election.

RoleName & DescriptionBase contractUser InputExecutable OutputConditions
VotersNominate for electionElectionList_Nominate.solNone (implicit bool true)Nomination loggedNone.
VotersRevoke nominationElectionList_Nominate.solNone (implicit bool false)Nomination revokedNone.

Reform Mandates

Role Management

The Admin has the power to assign roles. As a check on this power, Delegates can revoke roles that have been assigned.

RoleName & DescriptionBase contractUser InputExecutable OutputConditions
AdminAdmin assign roleBespokeAction_Simple.sol"uint256 roleId, address account"Assigns roleNone.
DelegatesDelegate revoke roleBespokeAction_Simple.sol"uint256 roleId, address account"Revokes roleRequires "Admin assign role" to be fulfilled.

Off-chain Operations

Dispute Resolution

Disputes regarding election conduct or results will be addressed through community discussion, with final arbitration by the Admin role.

Code of Conduct

Voters and Delegates are expected to participate honestly. Campaigning should be respectful and transparent.

Description of Governance

  • Remit: To select Delegates through a fair election process.
  • Roles: Voters elect Delegates.
  • Executive Paths:
    • Election Cycle: Create -> Nominate -> Vote -> Tally -> Assign Role.

Risk Assessment

Voter Turnout

Low voter turnout could lead to unrepresentative Delegates.

Sybil Attacks

If the mechanism for assigning the Voter role is not secure, one person could control multiple Voter accounts.