Advertiser dashboard week: preview, activate, top-up sync
A focused week on the advertiser experience. Shipped New Preview tab with deterministic campaign previews per surface Inline Preview button on each campaign table row "Approve" now activates the campaign + syncs top-ups + clamps used% Admin gets an explicit "Activa…
GoodDollar Engagement Rewards are live (with anti-gaming gates)
The full GoodDollar Engagement Rewards flow is live on https://ads.sovseas.xyz/rewards . How it works Verified GoodDollar users see their eligibility (Face Verification + whitelist via getWhitelistedRoot ). Server signs an EIP-712 app approval at /api/engagement-rewards/sign-clai…
SovPoints → G$ redemption + daily UBI claim
Viewers can now turn engagement directly into spendable G$. 1 SovPoint per verified impression, 5 per click Redeem 1:1 for G$ (min 10 pts) via /rewards Daily G$ UBI claim card on the same page — uses checkEntitlement(root) + claim() on the GoodDollar UBI contract Gas-less onboard…
sovads-sdk v1.3.0 — ratio-aware media + hardened CTAs
We shipped sovads-sdk v1.3.0 on npm. What is new Ratio-aware mountAdMedia — no more trimmed or letterboxed creatives across Banner / BottomBar / Popup / Sidebar Reworked VISIT_URL dwell timing + a slimmer popup chrome Hardened attached CTAs for anonymous viewers and bots Auto-det…
Built the hybrid identity + ad verification stack: - Hybrid identity system with anti-fraud measures (hashed visitor IDs + wallet linking) - Ad verification & approval system gating which creatives can serve - Point merge logic so anonymous viewers keep their SovPoints when they connect a wallet - Allow "ghost" sites to track events and earn half points until verified
Sybil farms get a much narrower attack surface and honest viewers do not lose points the moment they sign in. The approval system gives advertisers confidence that creatives are reviewed before they appear in front of paying budget.
Released sovads-sdk v1.3.0 with ratio-aware media rendering, hardened CTAs, and a slimmer popup chrome. - ratio-aware mountAdMedia fixes creative trimming/letterboxing on Banner/BottomBar/Popup/Sidebar - VISIT_URL dwell reworked + slim popup chrome - Hardened attached CTAs for anonymous viewers and bots - Auto-detect CTAs (drops the GoodDollar gate modal) - Earlier in the cycle: heartbeat ping (v1.1.1) so publisher dashboards know an integration is live
Publishers integrate ads with a single line of code and creatives render at the right aspect ratio across every surface, eliminating the most common publisher complaint. The heartbeat ping gives publishers an immediate "you are live" signal in their dashboard, cutting i…
Shipped the GoodDollar Engagement Rewards integration end-to-end so verified humans can claim the ~5000 G$ bonus every 180 days from the rewards page. - Server-side EIP-712 app signature at /api/engagement-rewards/sign-claim - nonContractAppClaim() flow via @goodsdks/engagement-sdk with claim audit log - GoodDollar whitelist check via getWhitelistedRoot + faucet topWallet proxy - Anti-gaming hardening (per Lewis review): dynamic user share, viewed-ads + redeemed-points gate before claim - ENGAGEMENT_REWARDS.md reference doc published at the repo root
Verified GoodDollar users on Celo can now convert their on-protocol engagement into a real ~5000 G$ payout every 180 days, with anti-sybil and anti-gaming gates that block app-limit abuse. Daily G$ UBI claims and gas-less onboarding via the faucet are wired into the same dashboar…
Migrated every API route from MongoDB to Prisma + PostgreSQL (Neon) and unified the data model. - All campaign / publisher / viewer / impression / claim endpoints converted - Type-safe Prisma schema with Advertiser, Campaign, Publisher, PublisherSite, Viewer, ViewerCashout, EngagementRewardClaim, Impression, AdEvent - Removed Mongo driver + cleaned up scripts
Strongly-typed, relational data layer with migrations under version control. Removes the silent-schema-drift bugs that plagued the early Mongo days and makes analytics queries and audit logs straightforward.
Integrated Superfluid CFA + Distribution Pools into the SovAdsStreaming UUPS contract and migrated payout accounting away from batch settlement. - Added Superfluid Super-Token (G$) accounting for per-second flow rates - Wired distribution pools for publishers (60%) and stakers (20%) - Replaced manual ReentrancyGuard with ReentrancyGuardUpgradeable for proxy compatibility - Upgraded OpenZeppelin deps to keep proxy/UUPS path safe
Publishers and stakers now receive real-time G$ streams the moment a campaign is funded, instead of waiting 30-60 days for batch payouts. Every flow rate and pool share is verifiable on Celoscan, removing the trust-the-network-operator step that defines legacy ad payouts.