Skip to content

Customizable civic tooling kit (SDK) made to optimize for governance mechanism design and experimentation

License

Notifications You must be signed in to change notification settings

Novus-Initium/Civikit-redacted

Repository files navigation

🏛 CiviKit - Modular Governance SDK

🧪 An open-source SDK for building and experimenting with customizable governance mechanisms and capital allocation strategies. Built on Scaffold-ETH-2 and integrated with Allo Protocol v2.1, CiviKit makes it easier for developers to create, test, and deploy governance systems for DAOs and grant programs.

⚙️ Built using Scaffold-ETH-2, Allo Protocol, EAS (Ethereum Attestation Service), NextJS, RainbowKit, Hardhat, Wagmi, and Typescript.

[Mermaid diagram here - using the one we created]

✨ Features

  • 🔄 Modular Governance Mechanisms: Mix and match different voting systems, reputation tracking, and capital allocation strategies

    • Quadratic Voting & Tunable Quadratic Funding
    • Conviction Voting
    • Custom Allocation Strategies
    • Token Gating
  • 🏦 Capital Allocation Systems:

    • Integration with Allo Protocol v2.1
    • Cookie Jar mechanisms
    • Direct funding systems
    • Custom allocation strategies
  • 📊 Reputation Systems:

    • EAS integration for attestations
    • Historical performance tracking
    • Reputation-weighted governance
    • Sybil resistance through Worldcoin
  • 🔗 Integration Layer:

    • Strategy Registry for mechanism discovery
    • Mechanism Router for combining strategies
    • DAO Factory for quick deployment
    • Contract Hot Reload for rapid development
  • Contract Hot Reload: Your frontend auto-adapts to your smart contract as you edit it.

  • 🪝 Custom hooks: Collection of React hooks wrapper around wagmi to simplify interactions with smart contracts with typescript autocompletion.

  • 🧱 Components: Collection of common web3 components to quickly build your frontend.

  • 🔥 Burner Wallet & Local Faucet: Quickly test your application with a burner wallet and local faucet.

  • 🔐 Integration with Wallet Providers: Connect to different wallet providers and interact with the Ethereum network.

Debug Contracts tab

Requirements

Before you begin, you need to install the following tools:

Quickstart

To get started with Scaffold-ETH 2, follow the steps below:

  1. Clone this repo & install dependencies
git clone https://github.com/scaffold-eth/scaffold-eth-2.git
cd scaffold-eth-2
yarn install
  1. Run a local network in the first terminal:
yarn chain

This command starts a local Ethereum network using Hardhat. The network runs on your local machine and can be used for testing and development. You can customize the network configuration in hardhat.config.ts.

  1. On a second terminal, deploy the test contract:
yarn deploy

This command deploys a test smart contract to the local network. The contract is located in packages/hardhat/contracts and can be modified to suit your needs. The yarn deploy command uses the deploy script located in packages/hardhat/deploy to deploy the contract to the network. You can also customize the deploy script.

  1. On a third terminal, start your NextJS app:
yarn start

Visit your app on: http://localhost:3000. You can interact with your smart contract using the Debug Contracts page. You can tweak the app config in packages/nextjs/scaffold.config.ts.

What's next:

  • Edit your smart contract YourContract.sol in packages/hardhat/contracts
  • Edit your frontend homepage at packages/nextjs/app/page.tsx. For guidance on routing and configuring pages/layouts checkout the Next.js documentation.
  • Edit your deployment scripts in packages/hardhat/deploy
  • Edit your smart contract test in: packages/hardhat/test. To run test use yarn hardhat:test
  • You can add your Alchemy API Key in scaffold.config.ts if you want more reliability in your RPC requests.

Documentation

Visit our docs to learn how to start building with Scaffold-ETH 2.

To know more about its features, check out our website.

Contributing to Scaffold-ETH 2

We welcome contributions to Scaffold-ETH 2!

Please see CONTRIBUTING.MD for more information and guidelines for contributing to Scaffold-ETH 2.

About

Customizable civic tooling kit (SDK) made to optimize for governance mechanism design and experimentation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published