Consumers earn for data. Advertisers verify consent cryptographically. Adworth takes 2% marketplace fee when revenue is generated. Free forever. No minimums. No gatekeeping.
Sends access request with user ID, your advertiser ID, and data scope
Validates consent token: exists? active? right advertiser? right scope? not expired?
Cryptographic verification — the token can't be faked, extended, or transferred
Decision recorded in append-only ledger — permanent audit trail
GRANTED with proof, or BLOCKED with reason code
/evaluate endpoint. The response tells you instantly whether you have valid consent.// Before accessing user data, verify consent const response = await fetch('https://adworth-bouncer.adworthllc.workers.dev/evaluate', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_API_KEY' }, body: JSON.stringify({ userId: 'user-abc-123', advertiserId: 'nike-ads', dataScope: 'running-data-shoe-ads' }) }); const decision = await response.json(); if (decision.decision === 'GRANTED') { // ✅ Valid consent — proceed with data access accessUserData(decision.token_id); } else { // 🚫 No consent — do NOT access data console.log('Blocked:', decision.reason_description); }
// User has valid, active consent for this scope { "decision": "GRANTED", "decision_id": "gov_a1b2c3d4-...", "token_id": "bf5e15a558b04546-...", "details": { "token_scope": "running-data-shoe-ads", "token_advertiser": "nike-ads", "expires_at": "2026-04-01T00:00:00Z", "remaining": "29d" }, "checks_performed": [ "token_exists", "token_not_revoked", "token_not_expired", "advertiser_match", "scope_match", "ledger_revocation_check" ] }
// No valid consent — do NOT access this user's data { "decision": "BLOCKED", "reason": "SCOPE_MISMATCH", "reason_description": "Requested data scope is not covered by the consent token", "details": { "token_scope": "running-data-shoe-ads", "requested_scope": "health-insurance-data" } }
No consent token exists for this user-advertiser pair. The user has never granted consent.
User explicitly revoked consent. All data must be deleted per the original token terms.
Consent window has closed. Request new consent from the user to continue access.
Token was issued to a different advertiser. Consent is non-transferable.
Requested data type isn't covered by the consent token. Only the agreed scope is accessible.
Missing required fields. Every request needs userId, advertiserId, and dataScope.
GDPR, CCPA, DSA — one integration covers them all. Cryptographic proof of consent holds up in any jurisdiction.
Users who actively consent are 3-5x more likely to engage with your ads. No more wasted impressions on hostile audiences.
Every access decision is logged to the Invisibility Ledger. If regulators ask, you have cryptographic proof of compliance.