Tokenomics
Live economic model for OSR, Oil Rigs, and Mining Shafts
1. The Economic Loop
- Users burn OSR + pay an ETH fee to deploy virtual nodes (Oil Rigs or Mining Shafts).
- Every mint burns 70% of the OSR cost to the burn wallet, routing the other 30% into the treasury wallet. Compound upgrades and crates split their OSR cost 50/30/20 burn / reserve / treasury.
- A halving emission curve (E₀ = 248.0 OSR/sec, halves every 7 days) distributes OSR from the 300M reserve. The rate is derived from the reserve rather than fixed, so the schedule spends it exactly and can never promise OSR the protocol does not hold. Each user earns a share proportional to their grow-power, capped at 30% per user to prevent lottery-in-thin-network wins.
- Under v2 accrual, both Oil Rigs and Mining Shafts accrue $OSR per second out of that reserve. Progression is wallet-wide: compound upgrades (OSR + 0.00001 ETH, 12h cooldown) raise your Compound Level, unlocking more node slots, more daily crates, and higher rarity pools. Mining Shafts add bonus node slots at L5+.
- Protocol ETH revenue (ERC-20 transfer tax (2%) + DEX LP fees (2%)) flows to the treasury ops budget — it funds infrastructure, not user rewards. User accrual is OSR-only from the halving reserve.
2. Node Family Economics
Loading…
3. Fees
Mint burn
70%
of OSR cost
Mint treasury
30%
of OSR cost
Mint ETH fee
0.0002 ETH
flat, per mint
Claim fee
2%
on gross claim · 1h cooldown
Compound upgrade
500 → 60k OSR
L2→L10 ladder · +0.00001 ETH · 12h cooldown
Expedite
0.005 ETH
skip the compound cooldown
Crate cost
500 → 1625 OSR
by compound level · +0.00002 ETH fee
Upgrade & crate split
50/30/20
burn / reserve / treasury
4. Reward Flow

Launch: 1B OSR minted by Flap to the bonding curve
(fixed supply — the token contract has no mint function)
│
┌────────┴────────┐
▼ ▼
700M public float 300M acquired at genesis
(70%, trades freely) (30%, funds all rewards)
│
┌─────────────────────────────┐│
│ OSR Emission Reserve │◀┘
│ 300M OSR │◀── reserve split on in-game
└──────────────┬──────────────┘ spends tops the pool back up
│ halving curve E(t) = 248.0 × 0.5^(t/7d)
▼
Each user's per-second rate:
share = min(userGP / totalGP, 30%) × welcomeBoost(elapsed)
│
▼
┌─────────────────────────┐ ┌──────────────────────────┐
│ Oil Rig claims │ │ Mining Shaft claims │
│ pay OSR │ │ pay OSR (compoundable) │
└─────────────────────────┘ └──────────────────────────┘
Separately: Protocol ETH revenue (ERC-20 tax 2% + LP 2%) → treasury ops
(XOMX/CVXX swap path is a legacy ops-side flow, not a user-rewards path)5. Halving Emission Model
Global OSR emission follows a Bitcoin-style halving curve. Starting at E₀ = 248.0 OSR/sec at genesis, the rate halves every 7 days until the reserve is fully paid out.
E(t) = E₀ × 0.5 ^ (t / 7 days) Day 0 : 248.0 OSR/sec (21.4M/day) Day 7 : 124.0 OSR/sec (10.7M/day, 50% of lifetime emitted) Day 14 : 62.0 OSR/sec (5.36M/day, 75%) Day 30 : 12.7 OSR/sec (1.10M/day, 95%) Day 90 : ~0 (emission effectively extinct)
Lifetime emission = 300M OSR — exactly the 30% of the 1B supply held in the Emission Reserve. The remaining 700M (70%) is public float that trades on the Flap curve. Supply is fixed at launch — the token contract has no mint function, so no new OSR can ever be created.
Each user earns a proportional share of each second’s emission:
user_rate = min(user_gp / total_network_gp, 30%) × E(t) × welcome_boost user_gp = Σ componentMult for each node (Formula D: base × Π rarityBoost)
A 30% per-user share cap prevents lucky-in-thin-network lottery wins, keeping the experience fair across network sizes.
5b. Welcome Boost
New users receive an 8× share multiplier that linearly decays to 1× over their first 72 hours. This is critical for latecomers joining mid-cycle when the halving curve has already decayed.
boost(elapsed) = 1 + 7 × max(0, 1 − elapsed / 72h) Hour 0 : 8.00× Hour 24 : 5.67× Hour 48 : 3.33× Hour 72 : 1.00× (boost expired)
The boost applies from your first mint. Separately, the one-time welcome stipend unlocks only after reaching Compound L4 — that gate is what stops $100 × 10 alt-wallets from draining the welcome allocation.
5c. Emission Throttle (safety layer)
Orthogonal to the halving, a runway-based throttle factor f ∈ [0, 1] protects against pathological drain on legacy flat-rate families (not used for OSR under the halving model, but retained for any future secondary-asset families):
runwayDays = reserveBalance / unconstrainedDailyBurn runway ≥ 45d → f = 1.0 (healthy) 14d → 45d → f 0.7 → 1.0 (gentle) 7d → 14d → f 0.3 → 0.7 (notable) 3d → 7d → f 0 → 0.3 (emergency) ≤ 3d → f = 0 (halted)
Under the halving model for OSR, the emission reserve is pre-minted and cannot deplete beyond lifetime emission, so f = 1.0 effectively always. When paused by admin, f is forced to 0 across all families.
6. Compound Levels
Progression is wallet-wide. Each compound level unlocks more node slots per family, a higher daily crate limit, and pricier crates. Upgrades cost OSR (split 50/30/20 burn / reserve / treasury) + 0.00001 ETH, on a 12h cooldown (0.005 ETH expedite skips it). Mining Shafts get bonus node slots on top: +2 at L5, +3 at L7, +4 at L9. Rarity pools unlock by level too — Legendary at L4, Mythic at L6, Divine at L8.
| Level | Upgrade cost | Max nodes / family | Shaft bonus | Crates / day | Crate cost |
|---|---|---|---|---|---|
| L1 | — | 2 | — | 3 | 500 OSR |
| L2 | 500 OSR | 3 | — | 4 | 625 OSR |
| L3 | 1,000 OSR | 3 | — | 5 | 750 OSR |
| L4 | 2,000 OSR | 4 | — | 6 | 875 OSR |
| L5 | 4,000 OSR | 4 | +2 shafts | 8 | 1,000 OSR |
| L6 | 8,000 OSR | 5 | +2 shafts | 10 | 1,125 OSR |
| L7 | 15,000 OSR | 5 | +3 shafts | 12 | 1,250 OSR |
| L8 | 25,000 OSR | 6 | +3 shafts | 15 | 1,375 OSR |
| L9 | 40,000 OSR | 7 | +4 shafts | 18 | 1,500 OSR |
| L10 | 60,000 OSR | 8 | +4 shafts | 20 | 1,625 OSR |
7. Aura Tier Palette
Each node’s emissive material color shifts with its level, making progression visible at a glance in the 3D scene.
8. Live Protocol State
Loading live state…
See Reserve Vault for the full event feed and Market Room for aggregated metrics.
9. Source of Truth
All constants on this page are imported from @osr/types and @osr/game-core, and the live family config comes from GET /api/nodes/families, so this page can never drift from what the backend actually enforces. Admin config changes appear here on the next reload.
