This repository contains a minimal Proof of Concept (POC) for the GrantKeepr Protocol, a decentralized system designed to enhance the transparency and efficiency of grant funding programs. This application demonstrates the core crypto-economic loop of the protocol on the Algorand Testnet.
GrantKeepr is a proposed protocol that utilizes a Token-Curated Registry (TCR) on the Algorand blockchain. In this model, a community of token holders, known as Curators, stake KEEPR tokens to vet and approve grant proposals (Bounties). The primary goal is to create a self-regulating ecosystem that aligns the incentives of grant providers, recipients, and community overseers.
This POC is a front-end application that allows users to interact with a pre-deployed GrantKeepr smart contract on the Algorand Testnet.
The features for this POC were strictly prioritized using the MoSCoW method to focus on validating the core concept.
These features represent the absolute essentials to demonstrate the core loop.
- Wallet Connection: Connect a Pera wallet to interact with the Algorand Testnet.
- Configuration: Ability for the user to input the KEEPR ASA ID and the TCR Smart Contract App ID.
- Core Staking Transaction: A user can stake KEEPR tokens, which executes an atomic transaction group containing an Asset Transfer to the smart contract and an Application Call to opt-in and record the stake.
- On-Chain State Reading: The UI reads and displays data directly from the smart contract's global state (e.g., total number of staked curators, stake requirement).
Important features for a functional product, but not essential for this initial POC.
- Unstaking Mechanism: A function for curators to withdraw their staked tokens after a cooldown period.
- Bounty Curation: The full lifecycle of submitting, challenging, and voting on bounties.
- Reward Logic: Smart contract logic for distributing rewards to successful curators.
Desirable but less important features for a more mature version.
- Support for other wallets (e.g., Defly, Lute).
- Detailed user profiles and transaction history.
- A more sophisticated and interactive bounty board UI.
Features that are not part of this specific demonstration's scope.
- Off-chain governance components or complex DAO structures.
- Front-end UI for deploying the smart contract or creating the KEEPR ASA.
- Framework: React (with Vite)
- Language: TypeScript
- Blockchain Interaction:
@txnlab/use-wallet-reactfor wallet connectivity.algosdkfor transaction construction and signing.@algorandfoundation/algokit-utilsfor a robust client connection.
- Styling: Tailwind CSS
To interact with this application, you will need the following prerequisites:
- An Algorand wallet (Pera is supported) set to Testnet.
- Testnet ALGOs for transaction fees.
- The KEEPR ASA (Algorand Standard Asset) on Testnet.
- The GrantKeepr smart contract deployed on Testnet.
- Configuration: In the "1. Configuration Setup" panel, enter the KEEPR Asset ID and the TCR Contract App ID.
- Connect Wallet: Click the "Connect Wallet" button in the header and approve the connection in your Pera wallet.
- Become a Curator: In the "2. Become a Curator" panel, you will see the required stake amount fetched from the smart contract. Click the "Stake KEEPR" button.
- Approve Transactions: Your wallet will prompt you to sign two transactions (an asset transfer and an app call). Approve them to complete the staking process.
- Observe On-Chain State: Once the transaction is confirmed, the "3. On-Chain Registry (Bounty Board)" panel will automatically refresh, and you should see the "Total Curators Staked" count increase by one.
To run this project on your own machine, follow these steps:
-
Clone the repository:
git clone https://github.com/mikeystever/keepr cd keepr -
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:5173/app/.