ICP Governor is a decentralized governance solution built on the Internet Computer (IC), designed to be familiar with existing systems based on Compound’s GovernorAlpha contract. ICP Governor consists of three components: a Governor canister, an extended ICRC-1-compatible ledger canister, and an easy-to-use frontend. Together, these components allow the community to propose, vote, and implement changes based on the voting of ICRC-1 token holders. Proposals can modify system parameters or automatically invoke external canisters.
How it is built
The project is primary built using Motoko and TypeScript.
The Governor actor is written in Motoko and serves as the backbone of the project, enabling secure and transparent decision-making processes through blockchain technology and Internet Computer’s native capabilities;
To ensure the reliability and functionality of the Governor actor, we’ve developed an integrated test suite using Vitest and PocketIC client for JavaScript;
Finally, a user-friendly frontend has been developed using React to provide an intuitive interface for users to engage with the DAO. The frontend displays relevant information about ongoing proposals and voting results, making it easy for participants to stay informed and actively participate in decision-making processes.
Additionally, a custom WebAssembly package with bindings to the Candid parser has been developed to enhance the user experience of proposal creators. And it is open-source.
Internet Computer superpowers
Internet Computer made it super simple and seamless to host our frontend in a decentralized manner at a fraction of the cost of traditional Web2 hosting services. We were excited to develop in Motoko. Overall local development process was pretty smooth. PocketIC allowed us to build nice-looking and fast-running test suite.
Status of the project
ICP Governor is currently in an advanced stage of development, with key features and functionalities already implemented and operational. The project is in the beta phase, with active testing on the main IC network and refinement based on community feedback. Moving forward, further enhancements are planned to extend DAO voting strategies, optimize scalability and improve user documentation.
Resources
The project’s source code can be seen here. Additionally, we’ve deployed an example DAO on the IC network, check it out!
Thank you @domwoe and the rest! We’re glad to be a part of the community and bring value to it. We’ve already made some minor adjustments to improve the quality and the PR will be surely soon there.
We’re actually excited about bridging capabilities of ICP, we’ve already checked out EVM RPC Canister and ckETH as well. We would like to continue working in that direction, taking ICP Governor as a basis and extending it to allow votings with ERC-20 tokens with further on-chain proposal executions on EVM chains. We have an idea to run a CustDev research on at least a dozen of Snapshot DAOs to investigate if it’s something that they would like to see from an alternative DAO solution, potentially switching to it. Additionally I think it makes sense to investigate common use cases for votings, if we can provide some out of the box solutions.
Besides that I think it makes sense to scale to ICP Governor to a full-fledged DAO platform, allowing managing and accessing multiple DAOs from it. And also while working on ICP Governor we’ve been maintaining a roadmap of more or less standard features that are not there yet, such as different voting strategies, markdown descriptions, voting weights, some analytics widgets. I think we can move forward in both directions along with EVM bridging.
Awesome! We are looking forward to a grant application!
Couple of thoughts related to the customer research:
I think it would be also valuable to talk to projects like tally.xyz which sits on top of the OpenZeppelin Governor if they have any insights/pain points, and if they’d be willing to support an ICP-based Governor.
I’d also check if DAOs are interested in the following features which could be supported by Governor:
ICP hosted frontend
Multichain asset management, in particular Bitcoin and Ordinals.