Tokenomics
Live economic model for PETRO, Oil Rigs, and Mining Shafts
1. The Economic Loop
- Users burn PETRO + pay an ETH fee to deploy virtual nodes (Oil Rigs or Mining Shafts).
- Every mint burns 70% of the PETRO cost to the burn wallet, routing the other 30% into the treasury wallet. Compound upgrades and crates split their PETRO cost 50/30/20 burn / reserve / treasury.
- A halving emission curve (E₀ = 20.7 PETRO/sec, halves every 14 days) distributes PETRO from the 50M reserve. The rate is derived from the reserve rather than fixed, so the schedule spends it exactly and can never promise PETRO 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 $PETRO per second out of that reserve. Progression is wallet-wide: compound upgrades (PETRO + 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 PETRO-only from the halving reserve.
2. Node Family Economics
Loading…
3. Fees
Mint burn
70%
of PETRO cost
Mint treasury
30%
of PETRO cost
Mint ETH fee
0.0002 ETH
flat, per mint
Claim fee
2%
on gross claim · 1h cooldown
Compound upgrade
500 → 60k PETRO
L2→L10 ladder · +0.00001 ETH · 12h cooldown
Expedite
0.005 ETH
skip the compound cooldown
Crate cost
$0 of PETRO
priced in USD, so it does not drift with the token · +0.00002 ETH fee
Upgrade & crate split
50/30/20
burn / reserve / treasury
4. Reward Flow
Launch: 1B PETRO minted by Flap to the bonding curve
(fixed supply — the token contract has no mint function)
│
┌────────┴────────┐
▼ ▼
950M public float 50M acquired at genesis
(95%, trades freely) (5%, funds all rewards)
│
┌─────────────────────────────┐│
│ PETRO Emission Reserve │◀┘
│ 50M PETRO │◀── reserve split on in-game
└──────────────┬──────────────┘ spends tops the pool back up
│ halving curve E(t) = 20.7 × 0.5^(t/14d)
▼
Each user's per-second rate:
share = min(userGP / totalGP, 30%) × welcomeBoost(elapsed)
│
▼
┌─────────────────────────┐ ┌──────────────────────────┐
│ Oil Rig claims │ │ Mining Shaft claims │
│ pay PETRO │ │ pay PETRO (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 PETRO emission follows a Bitcoin-style halving curve. Starting at E₀ = 20.7 PETRO/sec at genesis, the rate halves every 14 days until the reserve is fully paid out.
E(t) = E₀ × 0.5 ^ (t / 14 days) Day 0 : 20.7 PETRO/sec (1.8M/day) Day 14 : 10.3 PETRO/sec (892,857/day, 50% of lifetime emitted) Day 28 : 5.2 PETRO/sec (446,429/day, 75% of lifetime emitted) Day 42 : 2.6 PETRO/sec (223,214/day, 88% of lifetime emitted) Day 93 : ~0 (99% emitted — tail is negligible)
Lifetime emission = 50M PETRO — exactly the 5% of the 1B supply held in the Emission Reserve. The remaining 950M (95%) is public float that trades on the Flap curve. Supply is fixed at launch — the token contract has no mint function, so no new PETRO 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 PETRO 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 PETRO, 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 PETRO (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 |
|---|---|---|---|
| L1 | — | 2 | — |
| L2 | 1,000 PETRO | 3 | — |
| L3 | 2,000 PETRO | 3 | — |
| L4 | 4,000 PETRO | 4 | — |
| L5 | 8,000 PETRO | 4 | +2 shafts |
| L6 | 16,000 PETRO | 5 | +2 shafts |
| L7 | 30,000 PETRO | 5 | +3 shafts |
| L8 | 50,000 PETRO | 6 | +3 shafts |
| L9 | 80,000 PETRO | 7 | +4 shafts |
| L10 | 120,000 PETRO | 8 | +4 shafts |
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 @petro/types and @petro/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.
