Skip to content
samueldansoPublic

About

Human accountability for sybil-resistant agent commerce onchain.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

Repository files navigation

ProofPay

Human accountability layer for sybil-resistant agent commerce onchain, built with World ID and Chainlink CRE.

Convergence 2026 CRE World ID x402


Table of Contents


The Problem

AI agents can already transact, spend, earn, and borrow autonomously onchain. We have payment rails like x402, agent identity standards like ERC-8004, and autonomous credit and reputation systems.

But none of this answers one fundamental question: is there a real, unique human accountable for this agent?

There is no reliable link between an agent and its human owner. Without it:

  • One person can spin up 1000 agents to farm credit lines, game reputation scores, and drain budgets meant for real people.
  • Service providers and protocols can't enforce per-human limits.
  • "Per-user" metrics in agent commerce become fiction.

The Solution

ProofPay adds the missing human accountability layer to agent payments — ensuring every agent action is backed by a real, unique human, without revealing identity. Built on World ID for sybil resistance and Chainlink CRE, enforced on Base.

Is there a real, unique, accountable human behind this agent — and can that claim be trusted, counted, and revoked?

Any protocol or payment endpoint calls isHumanOwned(agent) to verify before trusting it. Privacy preserved. Revocation built in. Agents stay autonomous. Humans stay countable.

Payments = any value-moving action initiated by an agent — paying for an API, accessing a gated service, or spending a budget.


How It Works

1. VERIFY     Human proves uniqueness via World ID — zero-knowledge, no personal data
                ↓
2. BRIDGE     Chainlink CRE verifies the proof off-chain and writes it to Base (and beyond)
                ↓
3. REGISTER   ProofPay contract binds up to 5 agent wallets to the verified human onchain
                ↓
4. GATE       Any service calls isHumanOwned(agent) — accept or reject
                ↓
5. REVOKE     Human removes an agent — it loses credibility everywhere, instantly

Architecture

┌──────────────┐     ┌─────────────────────────┐     ┌──────────────────┐
│  Frontend    │     │     CRE Workflow         │     │ ProofPay (Base)  │
│  (Next.js)   │     │   (TypeScript SDK)       │     │                  │
│              │     │                          │     │                  │
│ IDKit Widget ├────►│ HTTP Trigger             │     │                  │
│ Wallet       │     │ → World ID Cloud Verify  │     │                  │
│              │     │ → EVM Write to Base ─────┼────►│ onReport()       │
│              │     │   (DON consensus)        │     │ → registerAgent  │
└──────────────┘     └─────────────────────────┘     └────────┬─────────┘
                                                               │
                                                        isHumanOwned()
                                                               │
                                                      ┌────────▼────────┐
                                                      │  x402 Service   │
                                                      │  (Express+x402) │
                                                      │                 │
                                                      │  Gate → Accept/ │
                                                      │  Reject         │
                                                      └────────▲────────┘
                                                               │
                                                      ┌────────┴────────┐
                                                      │  Agent Wallet   │
                                                      │  (USDC payment) │
                                                      └─────────────────┘

Core Features

  • Human Verification — IDKit widget generates a ZKP; proof sent to Chainlink CRE
  • CRE Cross-Chain Orchestration — HTTP trigger receives proof → verifies off-chain via World ID cloud API → writes to Base contract
  • ProofPay Contract (Base) — registerAgent(), isHumanOwned(), revokeAgent(), max-per-human enforcement, CRE-only write access
  • x402 Middleware — Express server gates API access on isHumanOwned() before accepting USDC payment
  • API / SDK — simple developer interface to verify agents without touching the contract directly
  • MCP Server / Agent Skill — agents autonomously present ProofPay credentials when challenged, no human intervention
  • Frontend Dashboard — wallet connect, World ID verify, agent registration, status view

Who It's For

Agent builders deploying agents who need to prove a real, accountable human stands behind them to be trusted by platforms and services.

Protocols and services who need to enforce human-scale limits:

  • x402 providers — accept payment only from human-backed agents
  • Onchain protocols — enforce per-human limits
  • Agent commerce platforms — distinguish real users from bot farms
  • Incentive programs — sybil-resistant per-human access control
  • Usage-based pricing — one credit line per human, enforced

Tech Stack

Layer Technology Details
Frontend Next.js 16, React 19, Tailwind v4, shadcn/ui @worldcoin/idkit for World ID widget
Wallet wagmi, viem Wallet connection + signing
Orchestration Chainlink CRE (TypeScript SDK) @chainlink/cre-sdk, HTTP trigger, EVM write
Smart Contract Solidity on Base, Foundry
Payments x402 protocol x402-express middleware (server), x402-fetch (agent client)
Demo Server Express x402-gated API endpoint
Runtime Node.js 20+, Bun

Project Structure

contracts/
cre-workflow/       (TypeScript)
frontend/
server/

Deployed Contracts

Contract Address
ProofPay (Base) 0xCDe1b9904f327aeA8106fe2EbcFae5FDd3d5e6Ff
CRE Workflow ID coming soon

Quick Start

# Contracts
cd contracts && forge build && forge test

# CRE Workflow
cd cre-workflow/proofpay && bun install
cre workflow simulate proofpay --target local-simulation

# Frontend
cd frontend && bun install && bun dev

# x402 Demo Server
cd server && bun install && bun dev

Usage

Coming soon.



Documentation

All detailed docs are in the /docs directory:

Resource Description
Introduction Overview, features, problem & solution
Getting Started Setup guide, env configuration, and first run
Architecture System design, layers, and data flow diagrams
Chainlink CRE CRE workflow implementation
x402 Server x402 payment integration

Contributing

This is a hackathon project. For questions or suggestions, please open an issue.


License

MIT


Built for Chainlink Convergence Hackathon 2026

Tracks:

  • CRE & AI
  • Best Use of World ID with CRE

Team: Samuel Danso — Full Stack Software Engineer · me.samueldanso@gmail.com

About

Human accountability for sybil-resistant agent commerce onchain.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages