Proof-bound agent firewall for MetaMask Smart Accounts on Base: one ERC-7715 USDC budget, x402-bound payments, 1Shot relay, and on-chain ProofRegistry. Every agent spend tied to the exact request.
Plan — Venice AI (Groq fallback) turns natural language into a minimum-authority execution plan with risk scoring.
Grant — MetaMask Flask issues a periodic USDC permission delegated to the 1Shot relayer target on Base.
Execute — x402 request binding → 1Shot estimate/send → ProofRegistry consume + anchor on Base.
Revoke — Root permission revoked in MetaMask; all child agents stop immediately.
ProofRegistry on Base.<h3><strong># Day 1 — Core Architecture</strong></h3><h3><strong>- Monorepo scaffold: @r402/core, @r402/adapters, Next.js dashboard, Foundry contracts</strong></h3><h3><strong>- ExecutionPlan schema, risk policy, delegation tree, requestDigest binding, PII sanitizer</strong></h3><h3><strong>- ProofRegistry with consume-once + anchor (3/3 Foundry tests)</strong></h3><h3><strong># Day 2 — Live Integrations</strong></h3><h3><strong>- Venice planner + risk agent + web search fallback chain</strong></h3><h3><strong>- MetaMask Flask ERC-7715 periodic USDC grant (Base Smart Account)</strong></h3><h3><strong>- 1Shot public relayer: getCapabilities → estimate7710Transaction → send7710Transaction</strong></h3><h3><strong>- x402 payment adapter + idempotency guard (409 REPLAY_BLOCKED)</strong></h3><h3><strong>- On-chain proof anchor via ANCHOR_PRIVATE_KEY</strong></h3><h3><strong># Day 3 — Production Hardening (Live Path)</strong></h3><h3><strong>- Fixed empty 0x000… permission context (Flask + Smart Account + correct 1Shot grant target)</strong></h3><h3><strong>- Corrected 1Shot bundle format for periodic USDC enforcer (fee + work transfer legs)</strong></h3><h3><strong>- Removed mock/simulated fallbacks when live env is set</strong></h3><h3><strong>- Dashboard live checklist (Flask + USDC prerequisites), toast UX, BaseScan proof links</strong></h3><h3><strong>- Full docs pass: README, architecture, threat model, demo storyboard</strong></h3><h3><strong>- Repo cleanup: deduplicated helpers, tests/lint/build green</strong></h3><h3><strong>## Working Live Demo (Base Mainnet)</strong></h3><h3><strong>- Plan (Venice live) → Grant (Flask ERC-7715) → Execute (1Shot ~8s, 200 OK) → Proof anchored</strong></h3><h3><strong>- Replay blocked by design</strong></h3><h3><strong>- Grant can be revoked via MetaMask</strong></h3><h3><strong># Submission Readiness</strong></h3><h3><strong>- Demo path: zero wallet / zero USDC required for judges</strong></h3><h3><strong>- Live path: recorded with MetaMask Flask 13.34+ on Base</strong></h3><h3><strong>- E2E spec + unit tests passing</strong></h3>
<p>Not yet</p>