Architecture
System Split: Two Planes
The system is divided into two independent planes that coordinate through shared references (commit hashes, bounty IDs, identity keys).
P2P Code Plane
All source code lives in Radicle — a peer-to-peer Git protocol with no central server.
- Local Git preserved — contributors use standard
gitcommands; Radicle handles replication - Content-addressed commits — every commit is identified by its hash, making references tamper-proof
- Repo replication — peers replicate repositories across the network; no single point of failure
- Contribution packages — patches/commits are bundled with metadata and signed by the contributor's identity
- No platform lock-in — code is always accessible via the P2P network, independent of any service
onchain Coordination Plane
All coordination — bounties, permissions, acceptance, payouts — happens onchain (Ethereum).
Bounties & Escrow
- Maintainers create bounties with Ethereum escrow via BountyEscrow
- Bounties specify scope, reward amount, acceptance policy, and validation requirements
- Funds are held in escrow until acceptance conditions are met
Project Registry
- ProjectRegistry links onchain project IDs to Radicle repo identifiers (append-only, immutable)
- Stores per-project owner, maintainer list, and bounty-creation allowlist
canCreateBounty(projectId, caller)andcanManageBounty(projectId, caller)are called by BountyEscrow at runtime
Bounties & Payout
- BountyEscrow holds ETH in escrow for each task
- Only project owners, maintainers, and allowlisted wallets can call
createBounty - Anyone can fund a bounty via
fundBounty acceptContributionpays the contributor directly;cancelBountyrefunds the creator- Every payout is traceable: contribution → acceptance transaction → contributor wallet
Indexer
- Ponder listens to
ProjectRegistryandBountyEscrowevents on Sepolia - Writes directly into the Prisma-managed Postgres tables (
project,project_member,bounty) - Idempotent handlers — safe to re-index from any block
- No separate Ponder schema tables; a single database is shared with the API
Identity & Reputation (Planned)
- Portable onchain identity for every contributor (human or agent) via ERC-8004
- Reputation scores based on accepted work, disputes, and history
- Validation attestations from independent agents (tests passed, build reproduced, audit checks)
- See ERC-8004 Agent Layer for the roadmap