Watch And Earn docs
v4.0.0
Live demoConsole demo Get help
● Grow · Points and limits

Rewards economy
points, caps, levels.

Every number that decides how many points an action gives, and how often. All of it is set in the console (Rewards economy and Features) and written to config/public. Defaults below come from docs/CONTRACT.md and admin/src/manifest.ts.

Points and badges only

01Ground rules

  • The server decides. Every credit goes through one server transaction (credit() in firebase/functions/src/credit.ts) that writes a ledger row with the balance after it. Wheel and scratch results are drawn on the server; the scratch animation is cosmetic.
  • Whole points only. No decimals in the ledger. The VIP or booster multiplier is rounded down. VIP and booster never stack: the larger one applies.
  • The day is UTC. Daily caps, streaks and the daily leaderboard reset at 00:00 UTC; the weekly leaderboard uses the ISO week in UTC.
  • Points have no cash value. The console's Legal → Points notice is shown in onboarding, in the settings and on the rules screen of the app. Keep its meaning. The 4.0 cash wallet is a separate balance that points can never reach (the hard rule).
Console Rewards economy section with points per video, daily cap, cooldown and streak rewards
Console → Rewards economy, on the read-only demo console.

02Rewards economy settings

SettingField in config/publicDefaultAllowed
Points per rewarded videoeconomy.pointsPerAd101 to 10000
Rewarded videos per day (per user)economy.adDailyCap201 to 500
Seconds between rewarded videoseconomy.adCooldownSeconds300 to 3600
Daily streak rewardseconomy.streakRewards5, 10, 15, 20, 25, 30, 50One number per line, day 1, day 2… After the last day the last value repeats; a missed day restarts at day 1.
Free wheel spins per dayeconomy.spinDailyFree10 to 20
Extra spins per day for watching an adeconomy.spinExtraViaAdDaily20 to 20
Wheel segmentseconomy.wheel5|5|30, 10|10|25, 20|20|18, 50|50|8, 2|2|30, 100|100|2, 15|15|20, 0|0|10One per line as label|points|weight. 4 to 12 segments, weight above 0 (higher = more likely).
Free scratch cards per dayeconomy.scratchDailyFree20 to 20
Extra scratch cards per day for watching an adeconomy.scratchExtraViaAdDaily30 to 20
Scratch card prizeseconomy.scratchPrizes0|20, 5|35, 10|25, 25|12, 50|6, 200|2One per line as points|weight. 1 to 12 prizes.
Points per correct quiz answereconomy.quizPointsPerCorrect50 to 1000. A quiz can override it with its own points value.
Quizzes per day (per user)economy.quizDailyCap50 to 100
Inviter bonus (points)economy.referralInviterPoints100Paid once the invited user has earned the unlock amount.
Welcome bonus for the invited usereconomy.referralInviteePoints500 to 100000
Points the invited user must earn firsteconomy.referralUnlockPoints1000 to 1000000
Days after sign-up to enter an invite codeeconomy.referralWindowDays70 to 365
Level thresholdseconomy.levels0, 100, 300, 700, 1500, 3000, 6000, 10000, 16000, 25000Lifetime points for level 1, 2, 3… Starting at 0, strictly ascending.
VIP multipliereconomy.vipMultiplier1.51 to 5. Applied while VIP is active (rounded down) to rewarded-ad, rewarded-interstitial, spin, scratch, quiz, task, check-in and mini-game credits (docs/CONTRACT-3.1.md §10.3). With an active booster the higher of the two multipliers applies, never both.
Offer completions credited per day (per user)economy.offerDailyCap100 to 100
Second-level invite bonus (points)economy.referralTier2Points0 (off)0 to 100000. Paid to the inviter's inviter. Never more than two levels (details).
Check-in calendar rewardseconomy.checkinRewards31 values from 10 to 150, bigger every 7thLine n = reward for the n-th check-in of the month (details).
Points per 1 USD of provider payouteconomy.offerwallPointsPerUsd10000 to 100000. Set in the Offerwalls and surveys section (details).
Most points one conversion can crediteconomy.offerwallMaxPointsPerConversion500000 to 1000000. Same section.

Rewarded-interstitial points, mini-game points, the mystery box, the season pass and achievements have their own sections: see Placements and Engagement features. Several of these numbers can be A/B-tested (A/B experiments).

Invalid lines are skipped, never guessed

A wheel segment without a weight, for example, is left out. The console's Status page lists every skipped line.

03Features on and off

Console → Features. A switched-off feature disappears from the app and the Functions refuse its calls. All are on by default. Features that need content (season, events, store and so on) show nothing until you add it.

SwitchField
Lucky wheelfeatures.spin
Scratch cardsfeatures.scratch
Quizzesfeatures.quiz
Daily tasksfeatures.tasks
Offersfeatures.offers
Leaderboardfeatures.leaderboard
Invite friendsfeatures.referral
Daily streakfeatures.streak
Offerwalls and surveys tabfeatures.offerwalls
Sponsored contentfeatures.sponsors
Check-in calendarfeatures.checkin
Achievementsfeatures.achievements
Season passfeatures.season
Events and tournamentsfeatures.events
Teamsfeatures.teams
Friendsfeatures.friends
Mini-gamesfeatures.games
Rewards storefeatures.store
Notifications inboxfeatures.inbox
Promo codesfeatures.promo

The mystery box has its own on/off setting, off by default (Mystery box).

04Levels, badges and leaderboards

The level follows lifetime points, which never go down. Badges are awarded by the server: first_ad, ads_50, ads_250, streak_7, streak_30, quiz_10, quiz_master (100% on a quiz with 5 or more questions), spinner_25, inviter_1, inviter_10, level_5, level_10 and vip. Their names are in app/lib/l10n/app_en.arb.

Leaderboards exist for today, this week and all time. Points you add by hand in the console do not change leaderboards.

05Built-in protection

  • Caps and cooldown per user and day, as above.
  • Rate limits on every callable function, per user, over a one-minute window (firebase/functions/src/guard.ts).
  • One-time ad sessions: each verified callback credits once; mismatches open a fraud flag.
  • App Check on every callable in production.
  • Banned users are refused by every function except account deletion.
  • Anti-fraud: device reports, an accounts-per-device limit, a velocity rule and a review queue (Anti-fraud).