Skip to content

7Cedars/powers

Repository files navigation

Issues MIT License LinkedIn


Powers Logo

Powers v0.4

Institutional governance for on-chain organisations
Litepaper · Solidity protocol · Demo · Documentation

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

About

Powers v0.4 provides institutional governance for on-chain organisations by restricting 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 v0.4 enables three key governance patterns that solve common on-chain organisation challenges:

🔐 Devolved Responsibilities: Create accountable governance structures where different roles can manage specific domains like working groups, grants, councils, and specialized governance bodies. Decisions are logged and can be challenged, with all funds remaining in the community treasury and programs revocable 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.

🔄 On-chain Organisation Upgrades: Upgrade existing on-chain organisations 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 organisation 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 initialise-anvil

    This deploys all mandate 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
    • Scroll down to the 'Deploy a Demo' section
    • Select a demo organisation and the "Anvil" from the chain dropdown
    • When deployment is succesful you will be able to navigate to your organisation.

Building Custom Mandates and Organizations

For detailed information on creating your own organization, please refer to the documentation:

Important files and folders

.
├── documentation/powers/  # Vocs Documentation
│   ... 
│   ├── for-developers/    # Developer documentation
│   ├── mandates/              # Example mandate implementations
│   ├── organisations/     # Example organisations  
│   ├── integrations/      # Integration guides
│   └── welcome.mdx        # Welcome page documentation
│
├── 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
│   ├── organisation/ # Organisation deploy scripts 
│   ├── 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
│
├── public/           # Project images and assets
│
├── package.json      # Root package configuration
└── README.md         # This file

(back to top)

Built With

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

Acknowledgements

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

Powers v0.4 represents a significant evolution in institutional governance for on-chain organisations, building upon the foundational work of the community and contributors.

(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

Institutional governance for on-chain organisations

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •