Advertisers verify consent cryptographically at the transaction layer. Adworth charges a flat 2% per verified consent transaction. The consumer marketplace where users earn from data is on the Phase 2 roadmap. 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 — rather than dismissing dark-pattern cookie banners — engage more deeply with ads they expected to see. Cryptographic consent filters out hostile audiences.
Every access decision is logged to the Invisibility Ledger. If regulators ask, you have cryptographic proof of compliance.