wawiop
A wallet with opinions. Give it rules, memory, and a budget, and it coordinates other agents without ever trusting them. Real ERC-7710 redelegation. Power shrinks downstream.in rogue the chain reverts
Videos




Tech Stack
Description
Wawiop is an autonomous wallet agent that coordinates sub-agents using MetaMask Smart Accounts Kit as its core primitive — not as an add-on, but as the entire permission model, payment layer, and kill switch combined.
▎ The user's EOA is upgraded to a smart account via EIP-7702. A root delegation is signed (ERC-7715), embedding rules in plain English as on-chain caveats. From there, the Governor redelegates a cryptographically narrower slice to a Researcher, who redelegates narrower still to a Summarizer. Each child's authority field is the keccak hash of its parent delegation — the DelegationManager validates the whole chain at redemption. No child can spend more, reach further, or delegate wider than its parent. The ERC20TransferAmountEnforcer reverts violations on-chain and names itself in the log.
▎ x402 + ERC-7710: The Researcher pays for live data per-call via x402 — real EIP-3009 TransferWithAuthorization, signed by the Researcher's key, verified server-side with recoverTypedDataAddress before data is delivered. Over-budget redemptions are proven to revert on-chain via live eth_call against the Base Sepolia DelegationManager.
▎ A2A coordination: Three agents, one chain. Governor reasons → Researcher fetches (paying x402) → Summarizer compresses. Authority shrinks hop by hop. Cascade revocation: one root revoke kills the entire subtree in a single transaction.
▎ Venice AI: Zero data retention. The Governor uses llama-3.3-70b to parse natural-language rules into structured caveats, reason about governance proposals, and explain every high-stakes decision in plain English before acting (ClearSign). Status is surfaced honestly — live, no-credits, or fallback — never hidden.
▎ 1Shot Relayer: Gasless execution path on Base mainnet. The full relayer_getCapabilities → relayer_estimate7710Transaction → relayer_send7710Transaction → relayer_getStatus lifecycle is wired and demonstrated.
▎ Every claim is provable on the live Base Sepolia chain in ~5 seconds: cd app && node scripts/prove-all.mjs — 7/7 cryptographic checks, no gas required.
Progress During Hackathon
Started from the ERC-7710 spec and the MetaMask Smart Accounts Kit documentation — no existing delegation boilerplate. Built buildSignedChain() from scratch: a function that produces a cryptographically linked User→Governor→Researcher→Summarizer chain where every child's authority = hashDelegation(parent), then verifyChainLinkage() that proves the invariant at runtime. Added real EIP-7702 account upgrade via signAuthorization.
▎ Built the x402 endpoint (/api/x402/research) from the protocol spec: returns HTTP 402 with payment requirements; client signs EIP-3009 TransferWithAuthorization; server verifies with recoverTypedDataAddress and delivers data only on match. No mocks, no middleware stubs.
▎ Wired Venice AI for four distinct tasks: rule parsing (natural language → structured caveats), proposal reasoning (Governor decides YES/NO with counterfactual), data summarization, and ClearSign explanation. Added robust parseJsonLoose<T>() to handle Venice's variable output format. Honest status reporting throughout.
▎ Integrated the full 1Shot relayer JSON-RPC lifecycle for Base mainnet gasless execution. Wrote live eth_call simulations against the Base Sepolia DelegationManager for both valid redemptions and over-budget reverts — proving ERC20TransferAmountEnforcer:allowance-exceeded fires correctly.
▎ Three demo beats make each prize track tangible in one click: ⚖ Proposal Vote (A2A reasoning chain, real vote, counterfactual), ⛔ Unsafe Action (live over-budget eth_call revert, named enforcer), ⏻ Kill Switch (cascade revocation — whole subtree dead in one tx). Built the full Command Center with animated delegation chain, authority pulse animations, caveat detail panels, Venice stream, relay lifecycle, and tamper-evident memory log.
▎ Master proof script: prove-all.mjs — 7/7 checks green against the live chain.