Search projects, hackathons, sponsors and tech

    ← All projects

    AdReceipt

    Verifiable payment receipts for sponsored recommendations inside AI answers

    Demo

    About

    AdReceipt is the trust and payment infrastructure for advertising inside AI experiences. As AI assistants become places where users discover products, tools and services, a normal “Sponsored” badge is still only a claim made by the platform collecting the money. AdReceipt turns that disclosure into independently verifiable evidence. Advertisers start with a product, campaign goal and budget. An advertiser agent proposes targeting, intent, creative and placement limits, while the advertiser remains in control and explicitly signs the exact final campaign revision. When a user asks an AI publisher a question, the organic answer is generated independently from advertising. AdReceipt separately classifies a sanitized context, checks age eligibility, sensitive topics, intent and relevance, and suppresses advertisements that do not qualify. For an eligible placement, AdReceipt binds the signed campaign revision, context commitment, exact sponsored content, private policy commitment, payment amount, publisher, payer, recipient, chain and settlement contract into a PlacementTicketV2. The payment is settled in test USDC on Ethereum Sepolia. The resulting ReceiptCreated event is indexed by The Graph and independently corroborated against canonical Sepolia RPC evidence. Only when both sources agree can the UI display: Sponsored · Verified Users can then open the receipt to understand who sponsored the recommendation, what text was authorized, why it matched the context, whether personalization was used, who paid whom and how much was paid. Our goal is simple: every sponsored AI recommendation should come with a receipt

    How it's made

    AdReceipt is built as a TypeScript/React, Node.js, PostgreSQL and Solidity system around a deterministic commercial-provenance protocol. The advertiser side uses a Next.js interface and a Groq-powered campaign agent. Instead of making an advertiser manually configure a large ad-manager form, they can provide a brand/product, plain-language campaign objective and budget. The agent proposes topics, intents and sponsored creative. Advanced targeting remains editable, and nothing becomes active until the advertiser signs the exact CampaignManifestV2 revision with EIP-712. On the publisher side, the organic answer is generated separately from the advertising decision. The backend reduces the query to a sanitized ContextEnvelopeV2 containing coarse topics, intent, locale, safety classification, age eligibility and a salted context commitment. Raw conversation text is not exposed to advertisers and personalization is disabled. Eligible placements become PlacementTicketV2 objects. The ticket binds the campaign revision, sanitized context, exact creative content hash, policy commitment, asset, amount, publisher, chain and settlement contract. Chainlink CRE is used for the private placement-policy check. The confidential workflow evaluates private campaign constraints such as the maximum placement amount and targeting policy and returns only the authorization result and commitments. The current proof level is explicitly CRE_SIMULATED. Privy provides the organization-controlled payer wallet. We use a default-deny policy that permits only bounded USDC approvals and the expected settlement operation. We have verified both a provider-rejected disallowed request and successful policy-bounded Sepolia payments. PlacementSettlementV1 on Ethereum Sepolia transfers the exact test-USDC amount and emits ReceiptCreated. The contract is intentionally kept small: payment and immutable receipt creation are the canonical onchain boundary. The Graph indexes ReceiptCreated events from the deployed settlement contract. However, AdReceipt does not blindly trust the indexer. Our verifier reads the corresponding transaction and event through canonical Sepolia RPC and compares the receipt field-by-field. Missing, stale, inconsistent or wrong-chain evidence fails closed. The receipt UI then turns that cryptographic evidence into a human-readable proof: advertiser, sponsored text, contextual reason, personalization state, safety result, payment amount and payment participants appear first, with commitments, addresses, blocks and transaction details available under cryptographic evidence. Campaign management is persisted in PostgreSQL. Advertisers can review stored campaigns, monitor verified spend and application-observed activity, and pause an active campaign through another signed action. CTR/eCPC/eCPM are deliberately hidden for very small sample sizes. The result is not simply a blockchain payment attached to an AI demo. Blockchain settlement, Privy policy controls, Chainlink policy evaluation and The Graph verification are all part of the condition required before AdReceipt can make the claim “Sponsored · Verified.”