On-chain open-source sponsorship splitter, scored by AI validators on GenLayer.
Sponsors fund a repo. Contributors push commits. Each cycle, the GitDrip intelligent contract asks GenLayer's validator network to score every contributor's commits — features and refactors weigh more than typo fixes, bots score zero — and the sponsor pool splits along that verdict. No human signs the payout.
This works because GenLayer's equivalence principle lets every validator independently call an LLM, and the network only accepts a state transition when their verdicts converge. The scoring rubric is literal Python in the contract:
verdict = gl.eq_principle.prompt_non_comparative(
fetch_diffs,
task="Score each contributor 0..100 by commit substance.",
criteria=("Bots score 0. Whitespace ≤ 5. "
"Real bug fixes 20-40. Features 40-80. "
"Major architecture 80-100."),
)Live on Bradbury testnet (chain id 4221).
| Contract | 0x4f079033484B806e42385E53bE20209B89049Bee |
| Deploy tx | 0x28ce08ed47633ada5226b1deb983592dfd9f82dd16a835a3a82dae1b2822ac74 |
| Test repo | alnamodevloper/gitdrip-demo |
contract/ intelligent contract (gitdrip.py) + direct tests (gltest)
frontend/ Next.js dApp — register, sponsor, enroll, claim, dashboard
scripts/ helper scripts (sign-write, webhook-relay)
video/ 71-second 1080p60 product video built with Remotion
docs/ submission tracker for the GenLayer Builder Portal
python -m venv .venv && . .envrc
pip install -r contract/requirements.txt
pytest contract/tests/direct -v # 100% direct-mode testscd frontend
cp ../.env.example ../.env # then fill in real values
npm install
npm run dev # http://localhost:3000cd video
npm install
npm run render # writes gitdrip-demo.mp4- Maintainer registers a repo. The contract calls
gl.eq_principle.prompt_non_comparativeto verify the repo's.gitdrip.jsondeclares the sender's wallet. - Sponsors deposit GEN against the repo (minimum 10 GEN). Funds sit in escrow.
- Contributors enroll by pushing a verifiable commit that proves their GitHub login matches the wallet that's enrolling.
- Each cycle, anyone calls
distribute(...). The contract pulls each contributor's commit list, hands the diffs to the validators, and each validator independently runs an LLM that scores 0..100 by substance. Validators must reach quorum on the score map for the transaction to land. - The pool splits proportional to scores — winners can call
claim()to sweep their share. There's no admin signature, no manual override.
Apache 2.0 — see LICENSE.
The Mochi mascot in video/public/mochi/ is vendored from the GenLayer
mascot repo under CC0; see video/public/mochi/VENDORED.md.