ProofLock is a self-settling escrow on Base Chainlink verifies the proof
MettaPay ProofLock is a crypto-native escrow and payments platform built on Base, designed to make on-chain commerce as safe as PayPal but as fast and final as a wallet transfer. It gives users two clear paths from one wallet:
Free P2P USDC on Base (0% fee) — instant, irreversible sends to people you already trust, using *.mettapay.eth ENS subnames so you send by human name, not a 0x address. ProofLock Escrow (protected trades) — funds (ETH or USDC) are locked in a per-deal smart contract until the seller submits proof of delivery and the buyer approves, or until a dispute is resolved by an arbitrator, or until Chainlink Automation auto-refunds the buyer after the deadline passes.
Stack & app shell. Frontend + backend are one TanStack Start v1 app (React 19, Vite 7, SSR on Cloudflare Workers via nodejs_compat). All app-internal server logic is createServerFn RPCs in .functions.ts; raw HTTP (webhooks, public agent API, OG image renderers, ToolRouter manifest) lives under src/routes/api/public/. Off-chain state (drafts, chat, notifications, reputation, compliance queue, ENS subname registry mirror) is in Supabase behind RLS, with a has_role() security-definer for admin/compliance roles. Auth uses Privy (email/social → real EOA) bridged into Supabase via a server fn that mints a session for the Privy-linked address; Reown AppKit + Wagmi covers injected/WalletConnect wallets. The whole wallet provider stack (WalletProviderStack.tsx) lazy-loads AppKit in useEffect because Reown defines Lit custom elements at import time and crashes SSR.

