Institutional governance for on-chain organisations
Litepaper ·
Solidity protocol ·
Demo ·
Documentation
Table of Contents
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.
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.
-
Install Foundry - Required for smart contract development
curl -L https://foundry.paradigm.xyz | bash foundryup -
Install Node.js dependencies
yarn install cd frontend && yarn install
-
Clone and setup the repository
git clone https://github.com/7Cedars/powers.git cd powers -
Start Anvil chain (local Ethereum development chain)
anvil
Note: For detailed Anvil configuration and usage, see the Foundry documentation
-
Deploy contracts and mocks
cd solidity make initialise-anvilThis deploys all mandate contracts to your local Anvil chain.
-
Start the frontend application
cd frontend yarn dev -
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.
- Open your browser and navigate to
For detailed information on creating your own organization, please refer to the documentation:
.
├── 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
- 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
- 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.
Distributed under the MIT License. See LICENSE.txt for more information.
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
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and add tests
- Commit your changes:
git commit -m 'feat: add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
For more detailed information, please read our Contributing Guidelines.
Seven Cedars - Github profile - cedars7@proton.me