CiviKit: A modular governance laboratory built on Scaffold-ETH-2. Create custom DAOs and grant systems by mixing governance primitives, from tunable quadratic funding to reputation-weighted voting. Experiment, deploy, and evolve democratic systems faster.
CiviKit is a governance experimentation toolkit that empowers developers and communities to design, test, and deploy custom democratic systems. By providing a comprehensive set of modular governance primitives, it enables rapid prototyping of novel governance mechanisms and capital allocation strategies.
Key Features:
Flexible Capital Allocation:
Tunable Quadratic Funding (TQF) for optimized matching Cookie jar mechanisms for continuous funding Custom allocation strategies that can be weighted and combined Integration with Allo Protocol 2.1 for efficient fund distribution
Modular Governance Mechanisms:
Reputation-weighted voting systems Token-gating primitives Customizable grant round creation Project evaluation frameworks Sybil resistance through Worldcoin integration
Dynamic Reputation Systems:
On-chain attestations for capital allocation effectiveness Community-driven reputation scoring Historical performance tracking for projects and funders Reputation-based governance power scaling
The power of CiviKit lies in its composability. Communities can mix and match different mechanisms to create governance systems tailored to their specific needs. For example:
Combine reputation-weighted voting with tunable quadratic funding for more nuanced grant allocation Layer token-gating with reputation systems for graduated access to governance Create hybrid systems that evolve based on participant behavior and contribution history
Built on the familiar Scaffold-ETH-2 framework, CiviKit streamlines the deployment process while maintaining full customizability. Whether you're building a simple grants program or experimenting with novel governance models, CiviKit provides the building blocks for rapid iteration and deployment.
CiviKit is built by combining several powerful technologies and frameworks to create a flexible and robust governance SDK:
Core Infrastructure:
Built on Scaffold-ETH-2 for rapid prototyping and development Integrates Allo Protocol v2.1 for capital allocation Uses Hardhat for contract deployment and testing NextJS frontend with automated UI generation
Smart Contract Architecture:
Modular contract system with inheritance patterns Base contracts for common governance primitives Factory patterns for deploying customized instances Registry contracts for strategy discovery and composition Tunable Quadratic Funding implementation with dynamic parameters Reputation system using EAS for flexible attestation schemas Integration Layer:
Custom abstractions over Allo Protocol Mechanism router for combining different governance strategies Factory contracts for automated deployment Registry system for discovery and composition
External Integrations:
Worldcoin for Sybil resistance Ethereum Attestation Service (EAS) for reputation tracking IPFS for storing metadata and documentation
Development Approach: We took a hacky-but-effective approach to making the system modular:
Created wrapper interfaces around Allo Protocol to make it more flexible Used proxy patterns to allow strategy upgrades Implemented a custom mechanism router that can dynamically combine different governance strategies Built a flexible parameter system for tuning mechanism behavior
Key Technical Challenges Solved:
Created a dynamic weighting system for combining different voting mechanisms Implemented a flexible reputation system that can evolve based on on-chain behavior Developed a router system for composing different governance mechanisms Built an abstraction layer over Allo Protocol to make it more adaptable
The most notable "hacky" innovation is probably the development of our mechanism router, which will allow for dynamic composition of governance strategies enabling communities to experiment with different combinations of mechanisms without redeploying contracts: