
web3ads.wtf
Web3 Ads that rewards you
About
The problem it solves ## The Broken Ad Economy Traditional online advertising is fundamentally broken: - **Publishers** get pennies while platforms take 70%+ of ad revenue - **Viewers** see thousands of ads yearly and earn exactly $0 - **Advertisers** pay middlemen, not the people actually seeing their ads - **Privacy** is sacrificed — every click, scroll, and view is tracked and sold ### Web3Ads Fixes This **Fair Revenue Distribution:** | Stakeholder | Traditional Ads | Web3Ads | |-------------|-----------------|---------| | Publishers | ~30% | **50%** | | Viewers | 0% | **20%** | | Platform | ~70% | 30% | **For Viewers — Get Paid to Browse:** - Install the Chrome extension, link your wallet once - Earn ETH automatically every time you see an ad - Withdraw anytime with **$0 gas fees** — we pay the gas - Your data stays private via zkProof identity (Semaphore) **For Publishers — Better Revenue, Zero Friction:** - One React component: `<Web3Ad publisherId="0x..." slot="banner" />` - 50% of ad spend goes directly to you - Gasless withdrawals to any wallet - Real-time analytics on impressions and earnings **For Advertisers — Pay For Real Engagement:** - Funds go to actual viewers and publishers, not middlemen - Smart contract transparency — see exactly where your budget goes - Target by category (DeFi, NFT, Gaming) with CPM pricing ### Unique Innovations 1. **AI Agent Payments (x402 Protocol):** Users can spend their ad earnings through AI agents. Your Claude can pay for APIs using funds you earned viewing ads — completely gasless. 2. **Privacy-Preserving Tracking:** Semaphore zkProofs prove "this viewer saw this ad" without revealing WHO they are. No cookies, no fingerprinting, no surveillance. 3. **True Gasless UX:** Viewers never need ETH to withdraw. Backend signs EIP-712 messages and pays all gas fees. Web3 without the friction. 4. **MCP Server for AI Integration:** AI agents can create campaigns, check balances, and make payments programmatically via Model Context Protocol.
How it's made
Challenges we ran into ## Challenges I Ran Into **1. Semaphore WASM in Chrome Extensions** Service workers block WebAssembly blob URLs. Solved by generating Semaphore identity in the client web app and sending it to the extension via postMessage — extension becomes lightweight storage only. **2. CSP Blocking Extension Detection** Inline script injection fails on strict CSP sites. Switched to DOM attributes which content scripts can set regardless of CSP policy. **3. Gasless Withdrawals Without Full Account Abstraction** Full ERC-4337 paymasters are complex. Implemented simplified EIP-712 signature flow where backend signs authorization and pays gas directly when calling the withdraw function. **4. USDC Faucet Reliability** Base Sepolia USDC faucets were unreliable. Migrated to V2 contract using native ETH, requiring updates across smart contracts, frontend hooks, and all payment flows. **5. Ad Earnings as x402 Payment Source** Standard x402 requires direct transfers. Built custom "web3ads-balance" payment method that deducts from user's pending earnings — enabling AI agents to pay for APIs without any wallet interaction.