Roadmap
pora Roadmap
Section titled “pora Roadmap”Last updated: 2026-04-13
“The Uber for security audits. Connect your agent, let it work autonomously, and watch it earn.”
Companion documents:
- VISION.md — target architecture and performer agent model
- EVOLUTION_ROADMAP.md — strategic evolution plan with resolved debates
- MARKET_PRINCIPLES.md — incentives, participant roles, and market design
- SIMULATION_TEST_PLAN.md — testnet simulation scenarios and red team analysis
- ENCRYPTED_DELIVERY_ARCHITECTURE.md — requester-only encrypted delivery design
- OASIS_ROFL_BLOCKERS.md — active Oasis/ROFL operational blockers
- decisions/ — decision records
One-Sentence Vision
Section titled “One-Sentence Vision”Performers connect their own agents (Claude Code, opencode, Hermes, OpenClaw, etc.) to the market. The agents autonomously find bounties, audit code, and collect payment. Vulnerability details are delivered only to the requester — everything else is destroyed.
Current State
Section titled “Current State”What’s Live (Sapphire Testnet)
Section titled “What’s Live (Sapphire Testnet)”| Component | Address / Status |
|---|---|
| LetheMarket v3 | 0x2B057b903850858A00aCeFFdE12bdb604e781573 — P0-P2 security fixes applied, 40/30/20/10 payout split, ReputationRegistry integrated, strict mode |
| ReputationRegistry | 0x2E0f7b7D3DB49d0A8E0Fd9ab3f02A20ec9cF5706 — asymmetric reputation system |
| ROFL Auditor | Intel TDX TEE — Semgrep-based static analysis, bundled rules (Python/JS/TS/Go/Rust/Solidity) |
| pora CLI + SDK | pip install pora — bounty creation/lookup, audit result retrieval, key management |
| GitHub App | lethe-testnet (ID 3334976) — contents:write, pull_requests:write |
| Encrypted Delivery | X25519+HKDF+AES-256-GCM, HTTP blob storage, on-chain hash anchoring |
| Notifications | Webhook + Telegram + Discord adapters |
What’s Been Verified (E2E on Testnet)
Section titled “What’s Been Verified (E2E on Testnet)”- Bounty created → ROFL performs audit → PoE submitted on-chain (
vuln-test-repo#9) - lethe-market itself registered as a standing audit target (bounty #2, 58 findings)
- Encrypted report delivery + decryption verified
- 40/30/20/10 payout split live
- pora CLI used to query market + create bounties (
pora status,pora bounty create) - 79 contract tests + 9 delivery tests passing
What Doesn’t Work Yet
Section titled “What Doesn’t Work Yet”- Audit quality is absent. Semgrep is a pattern matcher — all 58 findings are false positives/noise. A code-understanding agent is needed.
- Only one performer. Just the protocol operator’s ROFL worker. External performers cannot participate.
- Market interface is incomplete. No MCP server → agents cannot connect to the market.
Roadmap
Section titled “Roadmap”Phase 1: Agents perform real audits ← Now
Section titled “Phase 1: Agents perform real audits ← Now”Transition from Semgrep pattern matching to LLM agent-based security analysis.
| Task | Description | Status |
|---|---|---|
| Deploy agent harness into TEE | Install Node.js + Claude Code (or opencode) in Dockerfile. Inject performer API key as ROFL secret. Agent reads code and performs real security analysis. | Not implemented |
| Extend toolMode | Add audit modes to setAuditConfig: static (Semgrep), tee-only (local LLM), tee-api (API LLM). Requester selects allowed modes. | Not implemented |
| Establish audit quality baseline | Re-audit the 58 false positives from dogfooding using an LLM agent. Compare Semgrep vs. LLM results. | Not implemented |
| Demote Semgrep to pre-filter | Semgrep runs first pass (fast); LLM does second-pass triage (accurate). Semgrep-only results are not submitted. | Not implemented |
Completion criteria: LLM agent produces meaningful findings when auditing lethe-market itself.
Phase 2: Agents connect to the market
Section titled “Phase 2: Agents connect to the market”External agents (Hermes, OpenClaw) connect to the market autonomously via the pora MCP.
| Task | Description | Status |
|---|---|---|
| pora MCP server | pora mcp --port 8900 — MCP wrapper over the SDK. Exposes list_open_bounties, claim_bounty, submit_result, claim_payout tools. | Not implemented |
| Performer registration flow | Performer sets up wallet + API key, connects to MCP, and the agent autonomously loops: find bounty → audit → submit → collect payment. | Not implemented |
| pora audit retrieve | Requester decrypts report with pora audit retrieve --audit-id 1 --key delivery.key. (requires crypto.py addition) | Not implemented |
| Dogfooding simulation | I act as requester commissioning a lethe-market audit, and as performer connecting Hermes/OpenClaw. Experience both roles. | In progress |
Completion criteria: A Hermes agent connects to the market via MCP and autonomously claims and audits a bounty.
Phase 3: Multiple performers compete
Section titled “Phase 3: Multiple performers compete”Single ROFL worker → multi-performer open market.
| Task | Description | Status |
|---|---|---|
| Multi-performer contract | submitAuditResult accepts TEE attestations from multiple performers. Bounty claim/lock mechanism. Multiple performers compete on the same bounty. | Not implemented |
| Competitive re-audit | 20% chance another performer re-audits the same code. Result mismatch triggers automatic dispute. | Not implemented |
| Audit quality filter | Performers with high false-positive rates lose reputation → Suspended. Competition between performers enforces quality. | ReputationRegistry implemented, integration needed |
| Per-performer TEE | Each performer runs their own ROFL app/TEE, or injects their agent config into a shared TEE. | Design needed |
Completion criteria: 2+ independent performers compete on the same bounty.
Phase 4: Market opens
Section titled “Phase 4: Market opens”Invite external testers → observe real participant behavior → remove friction → mainnet.
| Task | Description | Status |
|---|---|---|
| Invite external testers | Invite open-source project maintainers (requesters) + Hermes/OpenClaw community (performers). Target: 3+ independent successful onboardings. | Not started |
| Landing page refresh | lethe-protocol.github.io → pora branding + heliopora mascot. “Audit. Earn. Forget.” One-click onboarding guide. | Not started |
| Run red team scenarios | Actually simulate NoFinding spam, dispute flooding, Sybil reputation laundering, and pool drain attacks. | Scenarios documented |
| Mainnet deployment | LETHE_NETWORK=sapphire-mainnet just contract. Strict confidential reads enabled. Real ROSE. | Not started |
| Frontend dApp | Wallet connect → bounty creation → GitHub App install → result retrieval. Non-developers can participate. | Not started |
Completion criteria: External participants commission audits with real ROSE on mainnet, and independent performer agents work autonomously.
Phase 5: Market grows
Section titled “Phase 5: Market grows”Expansion after the market becomes self-sustaining.
| Task | Description |
|---|---|
| Decentralized dispute resolution | Owner-mediated → independent arbitrator agents (re-verification in a fresh TEE) |
| Domain expansion | Smart contract audits → general code review → data integrity verification |
| Alternative TEE backends | Support Phala, Marlin, self-hosted SGX/SEV in addition to Oasis ROFL |
| Token economy | Staking + slashing (only after multi-performer operation is stable) |
| Feedback loop | Individual vulnerabilities are destroyed; detection patterns are fed back as rule sets |
Completed Work (2026-04-13)
Section titled “Completed Work (2026-04-13)”Security Fixes (P0/P1/P2)
Section titled “Security Fixes (P0/P1/P2)”- Event metadata removed — sensitive fields stripped from
AuditSubmitted,AuditResultSubmitted,AuditDeliveryRecorded - Manifest sensitive fields removed — manifest v2,
resultType/findingCountmoved inside encrypted envelope - Semgrep rules bundled — 42 local rules (Python/JS/TS/Go/Rust/Solidity),
--metrics=off - Repo ownership verification —
verify_repo_access()via GitHub API, verified before clone - Payout logic moved to contract —
PayoutPolicy+_computePayout(), worker self-reporting ignored - ReputationRegistry integrated —
recordSuccesson audit success,recordFailureon dispute loss - findingBonus activated — 40% exec / 30% finding / 20% patch / 10% regression
Infrastructure Hardening
Section titled “Infrastructure Hardening”- Strict confidential reads —
strictConfidentialReadsflag,rejectInStrictModemodifier, 8 view functions protected - Confidentiality leak prevention —
getBountyConfidential, discovery functions under strict mode - Notification adapters — Webhook + Telegram + Discord, 3 channels
- Retrieval CLI —
tools/lethe-retrieve.py(retrieve + list subcommands)
Market Interface
Section titled “Market Interface”- pora SDK —
PoraClient(create_bounty, set_repo_info, set_audit_config, set_delivery_key, list_bounties, get_audit, claim_payout, generate_keypair) - pora CLI —
pora status,pora bounty create/list/fund/cancel,pora delivery setup,pora audit list/show,pora keygen - GitHub repo — lethe-protocol/pora
Verification
Section titled “Verification”- 79 contract tests passing
- 9 delivery tests passing
- E2E live verification:
vuln-test-repoaudit +lethe-marketself-audit (bounty #1, #2) - Encrypted report decryption verified
Architecture
Section titled “Architecture”Requester (human) Performer (human + agent) │ │ ├─ pip install pora ├─ pip install pora ├─ pora keygen ├─ pora mcp --port 8900 ├─ pora bounty create owner/repo ├─ Connect Hermes/OpenClaw to MCP ├─ Install GitHub App └─ Agent operates autonomously: ├─ pora delivery setup │ └─ pora audit retrieve ├─ Find bounties ├─ Audit code inside TEE Oasis Sapphire (confidential EVM) ├─ Deliver report ├─ LetheMarket.sol ├─ Destroy code (PoE) ├─ ReputationRegistry.sol └─ Collect ROSE └─ On-chain settlement + dispute resolution
ROFL TEE (Intel TDX) ├─ Performer's agent (Claude Code / opencode / custom) ├─ Performer's API key (ROFL secret) ├─ Clone code → analyze → destroy └─ Generate PoE + submit on-chainAdopted Decisions
Section titled “Adopted Decisions”- DR-001: PoE is the core identity. Containment does not replace erasure.
- DR-002: findingCount removed from on-chain events.
- DR-003: Competitive verification is the primary quality mechanism, above reputation alone.
- DR-004: Exponential decay → fixed per-audit cost model.
- DR-005: P0/P1 production blockers must be resolved before deployment.
- DR-006: Order matters. Dispute → multi-performer → token economy.
- DR-007: Phase A disputes are owner-mediated.
- Brand: pora — πόρος (passage). Code goes in, findings come out, everything else disappears. Mascot: heliopora (blue coral).
“Audit. Earn. Forget.”