Skip to content

Powers 102 Specification

Organisational Structure & Context

Vision & Mission

Powers 102 is a collection of governance paths that demonstrate how to implement governance frameworks from existing DAOs on-chain using the Powers protocol. Unlike Powers 101 which provides a basic organizational structure, Powers 102 showcases specific governance patterns and workflows that are commonly used in production DAOs, implemented as reusable on-chain mandates.

The mission is to provide reference implementations that developers can adapt for their own organizations, demonstrating the flexibility and composability of the Powers protocol.

Treasury Management

Treasury management in Powers 102 varies depending on which governance flow is being demonstrated. Each example showcases different approaches to proposal creation, voting, and execution that can be adapted to various treasury management needs.

Roles

Role IdRole nameSelection criteria
0AdminAdmin role assigned at deployment for system management.
1MembersVaries by governance flow - may include token holders, elected representatives, or self-selected participants.
2DelegatesVaries by governance flow - may be elected, appointed, or token-weighted.
3NomineesCandidates for elected positions in electoral flow examples.
PublicEveryone.

On-chain Mandates

Executive Mandates (executing actions)

RoleName & DescriptionBase contractUser InputExecutable OutputConditions
MembersSnapshot & Governor Integration: Propose action with off-chain signaling via Snapshot, followed by on-chain voting via Governor.solSnapshotGovernor.sol"address[] Targets", "uint256[] Values", "bytes[] Calldatas", "string snapshotId"Oracle-verified execution of proposed actionSnapshot vote passes, Governor vote passes, oracle verification successful
MembersFlag Action: Flag an action or proposal as inappropriateFlagAction.sol"bytes32 actionHash", "string reason"Increments flag counter for actionCaller is member, action exists
MembersExecute Flagged Consequence: Take consequence action after threshold of flagsFlagAction.sol"bytes32 actionHash"Executes predefined consequenceFlag threshold reached (N flags)
AdminAdopt Mandate Package: Deploy and configure multiple new mandates in a single transactionAdoptMandatePackage.sol"address[] mandateAddresses", "bytes[] configData"Adopts multiple mandates with configurationValid mandate addresses, compatible with existing framework

Electoral Mandates (assigning roles)

RoleName & DescriptionBase contractUser InputExecutable OutputConditions
PublicNominate for List Election: Self-nominate for elected roleListElection.sol"uint256 roleId", "string statement"Adds nominee to election listElection period active, not already nominated
MembersVote in List Election: Vote for one or more nomineesListElection.sol"address[] nominees", "uint256 roleId"Records voteValid nominees, voting period active
MembersFinalize List Election: Assign roles to winnersListElection.sol"uint256 roleId"Assigns role to top vote recipientsVoting period ended, quorum reached
PublicNominate for Token Election: Self-nominate for token-weighted electionTokenElection.sol"uint256 roleId", "string statement"Adds nominee to electionElection period active, holds minimum tokens
MembersDelegate Voting Power: Delegate ERC20Votes tokens to nomineeERC20Votes"address nominee"Transfers voting weightToken holder, valid nominee
MembersFinalize Token Election: Assign roles based on delegated tokensTokenElection.sol"uint256 roleId"Assigns role to highest token-weighted nomineesElection period ended, delegation counted
MembersPeer Select: Members vote to assign role to peerPeerSelect.sol"address peer", "uint256 roleId"Records selection voteValid peer, selection period active
PublicSelect by Tax Paid: Automatic role assignment based on tax contributionsTaxBasedSelection.sol"uint256 roleId"Assigns role to callerTax threshold reached in current epoch

Constitutional Mandates (adopting and revoking mandates)

Constitutional changes in Powers 102 are demonstrated through the Adopt Mandate Package mechanism, which allows for:

  • Deployment of multiple related mandates in a single governance action
  • Configuration of mandate parameters during adoption
  • Integration with existing governance frameworks
  • Example implementation that mirrors Powers 101 governance structure

The package adoption mandate is designed to work with an existing 'AdoptMandates' mandate in the governance framework, providing a template for how organizations can upgrade their governance capabilities.

Off-chain Operations

Dispute Resolution

Dispute resolution processes vary by governance flow:

  • For Flagged Actions: Community members can flag inappropriate proposals, with automatic consequences after reaching a threshold
  • For Elections: Disputes are handled through transparent vote counting and on-chain verification
  • For Token-Based Systems: Disputes follow token holder governance processes with on-chain evidence

Code of Conduct / Ethics

Participants in Powers 102 governance flows should:

  • Use flagging mechanisms responsibly and only for legitimate concerns
  • Participate in good faith during election processes
  • Respect the outcomes of on-chain voting mechanisms
  • Maintain transparency in delegation and voting activities
  • Report bugs or vulnerabilities through proper channels

Communication Channels

Each governance flow may utilize different communication channels depending on implementation:

  • Snapshot Integration: Requires Snapshot space configuration and IPFS for proposal storage
  • Elections: May use Discord, forums, or dedicated platforms for candidate statements
  • General Discussion: GitHub, Discord, and documentation sites for technical discussions

Risk Assessments

Snapshot Oracle Dependency

The Snapshot integration relies on oracle services to verify off-chain votes. Oracle failures or manipulation could disrupt governance. Mitigation: Use multiple oracle providers, implement time-locks, and maintain fallback governance mechanisms.

Flag Action Abuse

The flagging mechanism could be used maliciously to block legitimate proposals if the threshold is set too low. Mitigation: Set appropriate flag thresholds, implement anti-spam measures, and allow for flag review processes.

Token Concentration in Elections

Token-weighted elections may favor large token holders, potentially leading to plutocratic outcomes. Mitigation: Implement quadratic voting, set delegation limits, or combine with other selection mechanisms.

Low Participation in Elections

List elections may suffer from low voter turnout, resulting in unrepresentative outcomes. Mitigation: Set appropriate quorum requirements, extend voting periods, and incentivize participation.

Tax-Based Selection Gaming

Accounts might artificially inflate tax payments to gain roles without genuine contribution. Mitigation: Set meaningful thresholds, implement multi-epoch requirements, and combine with reputation systems.

Mandate Package Complexity

Adopting multiple mandates simultaneously increases the risk of unforeseen interactions or vulnerabilities. Mitigation: Require thorough testing, implement staged rollouts, and maintain emergency pause mechanisms.