The first onchain grant protocol that enforces milestone delivery with cryptographic proofs — not trust, not screenshots, not committee opinion. The contract verifies. The code runs.
🚀 Live Demo: https://www.grantos.xyz/
Every major DAO — Arbitrum, Optimism, Uniswap, Compound — distributes millions in grants every year. The process is identical across all of them:
- Builder applies in a governance forum
- Committee votes to award the grant
- Funds sent directly to the builder wallet
- DAO posts a spreadsheet and hopes for the best
Step 4 is the problem. Once funds leave the treasury, enforcement becomes social. A builder who misses milestones faces a forum post, maybe a tweet — but they keep the money.
Even DAOs that attempt milestone-based grants face a deeper failure: evidence verification is entirely subjective and gameable. A builder submits a GitHub link. The committee opens it. They see a PR. They approve it. But the PR could be opened against a private repo that gets deleted. The author could be a different account. The work could be copy-pasted from another developer.
GrantOS v3 eliminates the subjective evidence layer entirely.
GrantOS v3 is a cryptographic grant enforcement layer. Milestones are defined, funds are locked in escrow, and releases are automatic. But v3 goes further — it does not trust a builder's word. It verifies a cryptographic proof.
Builder clicks Generate Proof
↓
vlayer Web Prover calls GitHub API via TLSNotary MPC-TLS
↓
Cryptographic proof generated — data confirmed from GitHub's servers
↓
ZK proof submitted to GrantEscrow.sol
↓
WebProofVerifier contract verifies proof onchain
↓
Milestone advances to Submitted state
↓
Committee sees ZK Verified ✓ — not a link, not a screenshot
↓
Quorum approves — payment releases automatically
Builders generate a cryptographic web proof via Noir ZK Coprocessor confirming their GitHub PR exists, is merged, and is authored by their wallet-linked account. The smart contract verifies the proof. No human reads anything.
One-time permanent proof linking a wallet address to a verified GitHub account with real contribution history. Sybil attacks on grant programs are dead.
Committees cannot slash without first submitting an onchain warning EAS attestation. Builders have cryptographic due-process rights enforceable at the contract level. No warning onchain means no slash is possible.
Approved milestones stream USDC per second via Sablier. The stream is cancellable and slashable at any point. Builders earn exactly what they earned — to the millisecond.
Gemini reads the evidence URL and writes a plain-English analysis into the EAS attestation. Advisory only. The ZK proof is the enforcer. The AI is the assistant.
A permanent, public, tamper-proof score derived from the builder's full onchain attestation history. No admin controls it. No committee member can modify it. It is what the blockchain says they did.
| Layer | Technology |
|---|---|
| Blockchain | Arbitrum One |
| ZK Web Proofs | Noir ZK Coprocessor |
| Attestations | Ethereum Attestation Service (EAS) |
| Streaming Payments | Sablier |
| ZK Computation | SP1 zkVM (Succinct) |
| Frontend | Next.js 15 App Router |
| Wallet | RainbowKit + Wagmi + Viem |
| State | Zustand |
| Styling | Tailwind CSS |
| AI Verifier | GPT-4o |
| Contract | Description |
|---|---|
GrantEscrow.sol |
Core escrow logic — milestone management, voting, payment release, slashing |
GrantIdentityRegistry.sol |
ZK identity bindings — wallet to GitHub handle |
All contracts deployed on Arbitrum One. All verified on Arbiscan. No upgrade proxies. No hidden admin functions. What you see is what runs.
| Route | Role | Description |
|---|---|---|
/ |
Public | Onboarding — role detection and routing |
/verify |
Builder | ZK identity binding — one time |
/dashboard |
Builder | Active grants and milestone actions |
/my-grants |
Builder | Complete grant history |
/profile |
Builder | Private identity and earnings hub |
/grants/new |
Committee | Create a new grant |
/committee |
Committee | Milestone review and voting |
/tasks |
Committee | Personal urgent action queue |
/dao |
DAO Admin | Protocol overview and alerts |
/treasury |
DAO Admin | Complete financial command center |
/grants/[id] |
Public | Full grant detail — no wallet required |
/builders/[address] |
Public | Builder public profile — no wallet required |
/guidelines |
Public | Protocol documentation |
| Role | What they do |
|---|---|
| Builder | Completes ZK identity binding, generates ZK proofs for milestone submissions, receives streaming or lump-sum USDC payments, builds onchain reputation |
| Committee Member | Reviews ZK proof status and AI verdicts, votes approve or reject with wallet transactions, issues onchain warnings before slashing, manages task queue |
| DAO Admin | Monitors protocol health, treasury metrics, and grant program performance across all active grants |
| Public Observer | Views any grant's proof history, any builder's reputation score and ZK Verified status — no wallet required |
Milestone misses deadline
↓
Committee identifies overdue milestone
↓
Committee issues warning EAS attestation onchain
↓
Builder sees warning immediately — live 24hr countdown
↓
24 hours pass
↓
Slash button activates
↓
GrantEscrow.sol validates: warning attestation older than 24hrs?
↓
If NO → transaction reverts with WarningRequired()
If YES → slash executes, USDC returns to treasury
↓
Builder reputation updates: -5 warning, -15 slash
No warning onchain. No slash possible. This is what trustless governance looks like.
| Event | Points |
|---|---|
| Milestone approved, on time | +10 |
| Milestone approved, late | +4 |
| ZK proof submitted | +2 |
| Milestone rejected | -3 |
| Warning received | -5 |
| Milestone slashed | -15 |
Score clamped 0–100. Letter grades: A (90–100), B (75–89), C (60–74), D (40–59), F (below 40). Derived entirely from EAS attestation history. Zero admin control. Zero manual override. Ever.
- Node.js 18+
- A WalletConnect Project ID
- A GitHub OAuth App (Client ID + Secret)
- An OpenAI API key (GPT-4o for AI verifier)
git clone https://github.com/your-org/grantos
cd grantos
npm installcp .env.example .env.localnpm run dev| Feature | Traditional DAO Grants | GrantOS |
|---|---|---|
| Evidence verification | Committee reads a link | Smart contract reads a ZK proof |
| Identity verification | Self-reported | Cryptographically bound onchain |
| Slashing due process | Social pressure | Contract-enforced 24hr warning |
| Payments | Lump sum on trust | Streaming per second via Sablier |
| Reputation | Forum history | Tamper-proof onchain attestation score |
| Sybil resistance | None | ZK identity binding — one wallet, one GitHub |
| AI assistance | None | Gemini analysis stored in EAS attestation |
"This builder did not submit a GitHub link. They submitted a cryptographic proof. The smart contract just read GitHub — not a human, not a committee member, not an AI. A ZK proof, verified onchain, in the same transaction. That is new. That is GrantOS."
Built on Arbitrum One. Powered by Noir ZK Coprocessor, EAS, and Sablier.