Free-First-Call Experiment: Per-Wallet $0.05 Free Trial
Goal: let every new wallet make its first royal-ruby law-lookup call free, converting 402-wall browsers into paying agents, without accounts or central tracking.
Mechanism — on-chain payer history check
x402 payments settle through a facilitator on Base, so the service can determine "has this wallet ever paid us" without storing state, by querying payment history:
- Eligibility check (server-side, pre-402): before returning the 402 challenge, run a fast check on whether the client wallet has previously settled a payment to
0x9b8a...f72fon Base. Two options: (a) query the Base RPC or an indexer (Covalent/Alchemy transfers-to filter) for the wallet's USDC transfers to payTo — costs one RPC call; (b) if the client includes an x402 extension header with its wallet address, use it; otherwise treat as new. - Grace path: if no history, return a modified 402 challenge with
amount: "0"(or a service-signed free-call nonce, 1 per wallet per 24h, cached in memory keyed by address to stop replays). The facilitator or service verifies the zero-value settlement the same way. - Anti-abuse: wallets are cheap, so cap free calls at 1 per wallet per 30 days (memory/SQLite cache, no signup) and cap total free calls per hour globally (e.g. 200) to bound subsidy cost. Max exposure $0.05 × 4,800/day = $240/day worst case — set an alert at $50/day.
Implementation notes for Staci (effort)
- ~0.5 day: intercept in royal-ruby's x402 middleware — check history, swap the challenge amount, cache wallet keys.
- ~0.5–1 day: Base RPC/indexer integration for payer-history lookup with caching (BaseScan/Alchemy free tier suffices at current volume).
- ~0.5 day: metrics + abuse caps + alerting. Total ~2–2.5 days of Staci's time, low risk, reversible via flag.
Metrics to track
- Free-call redemption rate (402s served free vs. total 402 challenges)
- Conversion rate: free-call wallets → wallets with ≥1 paid call within 7 days (primary success metric; target ≥15%)
- Repeat paid usage of converted wallets (calls/wallet/week)
- Revenue delta vs. subsidy cost (paid revenue added − free-call value given away)
- Abuse rate: distinct wallets >1 free call attempt / free-call 24h cache hit rate
Decision rule: kill if conversion < 5% after 2 weeks or subsidy > $100/week; keep and extend to dispute-forge if conversion ≥ 15%.