TAVEXA MINI

Idle-mining rewards

Your rig mines while you sleep.while you commute.while you work.while you eat.

Start a session and it earns Points with the app closed. Watch a rewarded ad for more. Check in daily and the streak pays you back. One loop, one balance — and every rule of the economy is published.

  • 15 Points/hr base rate
  • Rewards verified server-side
  • In-app Points today · cash-out on the roadmap

In-app Points only today. No purchase required. Cash-out, and any token after it, are staged, conditional plans — not a promise. See the roadmap.

9:41
9:41
The TAVEXA MINI home screen: a next-best-action card, the Points balance with a sparkline, and a live mining session.9:41
+72.3 PointsMining session claimed
12-day streak+24% mining rate
Lucky Ad ×2+27 Points
Level 10 reached+375 milestone
mia  claimed +72.3 Pointsnoah  reached Level 10 · +375streak  12 days · +24% mininglucky ad  ×2 · +27 Pointsweekly pass  day 4 unlockedboost  +50% ads for 15 minteam  +4% mining · 2 of 10 activedaily goal  complete · +10% for 3 hmystery box  opened · +18kai  passed you · #6 → #5

Illustrative activity — the kind of moments the app surfaces.

The loop

Three ways in. One balance.

Everything you do lands in the same pile of Points. Points raise your Level; Level unlocks bigger rewards. No wallet, no gas, no waiting.

Mine

One tap starts a session that keeps earning even when the app is fully closed. A notification tells you when it's ready to claim.

Watch

Rewarded video pays Points on top, verified before it lands. Every fourth ad lights a boost window; a lucky roll can multiply the payout.

Check in

A flat daily reward that builds a streak. The streak adds a permanent bump to your mining rate — and breaking it hurts.

The app, screen by screen

Everything on the phone, shown as it is.

These are real renders of the shipping UI — a demo account with sample numbers. Scroll, and the phone follows.

Home screen9:41
01 · Home

One glance. One next move.

Open the app and Home picks the best thing to do right now — claim a finished session, start mining, check in, or open your daily Mystery Box. Your balance, earn rate and live mining timer sit right under it.

  • A “Do this next” card that changes with your state
  • Balance sparkline and live earn rate, at a glance
  • Partner tasks and your weekly rank one scroll away
Earn screen with the mining dial and a rewarded ad9:41
02 · Mine & Watch

Mine. Watch. Earn.

A session keeps earning with the app fully closed — a notification tells you when it’s ready. Rewarded ads are always optional and pay Points on top, verified server-side before they land.

  • 4-hour sessions (6 h and 8 h are unlockable)
  • Lucky Strike can multiply a claim ×1.5, ×2 or ×3
  • Ad cap scales with level — 15 → 50 a day
  • Every 4th ad lights a 15-minute +50% boost window
Rewards screen with streak calendar and weekly pass9:41
03 · Rewards

Streaks you can actually see.

The Rewards tab lays the month out as a real calendar. Each streak day adds +2% to your mining rate, permanently, up to +50% — so the cost of breaking it is physical, not abstract.

  • Streak milestones from day 3 to day 365
  • Weekly Pass: seven tiers, 20 → 300 Points
  • Daily goal lights a 3-hour +10% mining boost
  • Miss a day and it decays by seven — not to zero
Marketplace with pickaxes9:41
04 · Marketplace

A small RPG bolted onto the loop.

Points have somewhere to go. Buy a pickaxe, upgrade it through levels, and fold its bonus into your mining rate — or spend on timed boosts, unlocks and cosmetics that never touch the earn rate.

  • Six pickaxes, Wood → Obsidian, common to legendary
  • Consumables, timed boosts and permanent unlocks
  • Frames, pickaxe skins and chat colours
  • A rotating −25% daily deal
Wallet with balance and sources9:41
05 · Wallet

Every Point, accounted for.

One append-only ledger backs your balance. The wallet shows the last seven days, where your Points come from, and the full history — and it’s honest about the redeem goal: cash-out is not live yet.

  • A source breakdown: mining, check-ins, ads, tasks
  • A ledger entry for every reward you’ve ever earned
  • Redeem is designed, switched off until it’s legal to ship
Weekly leaderboard podium9:41
06 · Leaderboard

See exactly how far the next rank is.

The weekly board resets every ISO week and shows the top 100. Your own row tells you the gap to the spot above in real Points — and there’s a global chat room for talking shop while your rig mines.

  • Top-100 podium and ranked list
  • One global room, ~48 hours of history
  • Links and promo spam filtered automatically
Level screen9:41
07 · Levels

Fifty levels. Milestones that matter.

Cumulative earnings climb a 50-step curve. Every ten levels pays a milestone bonus, a permanent +5% mining rate and a new avatar frame; the earn multiplier keeps stepping up to ×3.2.

  • Milestones at 10 / 20 / 30 / 40 / 50: 375 → 37,500
  • Frames: Bronze → Silver → Gold → Platinum → Legendary
  • Bonuses are added, never compounded
Invite friends screen9:41
08 · Team

Friends are rate, not spam.

Invite with a code — there is no payout for a signup. Friends only count once they reach Level 3 and mine, then each active one adds +2% to your rate, plus a 10% share of their ad earnings for 30 days.

  • +2% mining per active friend
  • 10% ad rev-share for 30 days
  • A one-session throwaway account is worth nothing
Badges screen9:41
09 · Badges

15 badges, with live progress.

One-time achievements evaluated on every action — first reward, streaks, ad counts, earnings and level tiers. Counter badges show a progress bar and percent so you always know what’s close.

  • Progress bars on every counter badge
  • Streak, ad, earnings and level tiers
  • Bronze → Legendary level badges

The shape of it

Numbers you can hold onto.

0/hr
Base mining rate
0
Levels to climb
+0%
Max streak bonus
0
Weekly Pass tiers

No small print

An economy you can audit.

Rewards apps are usually vague about the maths. Not this one. Every bonus is added, never compounded, so the maximum earn rate is finite and knowable no matter how many systems you stack.

The whole parameter set — rates, caps, costs, windows — is published in the whitepaper, and it's the same config the client and server both read.

0% 100 200 300 base 100% streak +50 team +50 +milestones · pickaxe · event = 275% effective

Illustrative maxed stack. Each labelled segment is a capped source; the total is their sum.

Points are in-app rewards today, not currency. They have no cash value yet and can't be bought. A redeem flow for gift cards is designed, gated behind a 25,000-Point threshold and an ad-revenue readiness bar (whitepaper §9), switched off until both hold. A longer-term liquidity option, with its own strict gate, is described honestly in whitepaper §10 — it is not live and not a promise. Ads are standard rewarded video — watching is always your choice.

Roadmap

Two phases shipped. Launch next.

The foundation and the engagement systems are built and running against the deployed backend today. Phase 2 is launch readiness — Play Store, legal, production ad config.

Phase 0 — Foundation Phase 1 — Engagement Phase 2 — Launch Phase 3 — Growth Phase 4 — Redemption Phase 5 — Liquidity

Community

Follow the build. Represent your country.

TAVEXA MINI runs an ambassador program — people who want to grow the app in their country apply in-app and get tracked through review. Everyone else can follow along while it ships.

Questions

The short answers.

Is it free? What does it cost?

It’s free to install and play. There’s nothing to buy to earn Points; ads are optional and pay extra, they’re not the price of entry.

Is this crypto? Can I cash out?

Not today. There's no token, no blockchain, and no cash-out live right now — Points are in-app rewards with no monetary value. A gift-card redeem flow is designed and switches on once the ad-revenue readiness bar in whitepaper §9 is met. A longer-term liquidity option is a conditional, later-stage idea explained in whitepaper §10 — it is not a promise, not investment advice, and nothing to buy into today.

Will it drain my battery or data?

No. Mining is computed on the server from elapsed time when you claim — nothing runs on your phone while the app is closed. You only get a notification when a session is ready.

Which phones does it run on?

Android first, launching on Google Play. There’s no iOS release announced yet.

How old do I have to be?

16 or older. The ambassador and partnership programs are 18+.

Can I delete my account and data?

Yes, any time — in the app under Settings → Account, or by email. Here’s how.

More detail: the field guide FAQ and the whitepaper.

Get the app

Android first. Coming soon.

TAVEXA MINI launches on Google Play. Drop us a line and we’ll tell you the day it’s live.

One e-mail when it’s live — nothing else, never shared. Privacy

Whitepaper

The TAVEXA MINI economy

A rewards app lives or dies on trust. Most are opaque about how earning works; this document is the opposite. It states every source of Points, every bonus, every cap, and the mechanisms that keep the system fair.

§1Abstract

TAVEXA MINI rewards attention and consistency with Points — a virtual, in-app balance with no monetary value and no relationship to any cryptocurrency or security. Points are earned three ways: a passive mining session that accrues while the app is closed, optional rewarded video ads, and a daily check-in. Layered on top are streaks, a weekly pass, weekly missions, timed events, level milestones and a referral team, each of which modifies the earn rate or pays a bounded bonus.

Today, Points are not a token and carry no promise of value. A gift-card redemption feature is engineered, and it stays switched off until the conditions in §9 are met. This is a deliberate sequencing, not an accident: the product is a rewards app first, proven at real scale, before any cash value enters the picture — never the other way around. §9 sets out exactly when redemption turns on; §10 sets out, with the same discipline, the only conditions under which a broader liquidity mechanism would ever be considered. Neither section promises a date or a price. Both exist so that if either ever happens, it happens because the numbers earned it, not because a roadmap said so.

What remains is a game about a machine that earns for you. The rest of this paper describes how that machine is balanced and defended.

§2Design goals

Retention through honest urgency, not dark patterns

Engagement mechanics are timed windows the player can see and reason about — a three-hour boost after completing the daily goal, a repair window after a broken streak, a countdown on a live event. There are no hidden timers, no pay-to-skip walls, no loot boxes bought with real money. The pull to return is "your boost is live for two more hours", stated plainly.

Bounded rewards

Every bonus source has a hard cap, and bonuses are summed rather than multiplied (§4). The maximum possible earn rate is knowable and finite regardless of how many systems a player stacks, so the economy cannot be inflated into meaninglessness by a small number of maximised accounts.

Server authority

The client never decides what a reward is worth. A mining claim's payout is computed by the server from the session's recorded start time and a rate locked in at start; an ad reward is credited only after the ad network's server-to-server verification confirms the view. The client runs a copy of the same rules only for an optimistic preview, which the server reconciles.

Fraud resistance as a first-class feature

A reputation score, deterministic idempotency on every mutation, a replay guard on the ledger, and a level-and-activity gate on referral rewards are built into the core loop, not bolted on. See §7.

§3The Points economy

All earning credits a single append-only ledger; the running balance is the sum of its entries. Points raise the account Level from cumulative lifetime earnings across a 50-step curve, and Level unlocks higher ad caps, higher earn multipliers and milestone rewards.

Sources and sinks
FlowMechanic
SourceIdle mining — 15 Points/hr base, 4–8 h sessions, rate modified by every bonus in §4
SourceRewarded ads — 9 Points base × earn multiplier × boost × ad-streak × event × luck
SourceDaily check-in — 11 Points, up to four times a day, streak advances once
SourceReward tasks & weekly missions — small flat credits for in-app actions
SourceWeekly Pass — 7 tiers, 15→225 Points, one per check-in day that week
SourceMystery Box — a bounded random amount, once daily from Level 3
SourceLevel milestones — 375→37,500 Points at Levels 10/20/30/40/50, once each
SourceReferral rev-share — 10% of a referred friend's ad earnings for 30 days
SinkMarketplace pickaxes — one-time purchase then upgrades; the only rate item bought with Points
SinkStore — consumables, timed boosts, permanent unlocks, cosmetics, a −25% daily deal

Cosmetic sinks (frames, pickaxe skins, chat colours) give Points somewhere to go without touching the earn rate, so a player can spend without weakening their own progression.

§4The additive rate model

The mining rate is the most important number in the economy, and the way its bonuses combine is a deliberate choice. Every source contributes a bonus in basis points; those are summed, and the sum is applied once:

rate = 15/hr × (1 + Σ bonusBps / 10000)

Multiplicative stacking produces runaway numbers: five ×1.4 bonuses compound to roughly ×5.4, not ×3. Additive stacking keeps each source's marginal effect bounded and legible. A player with everything maxed knows exactly what their ceiling is.

Rate sources & caps
SourceRateCap
Check-in streak+2% / day+50% (25 d)
Active referrals+2% / friend+20% base, grows w/ level & unlock
Level milestones+5% each+25% (all 5)
Equipped pickaxerarity + levelbounded by catalog
Timed boost (Rush Hour / Overclock)+50% / +25%while active
Daily-goal boost+10%3 h window (5 h w/ Go-Getter)
Limited-time eventadmin-setevent window

§5Rewarded ads

Ads are the revenue engine and are always optional. The player can run the entire loop — mining, check-ins, streaks, missions, the pass — without watching one; ads simply pay Points on top.

Verification

A rewarded video is served by Google AdMob. The reward is credited only after AdMob's server-side verification callback confirms the impression to our backend. A request whose token belongs to another account, or which arrives before verification, is rejected; a verified token that is replayed is caught by the ledger guard (§7) and dings reputation.

Caps and gates

  • Daily cap by level: 15 ads at Level 1, rising to 50 at Level 50.
  • Minimum gap of 25 seconds between ads.
  • Reputation gate: below a score of 20, ad earning is blocked entirely.

Boost, luck, streak, double

  • Boost window — every fourth ad lights a 15-minute window in which ad rewards are +50%.
  • Lucky Ad — a per-ad roll: ~8% pay double, ~2% pay triple. The triple is surfaced as a celebration.
  • Ad Streak — consecutive days with at least one ad watched add +2% to ad rewards, capped at +20% over ten days. Independent of the check-in streak, with no freeze.
  • Ad Boost — for 180 seconds after a credit, watching one more ad adds 60% to that reward. One boost per ad; the offer expires with the timer.

§6Streaks & loss aversion

The check-in streak is the retention core. It advances once per calendar day (UTC) on the first check-in, and it does three things: pays milestone bonuses at 3, 7, 14, 30, 50, 75, 100, 200 and 365 days; adds a permanent +2%/day to the mining rate up to +50%; and, when broken, opens a paid recovery window.

Decay, not a wipe

Missing a single day without a Streak Freeze consumable reduces the streak by seven, not to zero — a long investment survives one slip. Missing two full days resets to one.

The repair window

For 24 hours after a break, the pre-break streak can be bought back for Points, at a cost that scales with what is restored (600–12,000). The state remembers the exact streak lost and when, so the offer is precise. A resumed streak on a new day clears a stale offer.

The calendar

The Rewards tab shows the current month as a real calendar grid with a tick on every day the account checked in, renewing on the first. It exists to make the chain, and the cost of breaking it, physical.

§7Anti-abuse

Reputation

A 0–100 trust score, starting at 50. Ordinary play adds small amounts and pins an honest account at 100 within days. Two abuse signals subtract three points each: a replayed mutation, and an ad token belonging to another account. Reputation gates ad earning (below 20) and the early earn-multiplier tiers (40–85).

Two-layer idempotency

Every mutation carries a client-generated Idempotency-Key header, deduplicated against a mutations table so an honest retry returns the cached response. Independently, each ledger entry the engine produces has a deterministic idem string, and the ledger has a unique constraint on (user, idem). A mutation whose deterministic entries already exist is treated as a duplicate: current state is returned, no double credit, reputation dinged.

Server-authoritative claims

Session payouts are computed server-side from the recorded start time and locked-in rate, never from a client-reported amount. Day and week boundaries are computed in UTC on both sides so the client's optimistic preview and the server agree at midnight.

Sybil gate on referrals

A referred friend only counts toward the active-team boost once they reach Level 3 and have mined within the active window. A farm of one-session-a-day throwaway accounts is worth nothing. There is also no flat payout for a signup.

§8Architecture & trust

The rules of the economy exist four times, in lock-step. The Dart engine is the specification; a test suite is the contract; a TypeScript port runs on the server; an in-process mock runs the real Dart engine for local development. A parity test reads the TypeScript as text and asserts its load-bearing numbers still match the Dart side.

reward_engine.dart

Pure (state, action, now) → result. The spec.

engine.ts

Server port, runs in a Supabase Edge Function.

mock client

Runs the real Dart engine as an in-process server.

engine tests

65 cases + a Dart↔TS parity diff.

Writes land through a single atomic RPC that upserts state, appends ledger rows with deduplication, and records the mutation — a claim and its referral side effects commit together or not at all. The client holds a durable offline queue: a mutation made without a connection applies optimistically, is queued with its idempotency key, and reconciles when the connection returns.

Remote configuration

Every tunable number lives in one versioned config blob fetched and cached by the client. Retuning the economy, or starting a limited-time event, is a new config row, not an app release. The current parameter set is in the field guide.

§9Governance & redemption

Economy parameters are set by the operator and can change to keep the system balanced; material changes are noted in-app. There is no on-chain governance and no community treasury today — §10 is the only scenario in which that could ever change.

Why redemption is gated on two conditions, not one

A redemption flow for gift cards is designed and built. It stays switched off until two independent conditions both hold, not one:

  • Operational readiness — a payout partner under contract, tax and identity setup for every jurisdiction served, and the compliance review real payouts require.
  • Ad-revenue readiness — verified rewarded-ad revenue reliably covers the redemption liability the ad-provenance rule below creates, with margin, measured over a sustained period — not a single good week.

The second condition exists because a redemption pool that pays out faster than its revenue backs it isn't a feature, it's a countdown. Gating on real, measured ad revenue — not a launch date, not a Point balance, not demand — is what keeps "coming soon" from becoming a broken promise.

The ad-provenance rule

Once redemption is live, cashing out will require that at least 60% of the redeemed balance's lifetime provenance is ad-earned — traced from the same append-only ledger that already tags every entry by source (ad_reward, ad_double, session_claim, checkin, and so on). Earning, holding and spending Points work exactly as they do today, with no new restriction anywhere in the app; the rule applies only at the redeem screen, to the balance being cashed out. In practice this means real payouts are backed by real ad revenue, by construction — a balance built entirely from the free loop can still be spent in the Marketplace exactly as before, it simply can't be redeemed for cash. Even once live, Points are redeemed for a fixed catalogue — never cashed out at a floating price, and never traded.

No forward-looking value, today

Nothing in this document, the app, or its marketing should be read as a promise that Points will have value on any specific date. Today they are a rewards-program balance and nothing else. §10 states the one long-term, fully conditional exception to that sentence, and states it with the same caution.

§10Token & long-term liquidity

This section describes a possibility under study, not a product, a date, or an offer. No token exists today. There is no presale, no allocation, no whitelist, and nothing to buy, stake or reserve. If that ever changes, it will only be after redemption (§9) has been running successfully, and only under the conditions below — stated now, in public, so they can't be quietly loosened later.

What actually breaks other "tap-to-earn" tokens

Two failure modes show up again and again in this genre. The first: an app spends years telling millions of people their balance will be worth something once a mainnet or a listing finally happens — a promise that keeps receding. The second, newer one: an app does list a token, fast, on the strength of hype alone, before real trading depth exists behind it — and the price collapses within days once the buyers who propped up the launch have no organic demand to sell into. Both are the same underlying mistake: treating a token as a way to create liquidity rather than something that requires liquidity to already exist. TAVEXA MINI's position is that this is a sequencing failure, not a crypto failure — liquidity has to exist before a token needs it, never the other way around.

The gate

A token would only be considered once all of the following hold, sustained for two consecutive fiscal quarters — not a single spike:

Proposed liquidity-readiness criteria · subject to legal and financial review before adoption
ConditionWhy it's the bar
Redemption (§9) live and operating without a backlogproves the ad-revenue-to-payout model already works with real money, at real volume
A large, genuinely active user base illustrative: 250k+ monthly active accountsreal trading depth needs real people, not a number on a pitch deck
Verified ad revenue at meaningful scale illustrative: $50k+ / monththe same discipline as §9 — liquidity backed by revenue, not by the token's own hoped-for price
Full legal review in every jurisdiction offereda token can be a regulated security depending on how it's structured and sold — a legal question before it's a product one

The thresholds above are a starting proposal, published so the bar is public before it's ever close to being met — not a number we'll quietly move. They will be finalised with legal and financial counsel, not adjusted downward to hit a launch date.

What this is not

Not investment advice. Not an offer or solicitation to buy, sell or trade any security or digital asset, in this jurisdiction or any other. Not a guarantee that a token will ever launch, that it would have any particular value if it did, or that today's Points would convert to it on any particular terms. Anyone telling you otherwise — in a chat, a group, or a "pre-sale" — is not us.

Roadmap

Where it is, where it's going

Phases are grouped by intent, not tied to dates. Everything in Phase 0 and Phase 1 is built and running against the deployed backend today.

0 — Foundation1 — Engagement2 — Launch3 — Growth4 — Redemption5 — Liquidity

Phase 0 — Foundation shipped

The core loop and the systems that make it trustworthy.

  • Server-authoritative economy: atomic write RPC, append-only ledger, two-layer idempotency
  • Dual-engine lock-step (Dart spec ↔ TypeScript port) with a parity test
  • Auth: guest, email + password, Google
  • Idle mining, rewarded ads with SSV verification, daily check-in + streak
  • Marketplace pickaxes, store (consumables, timed boosts, unlocks, cosmetics), daily deals
  • Referral / earning team with rev-share and the sybil gate
  • Global chat, weekly leaderboard, weekly missions
  • 50-level curve, earn-multiplier tiers, level milestones with frames
  • Local + push notifications; reputation-based fraud throttle

Phase 1 — Engagement depth shipped

Timed windows and reveal moments that give the player a reason to come back now.

  • Daily goal → a 3-hour +10% mining boost (5 h with Go-Getter)
  • Weekly Pass — 7-tier check-in track, 15→225 Points
  • Limited-time events framework + a home countdown banner
  • Ad depth: Lucky Ad (×2/×3), Ad Streak (+2%/day), Ad Boost (180 s, +60%)
  • Win-back push ladder — personalised D3 / D7 / D14 nudges to lapsed accounts
  • Monthly streak calendar; badge progress bars
  • Ambassador & partnership program — in-app application + status tracking
  • Feel: loud "claim now" state, celebrations, first-session hook, home social strip, skeleton loaders
  • Tuning: streak-repair parity fix, daily goal 5→4, team cap 25→10, real status-bar icon

Phase 2 — Launch readiness in progress now

  • Google Play submission — store listing, content rating, data-safety form
  • Privacy Policy & Terms live on a real domain
  • Production AdMob unit IDs + UMP consent; remove test units and dev-only permissions
  • This marketing / documentation site deployed
  • Economy rebalance (Sep 2026) — organic earn rates cut ~25%, the ad-boost bonus cut from a full double to +60%, store prices trimmed ~10% so purchases stay a reach, not a wall — moves payout toward what ad revenue can sustain
  • Closed beta with a small cohort; further economy tuning from real data
  • Rotate development secrets; re-enable server-side ad verification enforcement

Phase 3 — Growth planned

  • Country ambassadors onboarded through the in-app program; country-scoped leaderboards
  • A regular cadence of limited-time events
  • Clan / guild layer — small-group shared goals on top of the 1:1 referral tree
  • Referral tree visualisation
  • Localisation beyond English

Phase 4 — Redemption planned

  • Gift-card payout partner integration
  • Identity / tax setup for supported regions
  • Ad-revenue readiness bar met — verified rewarded-ad revenue covers the redemption liability, with margin, over a sustained period — per whitepaper §9
  • Ad-provenance rule enforced: ≥60% of a redeemed balance's lifetime provenance must be ad-earned
  • Redeem flow enabled, still gated at the 25,000-Point threshold
  • Regional compliance review before each market opens

Phase 5 — Token & liquidity conditional · not funded

Not a product yet — a public statement of the only conditions under which one would ever be considered. Full detail in whitepaper §10.

  • Only after Phase 4 has run without a redemption backlog
  • Real active-user scale and verified ad revenue at the thresholds set in whitepaper §10, sustained for two quarters — not a single spike
  • Full legal and securities review in every jurisdiction offered, ahead of any token, presale or listing
  • No presale, whitelist or allocation exists today — none will be announced ahead of this phase actually being reached

Later — exploratory not committed

  • Lightweight web build of the app
  • Telegram mini-app acquisition funnel sharing the same backend and account
  • Operator dashboard for config, events, applications and announcements

Field guide · config v16+

Every mechanic, number and moving part

The whitepaper explains why the economy is shaped the way it is. This is the operator's reference for what — each system, its exact values, the windows that trigger it, and where it surfaces in the app.

Three ways in, one balance

Everything the player does resolves to Points in a single balance. Points raise their Level from cumulative lifetime earnings and count toward a redeem threshold. Three mechanics generate them; every timed window, streak and boost exists to pull the player back to one of the three.

Idle mining

Passive, runs with the app closed. One tap to start, one to claim.

Rewarded ads

Watch an ad, get Points on top. The revenue engine, always optional.

Daily check-in

A flat reward that builds a streak — the retention anchor.

↓  all credit the same append-only ledger  ↓

Balance → Level

50-level curve off cumulative earnings. Milestones at 10 / 20 / 30 / 40 / 50.

Redeem

Threshold 25,000 Points. Gift-card flow designed, switched off until a partner + tax setup lands.

Idle mining session session_start / session_claim

Starting a session records a server-side start time and locks in the effective rate; the claim payout is computed by the server from elapsed time × locked rate, so a client can't forge the amount. Claimable once the session has run its full length (or half, with Instant Claim).

Idle mining — the numbers

A passive session that keeps earning while the app is fully closed. Nothing runs on the phone; a local notification fires when it's ready.

Length
4 h default · 6 h with Extended Sessions · 8 h with Marathon Sessions
Base rate
15 Points / hr, before any bonus stacking
Lucky Strike
Server rolls a multiplier on claim — ×1.5 (8.5%), ×2 (3.3%), ×3 (1.2%). Revealed as a celebration.
Consumables
Double Mining (×2 payout) · Instant Claim (skips the back half only — no free loop)
Overclock
Sessions auto-restart on claim while a 24 h / 7 d Overclock is active
UI
Home mining card + full dial on Earn. A finished session flips the button to a pulsing CLAIM NOW · +amount.

Rewarded ads ad_complete / ad_double expanded

Google AdMob rewarded video, verified server-side (SSV) before Points land. Reward = base × earn-multiplier × boost × ad-streak × event × luck. Rate-limited, capped, and gated on reputation so it can't be farmed.

Base reward
9 Points, then multiplied
Min gap
25 s between ads
Daily cap
Tiered by level: 15 → 20 → 25 → 30 → 40 → 50 (L1 / 10 / 20 / 30 / 40 / 50)
Reputation gate
Below 20 reputation, ad earning is blocked entirely
Boost window
Every 4th ad lights a 15-min +50% window on ad rewards
Lucky Ad new
Per-ad roll — ×2 (8%), ×3 (2%). The ×3 gets a jackpot dialog.
Ad Streak new
Consecutive days with ≥1 ad watched: +2% / day on ad rewards, capped +20% (10 days). Separate from the check-in streak; no freeze.
Ad Boost new
For 180 s after a credit, watch one more ad to add +60% to it. Countdown sheet on Earn; one boost per ad.

Daily check-in & streak checkin / repair_streak

A flat daily reward that also advances the check-in streak — a loss-aversion engine that grants a passive mining boost, unlocks milestone bonuses, and, if broken, can be bought back for a short window.

Reward
11 Points, cooldown 6 h (up to 4 claims/day); the streak advances only on the first claim of a new UTC day
Streak bonus
+2% mining rate per streak day, capped +50% (25 days)
Milestones
Day 3 → +22, 7 → +60, 14 → +135, 30 → +340, 50 → +525, 75 → +900, 100 → +1,500, 200 → +3,400, 365 → +7,500 Points
Streak Freeze
Consumable — covers exactly one missed day
Decay, not wipe
Miss a day with no Freeze → streak drops by 7 (not to zero); miss two full days → back to 1
Streak Repair
Within 24 h of a break, pay Points (cost scales with what's restored, 600–12,000) to put it back. Offered on Home & Rewards.
Calendar
The Rewards tab shows the current month as a real calendar grid, a tick on every checked-in day, renewing on the 1st

How the mining rate stacks

Every bonus source is summed and applied once — never compounded — so each new source has a bounded, predictable marginal effect no matter what else is running:

rate = 15/hr × (1 + Σ bonusBps / 10000)

Additive rate sources
SourceAmountCap
Active referrals+2% / active friend+20% (10) + level & unlock
Check-in streak+2% / day+50% (25 days)
Level milestones+5% each+25% (all 5)
Equipped pickaxerarity + levelObsidian maxed
Timed boost (Rush Hour / Overclock)+50% / +25%while active
Daily-goal boost+10%3 h window (5 h w/ Go-Getter)
Limited-time eventadmin-setevent window

Daily goal → timed boost dailyGoalBoost

Do 4 daily activities (distinct tasks + check in + watch an ad + claim a session) and a 3-hour +10% mining boost lights. Deliberately a ticking window, not an all-day bonus — there has to be a reason to mine now. Completing it fires a celebration + a "boost is live" push, and a "30 min left" push before it ends.

Goal
4 activities / day (flat)
Reward
+10% mining for 3 h5 h with the Go-Getter unlock
UI
Progress ring + segmented bar on Home & Rewards

Weekly Pass weekly_pass_claim new

A battle-pass-style track of 7 escalating rewards. Tier N unlocks once the account has checked in on N distinct days in the current ISO week; the tail tier is the "came back all week" payoff. Resets every week.

Ladder
15 · 22 · 37 · 56 · 90 · 135 · 225 Points
Unlock
distinct check-in days this ISO week (max 7)
Claim
per-tier, once each; idem weeklypass:<week>:<tier>
UI
Horizontal scrubbable track card on the Rewards tab

Weekly missions mission_claim

Five weekly targets that reset each ISO week. Progress accrues passively as the player uses the app; the reward is claimed once the target is hit.

Mission catalog
MissionTarget
Ad Marathonwatch 40 rewarded ads
Steady Handcheck in on 5 different days
Task Mastercomplete 20 tasks
Session Streakclaim 5 earning sessions
Big Weekearn 1,500 Points in the week

Limited-time events config.events[] new remote

Admin-toggled promo windows — e.g. "Weekend 2× Mining". Each is {key, title, kind, magnitudeBps, startsAt, endsAt}. kind: idle_rate adds to the mining rate alongside referral/streak; kind: ad_reward multiplies ad payouts. Toggling one is a new config version, no redeploy — the migration ships a ready SQL template. Home shows a gradient banner with a live countdown while an event runs.

Happy Hour
Fridays 17:00–19:00 UTC · mining sessions started in the window run +50% faster
Bonus Ad Hour
Sundays 17:00–19:00 UTC · rewarded ads pay +30%
Schedule
a weekly template in config (eventSchedule) is turned into dated windows by a cron job every Monday; a push goes out 10–15 minutes before each, and Home shows a countdown to the next one

Win-back push ladder lifecycle-dispatch new server cron

A pg_cron job (every 6 h) sweeps user_state.updated_at for accounts gone quiet 3 / 7 / 14 days and sends each one one personalised FCM push per stage — copy uses their real streak count, level and balance. A lifecycle_pings table guarantees a stage never fires twice. Reuses the existing Vault secrets + FCM sender; no new infra.

D3
"Your N-day streak is fading" / "your rig is idle"
D7
"A week of Points, unclaimed — Level N miners are pulling ahead"
D14
"We kept your account warm"

Mystery Box mystery_box_open

A once-daily random Points reward, unlocked at Level 3. The range widens at the same level brackets as the ad cap (L3–19: 11–22 … L50+: 60–120). Go-Getter grants a second free open per day; a Mystery Key consumable buys one more. A box is also paid automatically alongside each level milestone.

Levels & the earn multiplier

Level comes from cumulative earnings across a 50-level curve — fast to ~15, steep 15→30, a genuine long-haul 30→50. The earn multiplier scales every ad and reward; early tiers also gate on streak and reputation, later tiers on level alone.

Multiplier tiers
MultiplierRequires
×1.00base
×1.10L2 · 40 reputation
×1.25L3 · 3-day streak · 55 rep
×1.50L4 · 7-day streak · 65 rep
×1.80L5 · 14-day streak · 75 rep
×2.20L6 · 21-day streak · 85 rep
×1.30 → ×3.20L11 / 20 / 30 / 40 / 50 — level only

Level milestones (10 / 20 / 30 / 40 / 50) each pay a flat bonus (375 → 37,500 Points), a Mystery Box, a permanent +5% mining rate, and an upgraded profile frame: Bronze → Silver → Gold → Platinum → Legendary. The earning-team cap also grows +5 every 10 levels.

Reputation reputationDeltas

A 0–100 trust score, starting at 50. Honest play pins it at 100 within days; abuse signals bleed it. Purpose: a lightweight fraud throttle.

Gains
check-in +1 · ad +1 · session claim +2 · task +1 · streak milestone +3 · mission +4 · referral +3 (all clamp at 100)
Losses
−3 for a replayed mutation · −3 for a stolen / tampered ad token
Gates
ad earning stops below 20; the early multiplier tiers (L2–6) also need 40–85 reputation

Badges achievements progress %

15 one-time achievements, evaluated on every mutation. Counter-based badges show a live progress bar and percent on the Badges screen.

Badge catalog
BadgeUnlock
First Stepclaim your first reward
On A Streak / Week Warrior3-day / 7-day streak
Early Earnerclaim an earning session
Ad Rookie / Ad Prowatch 10 / 100 ads
Point Collector / Masterearn 1,000 / 5,000 Points
Task Explorercomplete 25 tasks
Connecteduse or share a referral
Bronze → Legendaryreach Level 10 / 20 / 30 / 40 / 50

Referral & Earning Team referral_redeem

Invite friends with a code. There is no flat payout for a signup (that used to reward spam). The referrer earns two ways: a rev-share on the friend's ad activity, and a passive mining boost that scales with how many friends are currently active.

Referee bonus
55 Points, one time, for the person who was invited
Activation bonus
when a friend reaches Level 3 (reputation ≥ 40): +100 for the inviter (up to 10 friends) and +50 for the friend — once each
Invite link
tavexa.app/i/<code> — carries the code through Google Play’s install referrer, so it is applied at sign-up
Nudge
the team screen shows each friend’s level and a one-tap “your rig is idle” message for anyone not mining
Rev-share
10% of a referred friend's ad earnings, for 30 days after they join
Active-friend boost
+2% mining rate per friend who mined in the last 24 h and is Level 3+
Team cap
starts at 10 · +5 per 10 account levels · +10 with the Bigger Team unlock

Global Chat & Weekly Leaderboard

Chat — one room for everyone, keyed to the username, ~48 h retention, poll-based over the API seam. Links and promo text are blocked; 1.5 s send cooldown. Name colour is a cosmetic bought from the store — an owned collection you switch between for free.

Leaderboard — top 100 by weekly Points, resets each ISO week. A compact Home social strip new shows your rank, the gap to the spot above, your streak and how much of your team is active — and taps through to the full board.

Weekly leagues league new server

The global top 100 is out of reach for a new player, so everyone also races a small league: a cohort of up to 30 on the same tier, ranked by this week’s Points. Open the League tab on the Leaderboard screen and the server places you. On Monday the top fifth of each group moves up a tier, and anyone who mined nothing drops one.

Tiers
Bronze → Silver → Gold → Platinum → Diamond
Group size
up to 30; the oldest open group fills first — no invented players, a quiet league just shows who is in it
Promotion
top 20% of the group (at least 1, at most 5) with Points > 0
Demotion
zero Points all week, on Silver or above
Rollover
Monday 00:20 UTC, with a push or Telegram DM for anyone who moved

Ambassador & Partnership program partner-apply new server

An in-app application form (Profile → "Ambassador Program", first in the list). Two kinds — represent your country or partnership — each with a thorough, decision-ready field set (main platform + link, audience band, languages, weekly commitment, experience; or company + website + role + partnership type). Only decision-critical fields are required.

Storage
partner_applications table — review, then set status and reviewer_note
Email
best-effort notification with the full form when the mail keys are set
Tracking
"My applications" screen — each submission with a status chip (Submitted / In review / Accepted / Declined) and any team note

Store catalog store_buy

Everything buyable with Points that isn't a pickaxe. Pickaxe purchases and store spends are the only actions that subtract Points. Three consumable / timed keys rotate onto a −25% daily deal.

Store items · price in Points
ItemKindPriceEffect
Streak Freezeconsumable720bridge one missed streak day
Double Miningconsumable540×2 the next session payout
Instant Claimconsumable360skip a session's back half
Mystery Keyconsumable450one extra Mystery Box today (L3+)
Rush Hourtimed450+50% mining for 1 h
Overclock · 24htimed2,700auto-restart + +25% for a day
Overclock · 7dtimed13,500same, for a week
Extended Sessionsunlock7,200sessions run 6 h
Marathon Sessionsunlock18,000sessions run 8 h
Bigger Teamunlock10,800+10 active-teammate cap
Go-Getterunlock4,5005 h daily-goal boost + 2nd Mystery Box
Avatar frames ×4cosmetic3.6k–9kOcean / Forest / Sunset / Royal ring
Pickaxe skins ×6cosmetic2.7k–13.5krecolour the equipped pickaxe
Chat name colours ×12cosmetic1.4k–10.8kowned collection, free to switch

Pickaxes pickaxe_buy / _upgrade / _equip

Mining tools bought once with Points, then upgradable through levels. The equipped pickaxe's bonus folds into the mining-rate stack. Wood is owned from the start.

Pickaxe catalog
PickaxeRarityPrice
Wooden Pickcommon— starter
Stone Pickcommon450
Iron Pickuncommonupgrade path
Gold Pickrareupgrade path
Diamond Pickepicupgrade path
Obsidian Picklegendaryupgrade path

Upgrade cost scales price × 0.6 × currentLevel (min 200). Also on the Marketplace: sponsored / partner tasks that submit a link or handle for manual approval, then pay a flat credit.

Screen map

Five bottom-nav tabs in a stateful shell, plus pushed screens.

Home/home
Rewards/rewards
Earn/earn
Wallet/wallet
Profile/profile
Marketplace/marketplace
Global Chat/chat
Leaderboard/leaderboard
Earning Team/team
Invite Friends/referral
Level/level
Badges/achievements
Redeem/redeem · locked
Ambassador/partner · /partner/mine
Notifications/notifications
Settings/settings
Partner tasks/tasks/:platform
Onboarding / Auth/onboarding · /auth
Home screen9:41
Home
Earn screen9:41
Earn
Rewards screen9:41
Rewards
Wallet screen9:41
Wallet
Profile screen9:41
Profile
Marketplace screen9:41
Marketplace
Leaderboard screen9:41
Leaderboard
Invite screen9:41
Invite
Level screen9:41
Level
Badges screen9:41
Badges
Redeem screen9:41
Redeem
Settings screen9:41
Settings

Renders of the shipping UI with a demo account — sample numbers only.

Architecture at a glance

The rules of the economy exist four times, in lock-step. The Dart engine is the spec; a test file is the contract; the TypeScript port and the in-process mock must match it — a parity test diffs their load-bearing numbers.

reward_engine.dart

Pure (state, action, now) → result. The spec.

engine.ts

TS port for the Supabase Edge Function.

mock_api_client.dart

Runs the real Dart engine as an in-process "server".

economy_engine_test.dart

Unit tests + a shared Dart↔TS parity-vector suite.

Client seam
ApiClient: DioApiClient (HTTP) ↔ MockApiClient. One line swaps local → global.
Gateway
EconomyGateway — cached state, optimistic local engine apply, server reconcile, a durable offline Outbox, 2-layer idempotency (HTTP key → mutations; ledger idem → append-only ledger_entries)
Server
Postgres (no direct client access — every call goes through service-role Edge Functions) + Deno Edge Functions (28) + an atomic apply_writes(jsonb) RPC + economy_config remote-config (v16+)
Auth
guest / email + password / Google — all mint a Supabase session
Notifications
flutter_local_notifications (mining-ready, streak-risk, boost-expiring, win-back) + FCM for broadcasts; white bolt status-bar icon
Persistence
Hive, stored as plain JSON maps (not typed adapters) for backend portability
Time
all day / week boundaries in UTC so client and server agree

Tunable numbers config v16+

Every economy constant lives in one remote-config blob, fetched and cached by the client. Retuning is a new row in economy_config — no app release.

Current values
KeyValue
adRewardBase9
adMinGapSeconds25
boostWindowSeconds900
boostMultiplierBps15000
boostAdsRequired4
adDoubleBonusBps6000
checkinReward11
checkinCooldownSeconds21600
idleSessionSeconds14400
idleRatePerHour15
streakMilestones3 … 365 days
levelThresholds L2 / L3250 / 700
referralActivation (inviter / friend)100 / 50
eventScheduleFri idle +50% · Sun ads +30%
dailyTaskGoal4
reputationStart / Max50 / 100
refereeBonus55
referralRevShareBps1000
referralBoostPerActiveBps200
referralBoostMaxActive10
weeklyPassRewards15 … 225
events[ ]
minRedeemPoints25000

Deliberately not built: a live token, a presale, or any promise of guaranteed value — the actual, conditional long-term plan is whitepaper §10, published precisely so it can't quietly become more than that; multi-level referral commissions; forced or deceptive ad gating. The latter two are Play-Store and AdMob risks on their own, independent of the token question.

FAQ

Is this crypto? Can I withdraw money?

Not today. There is no token and no blockchain live right now. Points are in-app rewards with no monetary value. A gift-card redemption flow is built and switches on once the operational and ad-revenue conditions in whitepaper §9 are both met — and even then Points are redeemed for a fixed catalogue, never cashed out at a floating price or traded. A longer-term liquidity option is a fully conditional, later-stage idea with its own strict gate, set out in whitepaper §10; it is not live, not funded, and not something to buy into today.

Does mining really run while the app is closed?

Yes. The session records its start time on the server; the payout is computed from elapsed time when you claim. Nothing runs on your phone, and you get a notification when it's ready.

Do I have to watch ads?

No. Ads are optional and pay Points on top of everything else. The full loop works without them — you just earn slower.

What does it collect about me?

A username (optionally an email), a push-notification token, and your in-app economy data. Rewarded ads use Google AdMob, which processes an advertising identifier. Full detail in the Privacy Policy. Nothing is sold.

How is it kept fair?

Server-authoritative payouts, deterministic idempotency on every write, a ledger replay guard, a reputation-based throttle, and a level-and-activity gate on referral rewards. See whitepaper §7.

Blog & Dev Notes

Notes from building TAVEXA MINI

Feature tours, design calls, engineering trade-offs — written by the people building the economy, not a marketing team pretending to be them. Each one's its own page; pick what you're curious about.

Feature Tour

Inside TAVEXA MINI: a tour of every screen

Five tabs, a dozen systems, one balance. Here's what each one actually does.

6 min read
Design

Five hooks that make it hard to put down (the honest kind)

Every mechanic pulling you back, and why none of them needed a dark pattern to work.

5 min read
Story

A day in the life of a TAVEXA MINI miner

Morning notification to evening leaderboard check — one ordinary day, in Points.

4 min read
Feature Tour

The pickaxe system: a small RPG bolted onto real rewards

Wood to Obsidian, and why upgrading one is oddly satisfying.

4 min read
Feature Tour

Global Chat & the Leaderboard: the social heartbeat

One room, one weekly board, and why neither one needed to be complicated.

4 min read
Policy

Trust before liquidity

The staged, public plan for redemption and, much later, a possible token — with the exact conditions attached up front.

5 min read
Policy

What an independent audit found

No say over what it looked at, no veto over what got published. What came back, and what we did about it.

6 min read
Economy

Why we add bonuses instead of multiplying them

We nearly shipped compounding multipliers. Here's the spreadsheet that talked us out of it.

5 min read
Design

Designing a streak you don't dread breaking

Loss aversion works. Most apps use it cruelly. We tried not to.

4 min read
Engineering

Fighting ad fraud without punishing honest players

A trust score that forgives normal play and remembers abuse.

5 min read
Engineering

Four engines, one truth

How a Dart spec, a TypeScript port, a mock server and a test suite never quietly disagree.

5 min read
Design

The Weekly Pass, and why it isn't a battle pass

Same shape as the genre's favourite retention tool, opposite incentive.

4 min read
Community

What an Ambassador actually does

Two tracks, one form, and exactly what we do and don't promise applicants.

3 min read
Dev Log

Phase 1 shipped: what changed and why

Ad streaks, a weekly pass, win-back pushes — and the list of things we still won't build.

4 min read
← All posts
Feature Tour

Inside TAVEXA MINI: a tour of every screen

Five tabs on the bottom, a dozen systems underneath, and exactly one balance that all of them feed. Here's what each screen is actually for.

September 20266 min read

Open the app and you land on Home — your rig's dashboard. The mining ring tells you what's running and what it's worth right now; if a limited-time event or a boost is live, it's the first thing you see, not something buried three taps deep. A social strip shows your leaderboard rank and how far the next spot up actually is, in Points, not vibes.

Nine screens, one job each

Home

Your rig, your rank, your rate — one screen, no digging.

Earn

Start a session, watch an ad, see your multiplier and your rate stack broken down.

Rewards

Daily tasks, weekly missions, badges and partner offers — and the streak calendar.

Wallet

Every credit, every source, a 7-day trend and a redeem-progress bar.

Marketplace

Pickaxes, timed boosts, permanent unlocks, cosmetics — the only place Points leave.

Earning Team

Invite friends; every one actively mining adds a real, visible rate bonus.

Global Chat

One room, everyone in it, a username colour you actually bought.

Leaderboard

Top 100, weekly, resets clean — no account can camp the top forever.

Profile

Level, frame, badges, settings — and the Ambassador application, first in the list.

None of these screens exist to keep you scrolling for its own sake. Rewards groups everything you can do today; Wallet answers "where did my balance come from"; Marketplace is the only place it can go. The whole shell is built as a StatefulShellRoute, so switching tabs never loses your scroll position or resets a running countdown — the mining ring on Home keeps ticking whether you're looking at it or three tabs away.

5
Bottom-nav tabs
20/hr
Base mining rate
50
Levels to climb
8+
Systems feeding one balance

Why nine screens instead of three

The easy version of this app is one button that says "claim." We built nine screens instead because each one answers a different question a real player actually asks: what am I earning right now (Home), how do I earn faster (Earn), what's left to claim today (Rewards), where did all this come from (Wallet), what can I spend it on (Marketplace), who's helping me and who am I helping (Earning Team), is anyone else here (Chat, Leaderboard), and who am I in this (Profile). Cut any one of those and a real question goes unanswered — that's the test we used to decide what earned a tab and what got folded into a detail screen instead.

A rewards app with a dozen systems and no map is just a dozen confusing systems. The tour above is the map.
← All posts
Design

Five hooks that make it hard to put down (the honest kind)

"Engagement" has a bad reputation, mostly earned. Here are the five mechanics actually doing the pulling in TAVEXA MINI, and why we're comfortable naming every one of them out loud.

September 20265 min read

Every one of the five mechanics below is engineered to make you want to open the app again soon. That's not a confession — it's the job description of any rewards product. What matters is whether the mechanic still looks fine once you understand exactly how it works. Read each one as if we're explaining it to you before you've used it, because that's genuinely how we designed it.

1
Every 4th ad
The Boost Window

A real, visible 15-minute window where ad rewards run +50%, counting down on the Earn tab. The pull is exactly as strong as the number on screen — no hidden multiplier, no "sometimes it's better, you'll never know when."

2
Resets every Monday
The Weekly Pass

Seven tiers, one unlocked per distinct check-in day. The pull isn't "grind harder today," it's "there's a reason to open the app tomorrow specifically" — a hook that rewards a habit, not a session length.

3
180-second window
Ad Streak + Ad Boost

Consecutive ad days add +2% each, up to +20%. Watch one ad and a countdown opens to add 60% to that exact reward with one more. Both expire on a real clock, both pay out the stated amount — no escalating requirement, no bait-and-switch.

4
One config row
Limited-time events

A "Weekend 2× Mining" banner, when one runs, shows up on Home with a countdown and nowhere else to hide it. It's honest about being temporary because it's built to literally stop existing when the timer hits zero.

5
D3 · D7 · D14
Win-back pushes

Go quiet for three, seven or fourteen days and we send exactly one push per stage, built from your actual state — your real streak, your real level. Not "we miss you." A nudge built from truth, sent once, not a drip campaign.

Every hook on this list tells you the truth about what it does. That's the whole design brief.

What's deliberately not on this list

  • No countdown that resets itself if you don't act (a fake-scarcity classic)
  • No loot box — every reward you can see the odds or the fixed value of before you commit
  • No streak mechanic that punishes harder than it rewards (see the streak-repair piece)

Engagement mechanics aren't inherently manipulative. The line is whether the player, shown exactly how the mechanic works, would still feel fine about it. Every one of the five above passes that test, on purpose.

← All posts
Story

A day in the life of a TAVEXA MINI miner

Not a hypothetical persona — the exact sequence of taps and numbers a genuinely active account sees over one ordinary day.

September 20264 min read

This isn't a hypothetical persona built for a pitch deck. It's the literal sequence of screens, taps and numbers a real, moderately active account moves through on an ordinary weekday — six separate moments, none of them requiring more than a few seconds of attention.

7:12
Home
The overnight session lands

A notification: the session is done. The ring is full, and the button has already flipped to a pulsing CLAIM NOW · +140. One tap. A shower of coins animates toward the balance, and a fresh session starts on its own — Overclock is still active from last week's purchase.

7:14
Rewards
Check-in, streak day 13

+11 Points, and the streak strip ticks over to day 13 — +26% now folded permanently into the mining rate. The Weekly Pass card shows day 3 of 7 lit, one more tier waiting.

12:30
Earn
A lunch-break ad, and a double

One rewarded ad — the fourth today, so the Boost Window lights, +50% on ad rewards for 15 minutes. A sheet slides up: Boost it?, a 180-second ring counting down. One more ad. +24 instead of +15.

18:45
Earning Team
Checking the rate stack

Two friends mined today; the rate breakdown shows Team at +4%, next to Streak at +26% and Pickaxe at +12%. The whole stack, laid out, sits at 275% of base — exactly why the effective rate reads what it reads.

21:50
Leaderboard · Chat
Closing the day out

#482 this week, 160 Points from #481. Global Chat is mid-conversation about who's opened a Diamond pick yet. Not yet — the Marketplace screen shows exactly how close.

6
App opens that day
+180
Points earned
2
Ads watched
1
Streak day secured
None of this required a single decision that felt like it was being made for you. Every number on every screen was one you'd already seen coming.

That's the actual design goal behind all of it: a day where the app is worth opening five or six separate times, and every single one of those visits pays out something real and legible, whether it's 11 Points or 140.

← All posts
Feature Tour

The pickaxe system: a small RPG bolted onto real rewards

Six tools, a rarity ladder, and an upgrade curve — the one part of TAVEXA MINI that plays like a collection game, sitting directly on top of the mining rate that actually matters.

September 20264 min read

Everyone starts with a Wooden Pick, free, day one. From there the ladder climbs through Stone, Iron, Gold, Diamond, to Obsidian — common to legendary, exactly the rarity vocabulary you'd expect from a loot-driven game, except every step is bought outright with Points you earned mining, not with a currency you had to buy.

WOOD
STONE
IRON
GOLD
DIAMOND
OBSIDIAN

Buying a pickaxe is only step one. Each one upgrades through levels afterward, at a cost that scales with price × 0.6 × currentLevel — cheap early, deliberately real by the time you're pushing a Diamond pick toward its cap. The pickaxe you have equipped folds its bonus directly into the mining-rate stack described in the rate-math post; it isn't cosmetic, it's one of the five real levers on your effective rate.

Three things to actually do with a pickaxe

Collect

Six pickaxes, one visible rarity ladder, starting piece free.

Upgrade

A real cost curve tied to the pick's own level, not a random gate.

Skin it

Six cosmetic skins recolour the equipped pick without touching the rate.

Skins — six of them, priced 2,700–13,500 Points — sit entirely apart from the upgrade ladder. They exist so spending Points always has somewhere satisfying to go, even once your rate is already where you want it, and buying one never touches your actual earn rate one way or the other.

6
Pickaxe rarities
6
Cosmetic skins
.6×
Upgrade cost factor
0
Real-money purchases
A collection loop only feels good when the thing you're collecting also does something. Ours mines faster.

The Marketplace tab is also where sponsored partner tasks live — follow a channel, submit a link, get reviewed, get paid — a completely separate reward stream that happens to sit next to the pickaxe shelf because they're both "spend a minute here, come back with something."

← All posts
Feature Tour

Global Chat & the Leaderboard: the social heartbeat

An idle-mining app doesn't need a social network. It needs one room and one scoreboard, both honest, and both worth glancing at more than once a day.

September 20264 min read

Global Chat is exactly one room — not per-country channels, not a wall of servers to pick between. Everyone lands in the same conversation, keyed to a username, with roughly 48 hours of history so it stays a live conversation instead of an infinite scroll. Links and obvious promo text get filtered automatically, and a 1.5-second send cooldown keeps it from turning into a wall of spam the moment it gets busy. The one cosmetic touch: a name colour, bought from the store, from a collection you own and can switch between for free once purchased — small, but it's the one place your Marketplace spending shows up to other people.

The Leaderboard is just as deliberately simple: top 100 by Points earned that week, resetting clean every ISO week. Nobody camps the top forever, because the board itself forgets last week ever happened the moment a new one starts. A compact social strip on Home shows your current rank and the exact Point gap to the account above you — not a vague "you're doing great," a real number you can decide to close today.

One room

No servers to pick, no channel to find — everyone lands in the same place.

~48h history

Long enough to catch up, short enough to stay a live conversation.

Weekly, clean reset

Top 100 by Points, no account camping the top forever.

Why we kept both small

Together, chat and the leaderboard are the only two screens in the app where you're looking at other people instead of your own numbers. We kept both of them small on purpose: big enough to feel alive, small enough that a person who opens the app once a day for the mining loop never feels like they're missing a second app's worth of social obligation layered on top. Neither one has notifications of its own, unread badges, or a reason to pull you in beyond what's actually there when you look.

A leaderboard that never resets rewards whoever showed up first. A leaderboard that resets weekly rewards whoever showed up this week — which is a much more interesting group of people to compete against.
← All posts
Policy

Trust before liquidity

Every rewards app eventually gets asked "so when can I cash out?" We have a real, staged answer — and we're publishing the exact conditions for every stage of it now, before any of them are close to being met.

September 20265 min read

The honest answer, today: Points are an in-app balance with no cash value. They raise your Level, they unlock milestones, and that's it right now. There's a real plan for what comes after "right now" — two stages, each with its own hard, public gate — and this post is that plan, in full, including the parts that are years away and might not happen at all.

● What's live today
An in-app balance

No exchange, no floating price, no promise the balance is worth more tomorrow than today.

● What's planned, staged
Redeem, then maybe liquidity

A fixed-catalogue gift-card redeem first (whitepaper §9); a conditional token discussion only after that (§10).

We looked hard at how this genre usually goes, because we didn't want to repeat either of its two standard mistakes. The first: an app spends years telling millions of people their mined coins will be worth something once a mainnet finally launches — a promise that keeps receding and never quite arrives. The second, more recent one: an app does ship a token, fast, riding pure hype into a listing before any real trading depth exists behind it, and the price collapses within days once the users who propped up the launch have nothing organic to sell into. Both fail for the same reason — treating a token as the thing that creates demand, instead of something that needs real demand to already exist. We're not interested in either version.

A rewards program that names its conditions before it needs to can't quietly move the goalposts later — the goalposts are already public.

So here's the actual, two-stage plan, stated as plainly as we can state it, with every gate a matter of measurable fact rather than a vibe or a launch date:

Stage one: redemption, gated on ad revenue (whitepaper §9)

Gift-card redemption turns on once a payout partner and per-region legal/tax work are done, and verified rewarded-ad revenue reliably covers what redemption would pay out, with margin, over a sustained period — not a single good week. On top of that, cashing out will require that at least 60% of the redeemed balance's lifetime provenance is ad-earned, traced straight from the ledger. Spending and earning Points don't change at all; the rule only applies at the redeem screen. This is what keeps the payout pool solvent by construction, instead of by hope.

Stage two: a token, gated on real scale (whitepaper §10)

Only after stage one has run cleanly for a while would a token even enter the conversation — and only once there's a large, genuinely active user base and verified ad revenue at real scale, sustained for two consecutive quarters, plus a full legal review in every jurisdiction it would touch. No presale, no whitelist, no allocation exists today, and none will be announced before those conditions are actually met. The exact thresholds are in §10, published now specifically so they can't be revised downward later just to hit a launch date.

What this costs us

Some players want a payout today and will go find one elsewhere. We accept that. The trade is a product that can be honest about its own economics and its own timeline, instead of one that has to keep a story going to survive. If either stage ships, it'll be because the numbers and the paperwork are actually there, not because enough people asked.

What would actually move either gate

Nothing about demand, on its own, moves either one. For redemption: a signed payout partner, completed legal review per region, and ad revenue that measurably covers the liability. For a token: everything in §10's table, all at once, sustained, reviewed by counsel. Until then, this post and the whitepaper are the entire plan — not "we heard you," which isn't the same thing as "it's compliant," and not a date, because we don't have one to give.

← All posts
Policy

What an independent audit found

We asked for an outside pass at TAVEXA MINI's backend, database and economy, with no say over what it looked at and no veto over what got published. Here's what came back, and what we did about it.

September 20266 min read

In September 2026 we commissioned an independent technical and economic review of TAVEXA MINI — the backend, the database, the client, and the economy's own numbers. We're not naming the reviewer; what matters here is the method and the result, not the byline. The scope: read-only queries against live production data, a full pass over the source, and re-verification of every claim before it went in the report. Nothing was changed or fixed during the review itself, and no secret or credential was written into it — only where each one lived, for us to rotate.

● Before
Pre-launch, untested by anyone outside the build

A single-developer codebase that had never been read by someone trying to find where it breaks.

● After
Findings fixed, published, and re-checked

Every item below either shipped a fix the same week or is tracked, by name, on the public roadmap.

We're publishing this because the alternative — fixing things quietly and saying nothing — is exactly the kind of silence we've said elsewhere we'd rather not practice. A report you never see protects nobody but us.

What we found and fixed

  • A race condition in how balances were written. Two actions landing at nearly the same moment could overwrite each other instead of both counting. Fixed with optimistic-concurrency writes: a conflicting write now retries against the current state instead of silently clobbering it.
  • A database table growing without bound. Every request was logging its entire response for replay-safety, forever. Slimmed to just what idempotency actually needs, with an automatic retention sweep.
  • Database permissions broader than any table needed. Default access grants would have made a future table world-writable by mistake, not on purpose. Locked down to exactly what each table's own rules require.
  • No way to delete your account. Now built end-to-end — in-app, and by email — and required reading before we could accept this size of an app in any real app store.
  • No moderation tools in Global Chat. Reporting existed; blocking another user didn't. Added, along with a review queue for reported messages.
  • No age gate. A rewards app with optional ads and open chat needs one regardless of store policy. Added at sign-up, 16+.
  • No error or crash visibility at all. If something broke for a real user, we'd have had no way to know. Built a first-party analytics and error-reporting pipeline before we needed it, not after.
  • The redemption math didn't hold up. Organic earning paid out more, per day, than rewarded ads could realistically fund — a problem every app in this genre eventually hits and few name out loud. This is the one we're proudest of not hiding: the Sep 2026 economy rebalance and the ad-earned-share requirement in whitepaper §9 exist directly because of this finding, not despite it.

What's still open, on purpose

We're not going to pretend everything on the list is closed. Rewarded-ad verification enforcement is being hardened before it's switched fully on — tracked as its own line in Phase 2. A handful of items are ours to do by hand rather than ship in code: rotating a set of development secrets, and finishing the production app packaging a real store listing requires. None of it is hidden because none of it is finished — it's on the roadmap because it isn't.

The value of an audit isn't the list of things that were wrong. It's whether the list is still readable a year later, next to what actually happened about it.

Why we keep doing this

We don't think one review makes a product trustworthy forever. What we're committing to is the pattern: keep asking someone to try to break it, keep publishing what they find, and keep this specific post open to being wrong later if a future review contradicts it. That's a harder standard than "audited," and it's the only one we think is worth anything.

← All posts
Economy

Why we add bonuses instead of multiplying them

An early build of the mining rate multiplied every bonus together. It looked fine with two bonuses active. It looked insane with six.

September 20265 min read

Here's the version we almost shipped: a +50% streak bonus, a +20% team bonus, a +25% pickaxe bonus and a +50% timed boost, all multiplying the base rate in sequence. Add a fifth bonus and the number stops being something a player can estimate in their head. That's the actual problem: not that the number gets big, but that nobody — including us — can look at their own account and predict what happens when the next bonus source is unlocked.

● What we almost shipped
67.5/hr

Four bonuses multiplied in sequence — a 237% jump from sources that sound modest individually.

20 × 1.5 × 1.2 × 1.25 × 1.5
● What actually ships
55/hr

The same four sources, summed once — a predictable, legible 175% of base.

20 × (1 + 1.45)

The fix was to stop multiplying and start adding, in basis points, once:

rate = 15/hr × (1 + Σ bonusBps / 10000)

The same five sources maxed out — streak, team, level milestones, pickaxe, a timed boost — sum to roughly 275% of base, not 800%+. More importantly, every source's marginal contribution stays exactly what it says on the label: a +2%-per-day streak bonus adds 2% each day, forever, whether you have zero other bonuses running or all of them.

5
Additive rate sources
275%
Realistic maxed ceiling
1
Formula, both engines
0
Compounding bonuses
An economy where a player can compute their own ceiling on a napkin is an economy that feels fair, even to the player who hasn't maxed it out yet.

The part we didn't compromise on

We kept exactly one exception in mind while designing this, and then didn't use it: Lucky Strike and Lucky Ad multipliers (×1.5 to ×3, rolled server-side on a single claim) stay multiplicative, because they're a one-shot dice roll on a single payout, not a standing rate modifier. Multiplying a one-time roll doesn't compound into anything — it resolves and it's done. The rule we actually follow is narrower than "never multiply": it's "never let two standing bonuses multiply each other." Everything in the whitepaper's rate table follows from that one line.

← All posts
Design

Designing a streak you don't dread breaking

Loss aversion is real and it works. It's also the mechanic most responsible for making people feel bad about apps they otherwise like.

September 20264 min read

The classic version, which you've almost certainly used, is a single missed day wiping a streak counter back to zero. It's effective — nobody wants to lose a 40-day chain — and it's also the single most common source of "I deleted the app after I missed one day and lost everything" reviews across the genre. We wanted the retention pull without inheriting that specific resentment.

Three decisions got us there:

Decay by 7, not to zero

A missed day with no Streak Freeze costs seven days. A 40-day run drops to 33.

A 24-hour window

Buy the exact days back, cost scaling with what's restored (600–12,000 Points).

A real calendar

Not a bare counter — the month, the ticks, the ninth actually looks like the ninth.

7
Days lost on a miss
24h
Repair window
50%
Max streak bonus
25
Days to reach it
A number going up is an abstraction. A calendar with gaps in it is a memory.

What we chose not to do

We didn't add a way to buy an unlimited streak-freeze subscription, and we didn't make the repair cost trivial. Both would have quietly turned "don't break the chain" into "pay to never think about it," which defeats the point of having a streak in the first place. The mechanic is supposed to reward showing up, not reward spending enough to skip showing up.

What happens if you miss two days

The seven-day decay only covers a single slip. Miss two full days in a row with no Freeze active and the streak resets to one — the repair window still opens, but it's now repairing from a much smaller base, which is the honest trade-off of a forgiving-once system: it forgives once, not indefinitely.

← All posts
Engineering

Fighting ad fraud without punishing honest players

The easy version of ad-fraud prevention treats every player like a suspect. We wanted a system that mostly forgets you exist — right up until you do something that looks like abuse.

September 20265 min read

Every account starts at 50 reputation, on a 0–100 scale. Ordinary play — a check-in, an ad watched, a session claimed, a streak milestone hit — nudges it up by one to four points, clamped at 100. Within a few days of normal use, an honest account sits at the ceiling and never thinks about the number again. That's the part we care about most: the score should be invisible to everyone who isn't doing something wrong.

Two things pull it down, and only two: a replayed mutation (the same write, resent as if it were new) and an ad token that belongs to someone else's account. Each costs three points. Below 20 reputation, ad earning stops outright; between 40 and 85, the early earn-multiplier tiers stay locked. That's the entire penalty surface — no shadow bans, no silent throttling triggered by "unusual" but legitimate play patterns like watching several ads in a row after a long break.

50
Starting reputation
−3
Per abuse signal
20
Ad-earning cutoff
2
Penalty triggers, total
A fraud system that occasionally flags real players isn't a fraud system with a bug. It's a fraud system with the wrong design.

The boring infrastructure doing the real work

Reputation catches patterns; three other mechanisms catch the individual events:

Idempotency keys

A retried request returns the cached result instead of a second credit.

Ledger replay guard

Every entry has a deterministic id; the ledger enforces uniqueness on it.

Server-side verification

An ad credit only lands after AdMob's own callback confirms the impression.

None of this requires the player to notice it exists, which is exactly the point — a fraud layer that shows itself has usually already failed at its actual job.

← All posts
Engineering

Four engines, one truth

The scariest bug class in a rewards economy isn't a crash. It's the client and the server quietly agreeing on the wrong number.

September 20265 min read

The client needs to show you something the instant you tap "claim," before a round trip to the server completes — that's the whole point of an optimistic UI. But the server is the only party allowed to actually decide what you earned. Those two facts are in tension unless the client's guess and the server's truth are computed by rules that are provably the same rules. Our answer was to stop treating that as a documentation problem and start treating it as a lock-step problem.

reward_engine.dart

Pure (state, action, now) → result. The specification, not a description of it.

engine.ts

A line-for-line port that runs inside the Supabase Edge Function — the actual authority.

mock client

Runs the real Dart engine in-process, so local development never touches a fake ruleset.

parity test

Reads the TypeScript source as text and asserts its load-bearing numbers still match the Dart side.

The interesting piece is the last one. Most cross-language ports drift silently: someone tunes a constant in one file, forgets the other, and the bug sits there until a support ticket surfaces it weeks later. Our parity test doesn't run the TypeScript — it reads it as a string and greps for the numbers that matter (a rate constant, a cap, a formula's shape) and fails the build the moment either side changes without the other. It's a blunt instrument on purpose. Blunt instruments are the ones you don't have to remember to use correctly.

4
Engines in lock-step
65
Economy engine tests
1
Parity diff, Dart vs TS
0
Silent drift tolerated
We didn't want "the client and server agree" to depend on two engineers remembering to update the same number in two files on the same day.

Why a mock server instead of a fake one

The other unusual choice: local development doesn't run against a simplified stand-in economy. The mock API client runs the actual Dart engine in-process, so a feature built and tested entirely offline behaves identically to production the moment it's pointed at the real backend. One line swaps the client implementation. Nothing about the rules changes.

What this actually catches in practice

It's caught real bugs, not hypothetical ones — a streak-repair calculation that briefly disagreed between the Dart and TypeScript sides during the Phase 1 push shipped fine specifically because the parity test failed the build before it reached a device. That's the entire value proposition in one sentence: the boring test that fails loudly in CI is cheaper than the interesting bug report that arrives from a real account three weeks later.

← All posts
Design

The Weekly Pass, and why it isn't a battle pass

It has tiers, a ladder of rewards, and a reveal moment at the end — the shape of a battle pass. The incentive underneath it is the opposite of one.

September 20264 min read

A battle pass, in the genre that popularised the term, rewards hours logged: grind a season's worth of matches or missions, or pay to skip the grinding. Ours rewards a much smaller, much more specific thing — showing up on a distinct day. Tier N of the seven-tier ladder unlocks the moment you've checked in on N different days in the current ISO week. There's no way to grind it open faster by playing longer in a single sitting, and there's no way to buy a tier you haven't earned.

DAY 1 · 15
DAY 2 · 22
DAY 3 · 37
DAY 4 · 56
DAY 5 · 90
DAY 6 · 135
DAY 7 · 225

That constraint was intentional. The check-in streak already rewards consecutive days; the Weekly Pass rewards the same behaviour on a shorter, resetting clock, so a broken long streak isn't the only thing worth coming back for — a fresh Monday is too. The tail tier, at 300 Points, is specifically the "came back all seven days" payoff, sized to be worth noticing without being worth changing your week around.

7
Tiers, one per day
15–225
Points, low to high
1
Week per reset
0
Ways to skip a tier
The reward for showing up should scale with showing up, not with how long you're willing to sit there once you have.

What we left out

No premium track, no Points-to-skip-a-tier purchase, no cosmetic-only "free" ladder next to a "real" paid one. If we ever add a paid pass, it'll be a different, clearly-labelled thing — not this one, quietly split in two.

← All posts
Community

What an Ambassador actually does

The application form is longer than most in-app forms get away with. That's deliberate — we'd rather ask for detail up front than review a form that tells us nothing.

September 20263 min read

The Ambassador & Partnership program has two tracks, and the form branches depending on which one you pick.

● Track 1
Represent your country

Your main platform and a link to it, an audience-size band, the languages you post in, how many hours a week you can realistically commit, and any relevant experience — the fields a reviewer actually needs to say yes or no.

● Track 2
Partnership

A company name, a website, your role there, and the kind of partnership you're proposing — enough for a reviewer to understand what working together would actually look like.

After you submit, the application lands in a review table with a status — Submitted, In review, Accepted, Declined — that you can track from a "My applications" screen in-app, along with any note a reviewer leaves. We don't auto-approve either track; a person reads every submission.

We'd rather tell an applicant "not yet" honestly than tell them "yes" and mean "maybe, we'll see."

What we don't promise

Acceptance isn't a job offer, a guaranteed payment, or a promise of a specific reward — the program is still early, and we're upfront about that in the form itself. What it is: a real, tracked way to say "I want to help this grow in my country" or "I want to explore working together," and to have that go to an actual person instead of a support inbox.

Why the form doesn't ask for less

A short form is easy to fill out and impossible to act on. Asking for an audience-size band and a weekly-hours commitment up front means a reviewer can say "yes, and here's what to expect" on the first pass, instead of a back-and-forth of follow-up questions that quietly discourages everyone except the most persistent applicants — which is exactly the opposite of who a program like this should select for.

← All posts
Dev Log

Phase 1 shipped: what changed and why

Foundation was Phase 0 — the economy, the auth, the core loop. Phase 1 was about giving that loop a reason to pull you back on a given hour, not just a given day.

September 20264 min read

Phase 0 was the foundation — the economy, the auth, the core loop, the anti-fraud plumbing. Phase 1 was about giving that loop a reason to pull you back on a given hour, not just a given day. Here's what actually shipped, and what we fixed alongside it.

1
Ads
Lucky Ad, Ad Streak, Ad Boost

A roll on rewarded video (×2 about 8% of the time, ×3 about 2%), a streak that stacks +2%/day to +20%, and a 180-second window to add 60% to any single credit.

2
Retention
The seven-tier Weekly Pass

One tier unlocked per distinct check-in day, resetting every ISO week — the design rationale is its own post.

3
Config-driven
Limited-time events

A promo window that lights from a new config row, not a code change — and disappears the same way when the timer ends.

4
Server cron
The win-back push ladder

Personalised D3 / D7 / D14 nudges built from each account's real streak, level and balance — not a generic "we miss you."

5
Quiet fixes
The stuff nobody sees in a changelog

A monthly calendar rebuild of the streak strip, a Dart↔TS streak-repair parity fix, a daily-goal correction (five was quietly unreachable; it's four now), and a real notification icon after a placeholder shipped by mistake.

6
Systems shipped
3
Win-back push stages
4
Quiet fixes alongside
2
Phases complete
The features that show up in a changelog and the bugs that get fixed alongside them are usually the same amount of work. Only one of them makes it into the announcement.

What's deliberately still missing

No hint, anywhere, that Points become money or crypto later. No multi-level referral commissions — a referrer earns from the friends they invited directly, not from a downline. No forced or deceptive ad gating. Each of those is a fast way to grow a number in a spreadsheet and a fast way to get an app pulled from the Play Store, or worse, to genuinely deserve it.

What's next

Phase 2 is launch readiness: the Play Store listing, the legal review this site's Privacy Policy and Terms keep flagging as drafts, and production ad configuration. Phase 3, after that, is where the Ambassador program above starts to matter at scale.

See the full roadmap →

That page isn’t here.

The link may be old, or mistyped. Everything that does exist is one click away.