Skip to content

7Cedars/powers

Repository files navigation

Issues MIT License LinkedIn


Powers Logo

Powers

Role-based governance for on-chain organisations
Solidity protocol · Proof of Concept (Arbiscan) · Proof of Concept (live Demo) · Documentation

For an introduction into the protocol, see

the 2 minute project pitch or the 15 minute explanation.

Table of Contents
  1. About
  2. Use Cases
  3. Deploy
  4. Important files and folders
  5. Built With
  6. Contact

About

Powers restricts governance processes along access roles. It allows a single decision to travel along multiple stakeholders through modular, asynchronous and trustless governance paths before it is executed.

Use Cases

Powers enables three key governance patterns that solve common DAO challenges:

🔐 Grant Management: Create accountable grant programs where different roles can allocate different funds, and decisions are logged and can be challenged. All funds remain in the community treasury, and grant programs can be revoked if they don't achieve intended impact.

⚖️ Separated Powers: Distribute decision-making across multiple roles to prevent centralization. One role can propose actions, another can veto, and a third can execute - creating checks and balances similar to legislative, judicial, and executive branches.

🔄 DAO Upgrades: Upgrade existing DAOs gradually without abandoning established governance. Start with minimal assets in Powers, add new roles and tasks, and transition completely when confidence grows - all while maintaining the existing DAO as a role holder.

Deploy locally

Prerequisites

  1. Install Foundry - Required for smart contract development

    curl -L https://foundry.paradigm.xyz | bash
    foundryup
  2. Install Node.js dependencies

    yarn install
    cd frontend && yarn install

Setup and Deployment

  1. Clone and setup the repository

    git clone https://github.com/7Cedars/powers.git
    cd powers
  2. Start Anvil chain (local Ethereum development chain)

    anvil

    Note: For detailed Anvil configuration and usage, see the Foundry documentation

  3. Deploy contracts and mocks

    cd solidity
    make anvilDeployAll

    This deploys all laws and mock contracts to your local Anvil chain.

  4. Start the frontend application

    cd frontend
    yarn dev
  5. Access the application

    • Open your browser and navigate to http://localhost:3000
    • Select "Anvil" from the chain dropdown
    • Additional test organizations will be available for local development

Building Custom Laws and Organizations

For detailed information on creating your own laws and organizations, please refer to the GitBook documentation:

Important files and folders

.
├── frontend/         # Next.js dApp workspace
│   ├── app/          # Next.js app router pages and components
│   ├── components/   # Reusable React components
│   ├── context/      # React context providers and contract ABIs
│   ├── hooks/        # Custom React hooks
│   ├── public/       # Static assets for the dApp
│   ├── utils/        # Utility functions
│   └── README.md     # Frontend setup and development guide
│
├── solidity/         # Smart contract development
│   ├── src/          # Solidity contracts and interfaces
│   ├── test/         # Foundry test files
│   ├── script/       # Deployment scripts
│   ├── broadcast/    # Deployment artifacts
│   └── README.md     # Solidity development guide
│
├── gitbook/          # Documentation
│   ├── for-developers/    # Developer documentation
│   ├── example-laws/      # Example law implementations
│   ├── deployed-laws/     # Deployed law documentation
│   ├── integrations/      # Integration guides
│   └── README.md          # Documentation overview
│
├── public/           # Project images and assets
│
├── package.json      # Root package configuration
└── README.md         # This file

(back to top)

Built With

  • Solidity 0.8.26
  • Foundry 0.2.0
  • OpenZeppelin 5.0.2
  • React 18
  • NextJS 14
  • Tailwind css
  • Wagmi / viem
  • Privy.io

Acknowledgements

  • Arnold Almeida
  • James M
  • Paulo Fonseca
  • Andrei V
  • Arbitrum DAO
  • RnDAO

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contributing

We welcome contributions from the community! Please see our Contributing Guidelines for details on how to:

  • Report bugs
  • Request features
  • Submit pull requests
  • Follow our coding standards

Quick Start for Contributors

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and add tests
  4. Commit your changes: git commit -m 'feat: add amazing feature'
  5. Push to the branch: git push origin feature/amazing-feature
  6. Open a Pull Request

For more detailed information, please read our Contributing Guidelines.

Contact

Seven Cedars - Github profile - cedars7@proton.me

(back to top)

About

A role based governance protocol for on-chain organisations

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published