IMPS (Impact Measurement Protocols) is Ninit's first iteration of a custom Grant Stack application, leveraging Scaffold-Eth-2 and custom Allo V1 contracts. It aims to simplify the onboarding experience into web3 with Quadratic Funding (QF) rounds while providing additional resources and tooling for communities to subjectively measure impact and create custom allocation and accountability mechanisms.
IMPS serves both as a grant stack scaffolding and subjective measurement system designed to analyze and assess impact, using that data to hold projects accountable for poor impact reporting or failure to deliver on promises. It's particularly useful with Streaming Quadratic Funding (SQF) and interesting to implement in direct single-funder (SF) donations outside of QF pools.
Built using Scaffold-Eth-2 and inspired by Allo V1, IMPS makes it easier for developers to fork and customize their own accountable funding mechanism or QF grant stack. This project was a precursor to the scaffold grants stack concept.
- Impact Attestation: Donors can attest to a project's impact with a revocable statement.
- Weighted Voting: Vote weight is calculated based on the donor's contribution ratio to the project.
- Customizable Rounds: Implement saved and custom round settings for simplified setup.
- Informational Tooltips: Added explanations for contract functions.
- Streaming Functionality: Implement streamlined (DCA-like) funding into QF and SF rounds.
- SQF Integration: Implement SQF features for donations beyond Allo V1.
The overall weighted score of a project is calculated as follows: ProjectScore = Σ (VoterScore * (VoterContribution / TotalProjectFunding)) Where: VoterScore: Individual voter's impact score (e.g., 1-10) VoterContribution: Amount contributed by the voter TotalProjectFunding: Total funding received by the project
- Clone the repository:
git clone https://github.com/Novus-Initium/IMPs
cd imps
yarn install
- Start a local network:
yarn chain
- Deploy the test contract:
yarn deploy
Copy
- Start the NextJS app:
yarn start
Copy
- Connect the the .env.examples by converting it to .env and connect to an IPFS gateway and pinning service (optional)
Visit http://localhost:3000
to interact with your smart contract.
Built using NextJS, RainbowKit, Hardhat, Wagmi, Viem, Allo V1, EAS, and SE2.
- User Profiles and Identity Management
- Registry Contract: Manages user profiles with specific roles and permissions.
- Anchor Contracts: Securely manage interactions with external addresses and handle funds.
- Grant Creation and Management
- Grant Contracts: Allow creation of grants, proposal submissions, and linking of impact reports.
- Impact Reporting and Attestation
- Impact Reports: Submitted using hypercert technology, verifiable through Ethereum Attestation Service (EAS).
- Attestation System: Decentralized review system for report validation.
- Voting and Fund Allocation
- Voting Contracts: Enable voting on perceived impact of grants.
- Quadratic Funding Pool: Adjusts fund distribution based on weighted votes.
- Custom Strategies and Governance
- Custom Strategies: Manage fund allocation based on impact reports and votes.
- Governance Mechanisms: Enhance transparency and accountability in capital allocation.
(Insert Mermaid Diagram here and recreate to more accurately describe workflow)
- Implement saved and custom round settings for easier setup.
- Implement streamlined funding into QF rounds with governance over unallocated funds.
- Integrate SQF features for donations beyond Allo V1.
- Make it easier to integrate and custom other various capital allocation mechanisms.
Our team consists of experienced developers and pioneers in the Political and DeFi space. With a shared history in working with non-profits and tracking federal grant funding, we are passionate about using technology for social good.
Crafted by Ninit.