Whitepaper · $RIFT economy and galaxy · Edition 3.0 · 24 Oct 2026

VOIDRIFT whitepaper

One fixed-supply token runs missions, the element market, fuel, base upgrades and the weekly leaderboard. Edition 3.0 replaces the short ROI target with a long-term earnings model: a 55% reward pool that releases 20% less every year, a lifetime cap on every ship, chest revenue that buys RIFT back, and a seven-sector galaxy to explore. Every figure is traced to the game constants, the contracts or the v4 simulation, and anything not built yet is marked as planned.

1BFixed $RIFT supply
55%Reward pool · 550M in RewardReserve
110MYear-1 emission · −20% a year
100–140 dMedian payback target · simulated, not promised
40%Chest revenue buys back RIFT · half burned
3–5%Element seller fee · half burned
Status key Implementedin the engine, the contracts or the game server: playable in the demo or deployable to a testnet In progressserver or interface work under way Plannedapproved, not built yet Design / retiringnot in code, or being replaced
Nothing is on any mainnet yet. All contracts are pre-audit; the code deploys to Base Sepolia today and the planned network is Avalanche C-Chain. Payback figures are simulation results under stated assumptions, not promises, and the RIFT price used here ($0.05) is a launch reference, not a forecast. This page is not financial advice.

What changed in edition 3.0

Source · docs/EKONOMI-VE-GALAKSI-TASARIMI.md (design v1.2, 24 Oct 2026) · chip colour = status
  1. UpdAllocation: 55% reward pool locked in RewardReserve, team 6% in TeamVesting (90-day cliff, then 8 quarterly tranches). The deploy script refuses to leave any pool on the deployer key. 01 »
  2. UpdEmission: B(y) = 110M × 0.8y−1, split 80 / 15 / 5. Each UTC day pays every claim at one rate, fixed from a demand forecast at the day's first claim; an overshoot is repaid by the next days and a breaker stops any day at 1.5 × its cap. No 0.25 floor, and the 72 h claim window starts when the mission is back. 02 »
  3. UpdRewards: BASE_UNIT 0.0056 → 0.00105 on the $100 fleet basis. Repairs, fuel packs and the Workshop fee fall to 40% of their old size and are fixed in USD × L. 03 »
  4. UpdReactor core: 1.5 × basis (was 2 ×), recharges cost 0.35 / 0.70 / 1.05 × basis and stop after 3, so a ship earns at most 6 × basis and then retires. Basis = the price paid; a free-chest ship gets 30%. 03 »
  5. NewLong-term earnings model: the 7–21-day ROI target is gone. Target: median payback 100–140 days (simulated 129), p10 ≥ 60. In the simulation 43% of fleets pay back within a year. 04 »
  6. NewContracts: RewardReserve, TeamVesting, RiftBuyback (per-call and daily caps, an admin price floor). ChestMinter quotes now sign the payment method, which closes a replay that made every chest free. The GUARDIAN key can pause RiftVault. 05 »
  7. NewChest revenue: 40% RIFT buyback (half burned, half to the reward reserve), 15% liquidity, 30% development, 15% marketing. Replaces 40 / 20 / 15 / 15 / 10. 15 »
  8. NewElement market in RIFT: seller fee 3% raw, 4% rare, 5% crafted, split 50% burn / 30% leaderboard / 20% treasury. The buyer sees the plain price. Market buys are locked for 7 days. 12 »
  9. NewGalaxy: 7 sectors and 40 locations, opened by Navigation research. Far sectors cost 10–30% more fuel. They pay about the same per flight hour, net of fuel. 07 »
  10. NewElements and recipes: Cryo Ice, Helium-3 and Plasma Shard; Repair Kit, Fusion Cell and Plasma Charge. The Fuel Cell recipe is cheaper (100 Crystal + 80 Ore). 06 »
  11. UpdWithdrawals: RIFT from market sales in the last 7 days leaves at the 12% tier, so wash trades between two accounts no longer beat the fee. 13 »
  12. UpdLeaderboard pool: 15% of emission, paid pro rata to gameplay emission, plus 30% of element fees. The 10% share of mint revenue is gone. 16 »
  13. UpdPayments: chests keep USD prices; native AVAX becomes the default (planned, PAY_AVAX is reserved in the contract), USDC stays optional. Ships and crew trade in AVAX from a wallet; elements trade in RIFT. 05 »
  14. UpdServer integration: the emission schedule, element fees, the market lock, fresh-proceeds seasoning, location launches and the payment method in chest quotes are implemented in the game server. The keeper jobs (reserve release, buybacks) are in place behind flags and off by default until they are switched on, on Fuji first; buybacks stay inside the contract's caps and floor and skip a quote far below the recent median. 18 »
Token · RiftToken (ERC-20, Burnable, Permit)

Supply & allocation

Total supply is 1,000,000,000 $RIFT (MAX_SUPPLY), minted once when RiftToken is deployed. The deploy script splits it into eight pools in the same run: 55% to RewardReserve, 6% to TeamVesting and the rest to the address set for each pool. The token has no mint function.

Implemented · split in deploy.cjsRewardReserve, TeamVestingVesting contracts for the other 39%

Allocation of 1B $RIFT

final split · design §1.1
PoolShareTokensPurposeLock and releaseHeld by
Reward pool55%550MMission rewards, weekly leaderboard, eventsB(y) = 110M × 0.8y−1, linear inside each year; never runs dry (02)RewardReserve In code
Liquidity10%100MRIFT/AVAX pool on a DEXLP tokens locked 12 monthsaddress set at deploy
Ecosystem & partnerships8%80MGrants, creators, guild partnerships12 months linearvesting contract Planned
Treasury (DAO)8%80MOperations and governed spending6-month lock, then 36 months linearvesting contract Planned
Early backers8%80MEarly supporters6-month lock, then 18 months linearvesting contract Planned
Team6%60MCore team90-day cliff, then 8 tranches of 12.5% (7.5M) every 90 days, days 180–810TeamVesting In code
Community & seasons3%30MCommunity allocationBy seasonaddress set at deploy
Public sale2%20MPublic sale25% at TGE, the rest 6 months linearaddress set at deploy

Outside local test networks, deploy.cjs refuses to run if any pool address or admin role would stay on the deployer key, and it checks that the eight shares add up to exactly 100% and to the full supply. Today only the reward pool and the team share are locked by a contract; the vesting contracts for the other 39% are not written yet. Open owner decision: if the early-backer or public-sale round does not happen, that share moves to the treasury or the ecosystem pool.

Source · design §1.1, §5 · contracts/RiftToken.sol (MAX_SUPPLY 1,000,000,000) · RewardReserve.sol · TeamVesting.sol · scripts/deploy.cjs (allocation buckets, resolveConfig)

TeamVesting · 60M

M RIFT vested · days after TGE
30M 60M 0 0 180 360 540 720 900 cliff day 810 · 60M

Nothing unlocks during the 90-day cliff after TGE. After it, a 12.5% tranche unlocks at the end of each 90-day quarter: the first on day 180, the last on day 810 (27 months in all). The beneficiary is fixed at deploy (the team multisig, which can rotate its own signers), and anyone can call release() because it always pays the beneficiary.

RewardReserve · 550M

how the pool is released
unlocked(t) = budgets of past years + this year's × share of it gone B(y) = 110M × 0.8^(y−1) release ≤ unlocked − released, into RiftVault (RELEASER)
  • The integer form is exact to the wei for the first 26 years; Σ B(y) is exactly 550M, so the pool only thins out.
  • The game server's keeper releases what the schedule has unlocked, at most once a day. Emission to players still goes through the daily cap (02), so the reserve in RiftVault holds what has been released but not yet earned.
  • No role can move RIFT out faster than the schedule. The schedule and its start cannot be changed, and there is no sweep or pause; RIFT sent here beyond what the schedule still owes can never leave.
  • The admin (a multisig, with a 24–48 h timelock planned) can point releases at any non-zero address (it is meant for a redeployed RiftVault) and can grant the RELEASER role to anyone, itself included. So a compromised admin could take everything unlocked and not yet released, and every later release as it unlocks.
  • The schedule does not bound what a compromised admin can take. The same admin holds RiftVault's admin role: payFromReserve sends any amount out of RiftVault, and the admin can also grant itself the signer role and raise the withdrawal caps. The keeper moves everything unlocked into RiftVault each day, so daily releases do not shrink the exposure; they move it into RiftVault, which holds the released but unearned rewards (about 60M after year 1 on the base path) and the RIFT behind every player's vault balance. Putting RiftVault's admin behind the timelock first, or releasing only what has been earned, is an open owner decision.
Source · RewardReserve.sol (unlockedAt, release, setRecipient, trust note) · RiftVault.sol (payFromReserve, setCaps) · server/src/jobs.ts (keeper release)
Token · emission from the reward pool

Emission schedule

The reward pool releases a yearly budget that shrinks by 20% every year: B(y) = 110M × 0.8y−1. The budgets add up to exactly 550M over all years: the schedule has unlocked 491M after ten years, and the rest keeps thinning out toward the 550M limit. Each year is split 80% gameplay, 15% leaderboard and 5% events.

Implemented · engine EMISSION, RewardReserve, serverKeeper release on Fuji · planned

Yearly budget, years 1–10

budget, M RIFT
Gameplay 80%Leaderboard 15%Events 5%
40M 80M 120M 0 110 Y1 88 Y2 70.4 Y3 56.3 Y4 45.1 Y5 36 Y6 28.8 Y7 23.1 Y8 18.5 Y9 14.8 Y10

Year 1 in numbers

Gameplay cap
241,096

RIFT per day (88M ÷ 365)

Leaderboard
≤ 317,308

RIFT per week (16.5M ÷ 52)

Events
5.5M

RIFT for the year

Fleets at full rate
~5,700

balanced fleets at $0.05 (year 2 ~4,500, year 3 ~3,600)

Daily cap, one rate a day, no floor. Every claim charged to a UTC day is paid at that day's coefficient, fixed from a demand forecast when the day's first claim arrives, so claiming early or late never changes the rate. An overshoot is repaid by the next days, and a breaker stops any day at 1.5 × its cap (below). The old soft cap (rate falling to 0.25 and never below) is gone, so emission no longer grows with the player count.
72 h claim window. The window opens when the whole mission is back (the last autopilot run). Claimed inside it, each run counts against the day it returned, at that day's coefficient. Claimed later, every run counts against the claim day, at the claim day's coefficient. That stops players from timing claims around the cap; in the simulation an honest player's longest wait is 8 hours.

One rate per day

engine fixDayCoef · server emissionCoefs
rate(D) = min(1, max(0, cap − debt) ÷ forecast) forecast = 1.1 × largest uncut demand, 3 days before debt = overshoot, last 30 days debt(d+1) = max(0, debt(d) + emitted(d) − cap(d)) breaker a claim past 1.5 × cap is paid the capacity left
  • Fixed once. The first claim charged to a day fixes its rate and stores it with the debt and forecast it came from; every later claim of that day reads it back. Two players who claim before and after the cap is crossed get the same rate; under the old first-come rule the later one got nothing.
  • Overshoot is debt. When demand beats the forecast, a day can emit more than its cap. The excess lowers the next days' rates until it is paid back, so emission stays within the caps over 30 days. A day under its cap pays the debt off with what it left unspent.
  • Shortfall is not carried. The forecast is 1.1 × the recent peak, so a day where the cap binds pays at most cap ÷ 1.1 (about 0.91 × the cap at steady demand), and what it leaves unspent never moves to a later day. If fleets react to the same day's rate, a forecast built from realised demand can cycle and pay well below the cap.
  • No forecast yet (no demand on the 3 days before): the day pays in full while the debt leaves any of its cap, and nothing once the debt has taken all of it.
  • Late claims. When day D is fixed, D−1 … D−5 can still receive claims: the 72 h window counts from the last run's return, and a T7 autopilot's first run returns 48 h before that (D−3 for a single-run mission). Their late emission enters the debt of the next day that is fixed: a day late, never lost.

Worked example

year 1 · cap 241k RIFT a day · k RIFT
DayDD+1D+2
Forecast330k440k484k
Debt051k0
Rate0.730.430.50
Demand400k440k300k
Emitted292k190k149k

Demand is the uncut reward charged to the day (what it would pay at rate 1). The three days before D peaked at 300,000 and stayed under the cap. D's demand beats its forecast, so D emits 51,142 over the cap; D+1 carries that as debt and pays it back. The forecast keeps the largest demand of the last three days, so the rate stays low until the spike leaves that window.

Emergency breaker. The breaker only trips in an extreme spike. In year 1 it sits at 1.5 × 241,096 = 361,644 RIFT. On a day at rate 1 that has already emitted 300,000, a claim worth 100,000 is paid at 0.62 (the 61,644 left), and later claims that day get nothing. The server logs a warning, and the day's rate stays as it was fixed.

Live rate. GET /emission/today returns the day's cap, emitted RIFT, demand, rate (null until the first claim fixes it), debt and forecast. The game shows the rate whenever it is below 100%: in Fleet Telemetry, on the claim card and in each claim result.

Schedule

RewardReserve · engine yearBudget · M RIFT, RIFT
YearBudgetGameplay / dayLB / weekStill locked
1110.0M241,096317,30880.0%
288.0M192,877253,84664.0%
370.4M154,301203,07751.2%
456.3M123,441162,46241.0%
545.1M98,753129,96932.8%
636.0M79,002103,97526.2%
728.8M63,20283,18021.0%
823.1M50,56166,54416.8%
918.5M40,44953,23513.4%
1014.8M32,35942,58810.7%
All years550.0M→ 0%

Years are 365 days counted from TGE; "still locked" is the share of the 550M the schedule has not unlocked by the end of the year (unlocked by year 10: 490.9M). Events get 5% of each budget (5.5M in year 1). Leaderboard and events pay out pro rata to the gameplay RIFT actually emitted (15/80 and 5/80 of it), up to their budget; what they do not pay stays in the pool (16).

The pool over 10 years

schedule floor vs simulation
Simulated pool, base scenarioFloor: every budget paid in full, nothing flows back
200M 400M 600M TGE Y2 Y4 Y6 Y8 Y10 44% 11% 550M reward pool

The budget is a ceiling, not a target. In the v4 population model the pool still holds 44% after 10 years (243M) and never empties in 20 years: fleets earn less than the budget while the game is small, the daily cap holds later, and half of every buyback, half of RIFT chest payments, the reserve share of repairs and half of each withdrawal fee flow back. At the year-1 rate the pool would still last at least 6.7 years; the yearly decay is what carries it past ten.

Source · design §1.2 · constants.ts (EMISSION) · engine.ts (yearBudget, gameplayDailyCap, leaderboardWeeklyCap, EMISSION_COEF, fixDayCoef, dayCoefficient, emissionDebt, emissionForecast, breakerCoef, emissionCoefOf, emissionDay, claimCoef, proRataPayout) · server/src/store.ts (emissionCoefs, emissionOfDay) · routes/game.ts (GET /emission/today) · migrations/004_economy_v4.sql (emission_days coef, debt, forecast) · RewardReserve.sol · tools/roi_results_v4.md (years table, runway, finding 4)
Token · mission rewards and the reactor core

How rewards work

Every ship earns on the same $100 fleet basis; what changes the reward is how strong the team is and how risky the map is. What a ship cost decides only its reactor core: how much it can earn before a recharge, and how much it can earn in its life. The Planet Base does not change this formula; its research only shortens flights, trims damage, improves autopilot and opens sectors.

Implemented · engine

Locked rate L

Every NFT stores a locked rate at mint: L = 1 / TWAP₇(RIFT/USD), so at the $0.05 launch reference L = 20 RIFT per $1. Its rewards, core and recharge prices use that rate for life, so payback is measured in the RIFT that its basis bought at mint, whatever the price does later. Until a DEX TWAP is wired, the server prices quotes at a fixed $0.05.

Safety bands: L moves at most ±15% per week and is capped at 4× the launch rate. If the price falls past that cap, new mints simply pay back more slowly: prices are never auto-discounted, and mints can be paused if needed.

Reward and power

reward = R × 0.00105 × $100 × L × power
power = (0.55 × ship + 0.45 × avg crew) × crew size × (1 + 2% per matching role) × hull model

BASE_UNIT 0.00105 (was 0.0056), tuned by the v4 simulation. At L = 20 a success pays R × 2.1 RIFT at power 1.0. Crew size: 1 crew ×0.60 · 2 ×0.85 · 3 ×1.00 · full 2-slot ship ×0.95. Rarity power: Common 0.90 · Uncommon 1.00 · Rare 1.08 · Epic 1.18 · Legendary 1.32 · Mythic 1.55. Inside a rarity, hull models trade power for luck: ×1.04 on the hauler model to ×0.96 on the luckiest one. Autopilot repeats pay 80% (90% with Autopilot+).

Success odds: the map sets the range, the team sets the result

success = map base + (map max − map base) × (Team Score + Supplies − hull penalty) / 100 + location shift

Team Score (0–80) = ship luck (hull model, 4–30) + crew luck (rolled at mint, 2–14 each, scaled to 3 seats) + role synergy (0–8). Supplies (0–20) = fed crew +6 · Nav Chart +4 · Targeting Array +6 · Shield Core +7 · Plasma Charge +8 · Void Stabilizer +10 (max 2 boosters). A hull below 30 costs 10 points. A galaxy location adds its own shift (−0.04 to +0.02, 0 at home), and the result is kept between 5% and 98%.

Mission (home location)HoursReward*Map baseAverage teamMap maxEP
T1 Patrol12.170%80%96%1
T2 Asteroid Mining25.2563%74%92%3
T3 Convoy Escort412.656%68%87%8
T4 Pirate Base Raid62149%61%80%18
T5 Deep Space Survey831.542%54%72%30
T6 Event Horizon Run1250.436%46%62%50
T7 Leviathan Hunt2412630%38%50%140

*RIFT for a successful run of a fleet with power 1.0 at L = 20. "Average team" = the average Starter Chest team (Team Score 28.2) with fed crew and a Nav Chart. Team Score across 20,000 simulated Starter Chests: weakest valid team 6 · unlucky 10% 20 · average 28.2 · lucky 10% 37.5 · perfect 80.

Success stack · T4 example (average team, fed crew, Nav Chart)

Map base 49% · Team Score 28 → +8.7 · supplies 10 → +3.1 = 61%. A perfect team with full supplies reaches the map max of 80%. With an average team every home map pays about the same per flight hour (1.7–2.1 RIFT at power 1.0); a perfect team earns clearly more on the middle and risky maps (2.6–2.8 RIFT per hour on T3–T7) and far more EP.

Source · packages/shared/src/constants.ts (TIERS, ECONOMY.BASE_UNIT, ODDS_FLOOR/CEIL, RARITIES, BOOSTERS) · engine.ts (rewardOf, odds) · tools/roi_results.json (team_score) · GDD §5.3, §6.1–6.2 · server/src/chain.ts (currentLockedRate)

Reactor core: a lifetime cap on every ship

basis = what was paid for the ship
core = 1.5 × basis × L recharge = 0.35 × basis × L × (1+n) n = 0, 1, 2 · burned adds 1.5 × basis × L lifetime = 6 × basis × L (1.5 × 4) then = retired, never launches

The basis is the USD price paid for the ship: Starter $100, Ship Mint $50, each Commander ship $100. A ship from a free chest (Golden Key) gets 30% of the nominal basis. The basis sizes only the core and the recharges; the reward is always on $100 (tying it to the basis meant Ship Mint and free-chest ships could never pay back).

Ship basisCoreRecharges 1 / 2 / 3Lifetime
Starter, Commander ship · $1003,000700 / 1,400 / 2,10012,000
Ship Mint · $501,500350 / 700 / 1,0506,000
Free-chest ship · $30900210 / 420 / 6303,600

RIFT at L = 20. Today's 2× core with unlimited recharges at 35% is replaced. A recharge pays only while the ship's net still covers it: in the simulation a balanced Starter fleet recharges 1.53 times on average (none 13% · one 22% · two 63% · three 2%) and grosses 3.76 × its basis over about 177 active days.

Source · design §1.5 · constants.ts (CORE_CAP_MULT, CORE_RECHARGE_COST, CORE_MAX_RECHARGES, FREE_SHIP_BASIS, FLEET_BASIS_USD) · engine.ts (coreCapOf, rechargeOffer, coreLifetimeCap, isRetired, chestShipBasisUsd) · roi_results_v4.md (one fleet's life)
Token · simulation, not a promise

Long-term earnings model

The 7–21-day ROI target is gone. Payback is the day a fleet's net withdrawable RIFT reaches what its basis bought at mint, after repairs, fuel, crafting, recharges and the withdrawal fee. The design target: a median of 100–140 days for a typical player (balanced, 3 check-ins a day), never faster than 60 days at p10, with the spread up to day 365 published. Earnings fall year by year as emission decays.

economy_sim v4 · 1,500 runs per profileSimulation results, not promises

Simulated payback by product

days · balanced player, 3 check-ins a day · coefficient 1 · no planet base
p10 → p50 (fastest 10% → median)60-day p10 floor (dashed)100–140-day median target
paid ≤ 365 d Starter 89 → 129 d 66% Ship Mint 42.3 → 65 d 66% Commander 105 → 191 d 57% Free chest 24.7 → 39.7 d 65% 0 50 100 150 200
Product (ship basis)p10 / p50Paid ≤ 365 dLowest p10Paid, all
Starter ($100)89.0 / 129.066%89.043%
Ship Mint ($50)42.3 / 65.066%42.343%
Commander ($300, 3 ships)105.0 / 191.057%105.031%
Free chest ($30 basis)24.7 / 39.765%23.443%

Days. "Paid, all profiles" weights the play styles (cautious 30%, balanced 50%, bold 20%) and check-ins (4 a day 25%, 3 a day 50%, 2 a day 25%). A Ship Mint or free-chest fleet earns and spends what a Starter fleet does, but its payback target is its own smaller basis, so it gets there sooner. A Commander's 3 fleets share one tank and the Daily Ops fuel, so each buys more fuel. "Lowest p10" is the fastest profile's p10.

Below the floor, open owner decision. Ship Mint (lowest p10 42.3 days) and free-chest fleets (23.4) pay back faster than the 60-day floor. The smallest constant change that restores it is a one-ship basis of $69 (lowest p10 60.0): a $69 Ship Mint, or a free-ship basis of 69% instead of 30%, which also lifts a free ship's lifetime cap from $180 to $414. Starter (89.0) and Commander (105.0) hold the floor.

Starter by play style

p10 · p50 · paid by day 365
Profilep10p50Paid
Balanced (T1–T5), 3 check-ins89.0129.066%
Balanced, 4 check-ins91.7136.056%
Bold (T1–T7), 2 check-ins94.9never36%
Cautious (T1–T3), 4 check-ins124.3never29%
Cautious, 3 check-ins150.3never28%
Balanced or cautious, 2 check-insnevernever8%

Bold with 3 or 4 check-ins plays like balanced (same results). "never": fewer than 10% (p10) or 50% (p50) of fleets had paid back by day 365. Under the lifetime rules a fleet pays back only while its running costs stay under about 54% of its gross, so slow and cautious players mostly don't within a year.

By team quality

balanced, 3 check-ins · Starter
Fleetp10p50Paid
All Common, 1 matching role134.3155.772%
Uncommon average98.3113.7100%
Epic, every role matching41.752.3100%
Mythic, maxed (theoretical)23.027.0100%

Rarity still pays: top-rarity fleets pay back fast. Whether rarity power should be compressed is an open owner decision. Ship class matters too, through its fuel use: an Uncommon Spark pays back at a median of 110.7 days, while Bastion and Void Anchor fleets do not pay back in a year.

How earnings evolve

balanced Starter, by month bought
25% 50% 75% 100% 0 65% Month 1 coef 1.00 65% Month 6 coef 0.94 50% Month 12 coef 0.80 20% Month 18 coef 0.68 7% Month 24 coef 0.64

Paid back within the first year, under the base growth path. Early fleets fly at coefficient 1. When the player base grows past what the shrinking cap carries at full rate (about 5,700 fleets in year 1, 4,500 in year 2, 3,600 in year 3 at $0.05), the coefficient falls toward ~0.6 and later fleets pay back more slowly. That keeps emission independent of growth. These bars assume a perfect demand forecast; the server's rule pays a binding day at most cap ÷ 1.1, so in sensitivity runs fewer late fleets pay back (month 18: about 15–17%) and the pool lasts longer.

One fleet's life

balanced Starter, 3 check-ins, coefficient 1
Gross
43 / day

RIFT ($2.13) at L = 20

Running costs
48%

repairs 30 · fuel 11 · crafting 7

Recharges
21%

of gross, burned (1.53 per fleet)

Lifetime net
$119

over ~177 active days

A fleet keeps 52% of its gross before recharges. Lifetime gross is 3.76 × basis on average, well under the 6 × cap, because most fleets stop recharging once a recharge no longer pays. Costs as a share of gross are charted in 11.

Design targets and what the simulation says

design §2 · two readings of planet-base adoption
TargetNo planet-base feesEvery account pays base fees
Balanced, 3 check-ins: median payback 100–140 daysMET · 129.0MISSED · 246.3
p10 ≥ 60 days in every profile (Starter)MET · 89.0MET · 110.7
Sinks ÷ gameplay emission ≥ 0.6 at month 3 (mean of months 2–4)MET · 0.655MET · 0.803
Sinks ÷ gameplay emission ≥ 0.8 at month 6 (mean of months 5–7)MISSED · 0.683MISSED · 0.787
Reward pool lasts ≥ 10 yearsMET · never emptiesMET · never empties
Buybacks ≥ half of the RIFT withdrawn (year-1 fleets)MET · 0.629MET · 0.846

5 of 6 targets with no base fees, 4 of 6 with them. A deliberate trade-off: pushing sinks to 0.8 by month 6 pushes running costs to the payback line, and then fewer than half of the fleets pay back within a year. The sink ratio does reach the target later, as the cap binds: about 0.9–1.1 from month 19 (11). How many accounts will build a planet base, and which target gives, is the owner's call.

Not modelled: the planet base's benefits (repair discount, bigger tank, research), far sectors and crafted fuel (the simulation flies the home sector only), chest bonus drops, and RIFT price moves (fixed at $0.05; bull and bear paths are scenarios). Player numbers follow an assumed path (500, 2,000 and 10,000 daily players). Real outcomes will differ.
Source · design §1.5, §2 · tools/roi_results_v4.md (§2 targets, payback tables by profile, product and fleet, sensitivities, one fleet's life, bought later, findings 1, 4, 5, 7) · tools/economy_sim.py --v4
Economy · contracts and payments

What is on-chain

Ships, crew and RIFT are tokens, and the reward pool, the team share and the chest buyback each live in their own contract. Tradable items move on-chain in Phase 3. Fast game state (missions, buildings, research, fuel, vault balances) stays on the authoritative game server. The contracts are written and tested but pre-audit; they deploy to Base Sepolia today, and the planned network is Avalanche C-Chain, where wallet payments use native AVAX.

Contracts written · pre-auditItems · Phase 3AVAX chest path · planned

Contracts

contracts/contracts/*.sol
ContractStandardWhat it doesStatus
RiftTokenERC-20 · Burnable · Permit1B RIFT minted once and split into the eight pools by the deploy script. No mint function.Implemented
RewardReserveAccessControlHolds the 550M reward pool. The keeper (RELEASER) moves what the B(y) schedule has unlocked into RiftVault; nothing leaves faster than the schedule, which cannot be changed. The admin can point releases at any address and grant RELEASER to anyone, so a compromised admin could take what is unlocked and every later release. Releases land in RiftVault, where the same admin's payFromReserve has no limit (01).New
TeamVesting—Holds the team's 60M: 90-day cliff, then 8 tranches of 12.5% at days 180 to 810. Fixed beneficiary; anyone can trigger release().New
RiftBuybackAccessControl · PausableReceives 40% of chest revenue. The keeper swaps it for RIFT on an admin-set route, within a per-call cap, a cap per UTC day and an admin price floor under its minimum output, before a deadline; then it burns half and sends half to RiftVault (15).New
RiftVault—Holds in-game RIFT: deposits, EIP-712 withdrawal vouchers, batched burns with burnFromReserve. The GUARDIAN can pause deposits and withdrawals; only the admin unpauses. The admin's payFromReserve moves any amount out with no cap, and RiftVault receives every daily release, so the admin key is fully trusted here (01).Implemented
ChestMinterChainlink VRF v2.5USD-priced chests. The server-signed MintQuote now carries payMethod: USDC 0 · RIFT 1 · AVAX 2 (reserved, rejected until the AVAX path ships) · FREE 3. Revenue split 40 / 15 / 30 / 15, set at deploy.Upd AVAX planned
VoidShips, VoidCrewERC-721 · ERC-2981 royalty 5%Ships and crew; the locked rate is stored at mint.Implemented
NftMarketEscrow, priced in RIFTToday's NFT market, 5% fee. Replaced by VoidMarket.Retiring
VoidItems, ItemBridge, VoidMarketERC-1155 · EIP-712 vouchers · marketItems on-chain, export and import, one market for ships, crew and items (12, 14).Planned · P3
Free-chest fix. A USDC quote used to be signed with a RIFT amount of 0 and no payment method, so the same quote could be sent as a RIFT purchase and every chest was free. The quote now signs payMethod, and buy() checks it against the buyer's own flag and the amount. A Golden Key redemption needs a quote signed as PAY_FREE.

What each thing is paid in

AVAX payment model · owner decision, 23 Oct 2026
PurchasePriced inPaid in
ChestsUSDNative AVAX by default Planned, at a short-lived server quote that ChestMinter checks against Chainlink AVAX/USD · USDC (optional) and RIFT at −10% Live
Ships and crew, from a walletAVAXAVAX on VoidMarket Planned; today's NftMarket is priced in RIFT
Elements, materials, itemsRIFTVault RIFT in the game; on-chain item listings are also priced in RIFT
Repairs, fuel, crafting, base, rechargesUSD × LVault RIFT, mostly burned (11)

VoidItems catalogue

tokenId ranges
ItemstokenIdTrade
Ore, Crystal, Biomass, Salvage, Exotic Matter1–5Tradable, only the tradable quantity
Cryo Ice, Helium-3, Plasma Shardat freezeTradable in the game today
Rations, Hull Plate101–102Tradable; bound if made from bound inputs
Nav Chart, Targeting Array, Shield Core, Void Stabilizer201–204Tradable; same binding rule (Plasma Charge gets its id at freeze)
Repair Kit, Med-Kit301–302Tradable
Autopilot+303Untradable: it activates when dropped and never enters the cargo
Key Fragment, Golden Key, Crew Ticket401–403Untradable: they turn into free chests
Cosmetic Paint501Tradable in the game; on-chain id reserved until the paint feature ships
Future items1000–1999Buildings and levels never become tokens

What stays off-chain, and why

Off-chainReason
Missions, hull, buildings, research, energy, SiloA 2–5 minute session cannot make every collect or upgrade a transaction, and anti-cheat needs an authoritative server. On-chain "collect" games drew bots at once.
FuelA pacing meter, not an asset: it is bought from the Fuel Depot or crafted, never traded.
Vault RIFTGasless play. Leaves the game only through a paid withdrawal; hourly reconciliation checks it from Phase 3.
Base outputBound to the account (anti-sybil). Mission and chest loot stays freely tradable.
Keys, fragments and ticketsThey turn into free chests, so they are never tradable.
Gasless for players (Phase 3). An in-game player never pays gas: a relayer pays it for listing from the game, buying with vault RIFT and cancelling. Players pay their own gas only for wallet transactions (chest buys, wallet market buys and withdrawals). Wallet items must be imported (burned) before use, so totalSupply(id) always equals the units outside the game. Today players still sign their own mint and withdrawal transactions.
Source · design §1.3, §1.4, §1.6 #12 · contracts/contracts/*.sol · scripts/deploy.cjs · constants.ts (UNTRADABLE_ITEMS, ITEM_CATEGORY) · plan §0.1, §4.1, §4.2 · docs/AVALANCHE-VE-VERI-MIMARISI.md §2.5, §6.1 #12
Economy · the element loop

Materials & items

Missions drop elements, and every galaxy location drops its own mix; three new elements come only from the far sectors. The Planet Base adds a bound trickle of ore, crystal and biomass. Elements trade between players for RIFT, get crafted in the Workshop and are destroyed when used, which gives each one a use, a market price and steady demand.

Implemented · engine, demo, serverBase items · server in progress
01 · Sources

A successful run drops its location's mix (a failed one 20% of it). The base produces bound ore, crystal and biomass.

02 · Market

Player trades in RIFT. The seller pays 3–5% by category, half of it burned (12).

03 · Workshop

Craft rations, plates, kits, fuel and boosters. Fee $0.04 × L (0.8 RIFT), burned.

04 · Upgrades

Ore and crystal pay for building levels and research.

05 · Consumed

Used items are destroyed. Supply only comes from play.

Elements

ref. price in RIFT · seller fee
ElementMain sourceRef. priceFee
OreHome T1, T2, T4 · Cinder Reach · Wreck Graveyard · Daily Ops · Ore Mine9 / 1,0003%
CrystalHome T3, T5, T6 · Glacial Drift · Maelstrom Giants · Crystal Refinery24 / 1,0003%
BiomassHome T5 · Verdant Expanse · Hydroponics6 / 1003%
Cryo IceNew · Glacial Drift, Verdant Expanse (Navigation 2)12 / 1003%
SalvageHome T3, T4, T6, T7 · Wreck Graveyard3 each4%
Exotic MatterHome T6 (25%), T7 · Void Rift · deep T6–T7 worlds45 each4%
Helium-3New · Maelstrom Giants (Navigation 4), Void Rift (5)5 each4%
Plasma ShardNew · Cinder Reach (Navigation 1), Void Rift (5)4 each4%

Reference prices value drops for balance; the market sets real prices. Cryo is priced at twice biomass because no building makes it; he3 sits above salvage because only the two deepest sectors drop it; plasma sits below he3 because the first sector you open already drops it.

What they are for

UseEffect
Crew rations1 per crew per 4 h of mission (Tidefolk need half). Fed crew add +6 supply points.
RepairA Hull Plate restores 15 hull, a Repair Kit the whole hull, without spending RIFT.
FuelA Fuel Cell adds 30 fuel and a Fusion Cell 60; 3 crafts a day for both together.
BoostersUp to 2 per mission, consumed on launch.
BaseOre and crystal build levels and research.
Never tradedGolden Key, Crew Ticket, Key Fragment, Autopilot+. Base output and anything crafted from it stays bound; market buys and anything crafted from them are locked for 7 days.

Workshop recipes

fee $0.04 × L per craft, burned
ItemRecipeEffectAll-in*
Rations ×1030 BiomassFeeds crew; +6 supply points2.60
Hull Plate150 Ore + 1 Salvage+15 hull5.15
Repair Kit New1 Hull Plate + 150 Cryo IceFull repair; about 4.65 plates' worth (70 hull)23.95
Fuel Cell Upd100 Crystal + 80 Ore (was 200 + 100)+30 fuel · 0.131 RIFT per fuel3.92
Fusion Cell New1 Helium-3 + 60 Crystal+60 fuel · 0.121 RIFT per fuel7.24
Nav Chart60 Crystal+4 supply points, any tier2.24
Targeting Array120 Crystal + 2 Salvage+6 supply points on T3–T59.68
Shield Core80 Crystal + 3 Salvage+7 supply points, −50% hull damage on T4+11.72
Plasma Charge New4 Plasma Shard + 100 Crystal+8 supply points on T4–T7 · 2.40 RIFT per point19.20
Void Stabilizer1 Exotic Matter + 150 Crystal+10 supply points on T6–T7 · 4.94 RIFT per point49.40

*RIFT at reference prices plus the 0.8 RIFT Workshop fee at L = 20 (a Repair Kit pays the fee twice, once for its plate). Fuel Cell and Fusion Cell share the daily limit of 3 crafts and go straight into the tank.

Why supplies don't break the balance: they are capped at 20 of the 100 points, so the team does most of the work. The Plasma Charge gives T4–T7 fleets a second way to the cap: Shield Core + Plasma Charge cost 30.92 RIFT of boosters, against 51.64 for Void Stabilizer + Nav Chart. If one input is bound, the crafted output is bound too; if one is market-locked, the output stays locked as long.
Source · design §1.4, §3.2 · constants.ts (ITEMS, RECIPES, BOOSTERS, ITEM_CATEGORY, UNTRADABLE_ITEMS, MISSION_DROPS) · galaxy.ts (location drops) · engine.ts (craft) · element reference prices and recipe costs: galaxy content v1.2 · raw-material ref. prices GDD §6.6
Economy · 7 sectors · 40 locations

Galaxy

The star map is now a galaxy of seven sectors on two spiral arms. Each of the 40 locations is a mission destination: it keeps its tier's hours, reward, EP and odds band, and adds its own element mix, a small odds shift and its sector's fuel multiplier. The home sector is today's seven missions, unchanged. The other six open one by one with the Planet Base's Navigation research.

Implemented · engine, server launches, explorer in the demo

Galaxy at a glance

sectors, the Navigation level that opens them, fuel per run
Rim Outpost OPEN · FUEL ×1.00 · 7 PLANETS Cinder Reach NAVIGATION 1 · FUEL ×1.10 · 6 PLANETS Glacial Drift NAVIGATION 2 · FUEL ×1.15 · 5 PLANETS Verdant Expanse NAVIGATION 2 · FUEL ×1.15 · 5 PLANETS Wreck Graveyard NAVIGATION 3 · FUEL ×1.20 · 6 PLANETS Maelstrom Giants NAVIGATION 4 · FUEL ×1.25 · 5 PLANETS The Void Rift NAVIGATION 5 · FUEL ×1.30 · 6 PLANETS CORE Rim open · ×1.00 Cinder Nav 1 · ×1.10 Glacial Nav 2 · ×1.15 Verdant Nav 2 · ×1.15 Wreck Nav 3 · ×1.20 Maelstrom Nav 4 · ×1.25 Void Rift Nav 5 · ×1.30
Rim Outpost · Sector 07
Open · fuel ×1.00

7 locations, T1–T7 · odds shift 0

Ore, crystal, salvage, exotic. Today's missions, unchanged.

Cinder Reach
Navigation 1 · ×1.10

6 locations, T1–T6 · −0.01 to +0.02

Lava worlds. Ore is cheap here, plasma is everywhere.

Glacial Drift
Navigation 2 · ×1.15

5 locations, T1, T3–T6 · −0.02 to +0.01

Ice worlds. Cryo ice and crystal under every glacier.

Verdant Expanse
Navigation 2 · ×1.15

5 locations, T1, T2, T4–T6 · −0.02 to +0.02

Ocean and jungle worlds. Biomass and cryo.

Wreck Graveyard
Navigation 3 · ×1.20

6 locations, T2–T7 · −0.03 to 0

An old battlefield. Salvage and ore.

Maelstrom Giants
Navigation 4 · ×1.25

5 locations, T3–T7 · −0.03 to −0.01

Storm giants. Helium-3 and crystal.

The Void Rift
Navigation 5 · ×1.30

6 locations, T3–T7 (two T7) · −0.04 to −0.03

A deep anomaly. Exotic matter, plasma and he3.

How a sector opens
Navigation N

Research level N needs Drydock & Lab 2N. Only a finished level counts.

One fleet finishes all research at level 5 around day 65–70 in the base benchmark.

Far, rich and costly to reach

balance rule
fuel/run = hours × 10 × class fuel × location fuel (1.00–1.30) rounded once success = tier odds + shift shift −0.04 … +0.02 kept in 5–98%
  • Fuel is the price of distance. A T5 Deep Space Survey (8 h) on a ship with fuel factor 1.0 costs 80 fuel at home, 88 in Cinder Reach and 104 in The Void Rift. Exploration is a fuel sink.
  • Same pay per flight hour, net of fuel. Every non-home location earns 0.90–1.10 of the home location of its tier per flight hour after fuel (actual range 0.906–1.003).
  • Richer loot, where the trip costs more. Success loot is at least 90% of home. It goes above 130% only where the extra fuel and lower odds keep the net at or below home: 11 far locations drop 1.31–1.84 × home (Hollow Lantern the most).
  • The mission snapshots its location's drops, odds shift and fuel multiplier at launch, so a later data change never touches a ship in flight.

The explorer

galaxy → sector → planet
  • Three zoom levels, like a globe app: the galaxy (sector regions, names, elements, lock badges), a sector (the star, orbits, planets with their element ring, tier badge and live odds for the selected ship) and a planet (a large planet view with its element mix, odds, reward, time and fuel, and the launch button).
  • Moving around: drag, wheel and two-finger pinch, double-click or double-tap to zoom, +/− and home buttons, a minimap, a breadcrumb (Galaxy › Cinder Reach › Ember IV), a "Go to…" list that also filters by element, and keyboard arrows.
  • Fly-to: the camera pulls back, glides and zooms in (about a second); with reduced motion it jumps.
  • Ships in flight ride a lane from the Rim Outpost to their planet on the mission clock. Locked planets show "Opens at Navigation N" and a Research button.
  • Every number on the map comes from the same engine call that the launch uses, so the preview equals the mission. Works by touch at 375 px, with the briefing as a bottom sheet.
Source · design §3 · packages/shared/src/galaxy.ts (SECTORS, LOCATIONS) · engine.ts (launch, locationPreview, locationLock, fuelPerRun, oddsBand) · galaxy content v1.2 (balance rows, net-of-fuel reading) · web/src/pages/map.ts
Economy · OGame-inspired base layer

Planet Base

Six buildings and four research branches turn ore and crystal into a slow, capped production loop: mines grow by k·L·1.1L, upgrades cost more each level, storage stops overflow and there is one build and one research queue. The base adds one or two decisions per session and opens the galaxy through Navigation research; missions T1–T7 keep their numbers.

Phase 1 · engine + demo done, playable in the demoServer P2 · live UI P2b
Never mints RIFT
0 RIFT

The base produces items only, and no NPC buys items for RIFT.

Account-bound
Bound

Base output cannot be exported or listed; spends use bound stock first.

Silo + Store
12 h

The Silo holds 12 h of output; the Store caps bound stock. Full = production stops.

Launch cap
L10

1 build + 1 research queue. RIFT fees are fixed in USD × L.

Buildings

BUILDINGS in constants.ts
BuildingStartCapBase cost ore / crystal · growthEffectEnergy
Ore Mine110225 / 45 · ×1.68·L·1.1^L ore/h (L10: 207)−10·L·1.1^L
Crystal Refinery110190 / 90 · ×1.655·L·1.1^L crystal/h (L10: 130)−10·L·1.1^L
Hydroponics01250 / 1002.2 biomass/h = 53/day (~84% of a reference fleet's rations)−6.6
Solar Array210190 / 60 · ×1.6+22·L·1.1^L energy (L2: 53, L10: 571)producer
Fuel Refinery08375 / 150 · ×1.7Fuel tank ×(1 + 0.05·L), refill ×(1 + 0.03·L)none
Drydock & Lab110375 / 225 · ×1.8Repairs −2% per level above 1; research up to ⌊L/2⌋none

Energy: f = min(1, produced ÷ used) slows every mine when use exceeds supply. Solar starts at L2 (53 vs 22 used), so no order of the first two upgrades drops f below 1. Fully built: 571 vs 525 energy, f = 1. Fully built with Geology 5: ore 239/h (5.7k/day), crystal 149/h (3.6k/day), biomass 53/day, bound to the account.

Rules in one block

curve = k · L · 1.1^L output/h = curve · f · (1 + 0.03·Geology) ore and crystal only gate = ≥1 crewed ship ? 1 : 0 Silo = max(200, 12 h of output) Store = min stock + priciest next level + priciest next research cost(L) = base · growth^(L−1) fee(L) = 0 below L5, else $0.10 × L × 1.5^(L−5) 2 RIFT at L5 when L = 20 time(L) = 5 min · 1.82^(L−1) speed-up = $0.005 × L per min left 0.1 RIFT a minute ≤ 3 min left: free

Here L inside fee and speed-up is RIFT per $1 (20 at the launch reference), so the fees keep their weight if the RIFT price moves. Store minimum: ore 2,000 · crystal 2,000 · biomass 300. New players get a bound starter pack of 600 ore and 300 crystal. Settling is lazy (no cron, no Collect button): whole Silo units move to Cargo on every visit.

Research · 4 branches × 5 levels

BranchPer levelAt L5
Navigation−2% mission time; opens the next sectors (07)−10% (T5: 8 → 7.2 h); all 7 sectors open
Shielding−3% hull damage (nominal)−15% nominal, −10.8% real on a plain ship
LogisticsAutopilot repeats +1 point0.80 → 0.85
Geology+3% ore and crystal output+15%

Level cost: L1 400 ore / 400 crystal / 5 RIFT ($0.25 × L) / 1 h / Lab 2, doubling every level (L5: 6,400 / 6,400 / 80 RIFT / 16 h / Lab 10). All four branches: 49.6k ore, 49.6k crystal, 620 RIFT, 124 h. Effects are snapshotted at launch, so research that finishes mid-flight never changes a mission in the air.

Cost to max every building

ore / crystal · RIFT fee at L = 20 · build time
BuildingL2L5L8L10Total ore / crystalFeeTime
Ore Mine360/721,475/2956,040/1,20815,462/3,09240,632 / 8,12641.640.3 h
Crystal Refinery314/1481,408/6676,326/2,99717,223/8,15843,238 / 20,48141.640.3 h
Hydroponics(L1) 250/100———250 / 10005 min
Solar Array(L3) 486/1541,245/3935,100/1,61113,057/4,12334,007 / 10,73941.640.2 h
Fuel Refinery638/2553,132/1,25315,388/6,155—36,834 / 14,73416.212.1 h
Drydock & Lab675/4053,937/2,36222,958/13,77574,385/44,631166,522 / 99,91341.640.3 h
Total321.5k / 154.1k182.5173 h

Starting a job takes the materials up front (bound stock first, then market-locked, then tradable) and burns the fee from the vault. Cancelling refunds 100% of the materials, bound stays bound and locked stays locked; the fee is already burned. An L10 build rushed from its start costs about 110 RIFT.

Source · plan §3.1–3.5 · constants.ts (BUILDINGS, RESEARCH, BASE) · base.ts (buildFee, researchCost, speedUpCost) · tools/ogame_bench_results.md (a)
Economy · tools/ogame_bench.py

Base economy & acceptance gates

The base was tuned in a benchmark against OGame's own formulas: 3 visits a day, greedy building and research, one reference fleet flying T2×3, T3×2, T5×1 with an average team. Its job is to add RIFT sinks and material demand without minting RIFT. Next to the smaller v4 reward (42.64 RIFT gross per fleet per day in the bench), its fees are now a large share of a fleet's gross.

Bench gates 4a, 4b, 5a passedSimulation gates pending · Phase 5

Base RIFT sinks · 1 fleet

cumulative RIFT burned · % of gross
Level feesResearch feesSpeed-ups
25050075010000 270 · 21%557 · 22%905 · 24% speed-up 103research 620levels 182 Day 30Day 60Day 90
DayLevelsResearchSpeed-upTotal% of gross
30941403727021.1
601673008955721.8
9018262010390523.6

RIFT at L = 20, modest speed-ups (jobs with ≤ 180 min left). Eager speed-ups: 1,097 by day 90; rushing everything from the start: 1,785. Three fleets pay the same fees, a smaller share (day 60: 905 = 11.8% of gross). Gross = 42.64 RIFT per fleet per day, the v4 reward.

Time to max everything

6 buildings + 4 × 5 research
gate 4a · 45–75 days 3 fleets1 fleetNo drops 52.7 d69.7 d101.7 d 0255075100

Drydock & Lab L10 is the critical path (day 63.7 for one fleet); research L5, and with it The Void Rift, needs it and ends about six days later. A player without mission drops is 1.46× slower (gate 4b asks ≥ 1.3×), so the base rewards playing, not just logging in. Visit count and speed-up habits barely move these days; the mission mix does (T5-only: day 85).

Reaches cap1 fleet3 fleetsNo drops
Solar / Ore L1032.3 / 37.022.3 / 26.055.3 / 61.7
Fuel L8 / Crystal L1038.9 / 42.027.6 / 30.064.2 / 68.0
Drydock L1063.747.395.3
Research L564.7–69.748.7–52.796.3–101.7

Effect on emission and sinks

ChangeEmissionSinkGuard
Base output (direct)0 RIFT (bound items)Materials are consumed by levels and researchBinding, Store cap, fleet gate
Base output (indirect)Free rations (+6) and Nav Charts (+4) push supplies toward the cap of 20, so success and emission rise; crafted fuel adds up to 90 (Fuel Cells) or 180 (Fusion Cells) a day against a refill of 168Crafted fuel replaces Fuel Depot burnsGate 6; last valve: the emission coefficient
Bound output → market—Spends use bound stock first, so every drop the base replaces becomes sellable surplus (1 fleet: 83.6k tradable ore by day 120)Store cap; gate 5b
Navigation −10%Up to +11% runs/hour for players not limited by visits; opens the far sectorsFar sectors burn 10–30% more fuelL5 cap (~day 66)
LogisticsAutopilot repeats +6.25%—Cap
Shielding L5—Repair spend −10.8% on a plain ship—
Lab discount—Burn unchanged at 70% of the base price; the reserve's share of a repair falls from 30% to 12% at L10Reserve inflow
Fuel Refinery L8+24% refill, +40% tank: a small gain where fuel is the bottleneckReplaces Fuel Depot burnsL8 cap

Acceptance gates

must pass before mainnet · plan §3.11
#GateToolResult
4aOne fleet maxes every building and research in 45–75 daysbenchPASS · 69.7 d
4bA player without drops is ≥ 1.3× slowerbenchPASS · 1.46×
5aSupply ÷ demand ≤ 1.3 per account (ore, crystal, biomass) at days 60, 90, 120benchPASS · 1 fleet ore 1.20/1.12/1.24, crystal 1.22/1.05/1.12, biomass 1.23; no drops ore 1.08/1.18/1.01, crystal 1.12/1.18/0.98, biomass 0.83
1Every profile within ±1 day (p50, p90) of a base-free baselinesimPENDING · Phase 5; needs the base's benefits in the simulator
2Fleet gross with research maxed: mid_3 ≤ +5%, active_4 ≤ +10%simPENDING · Phase 5
3Burn share before the core cap stays at or above the pre-base levelsimPENDING · Phase 5
5bGate 5 at market level: real tier mix, 1 / 3 / 10 fleetssimPENDING · Phase 5
6Supplies 20, free materials, +3 crafted fuel a day: p50 moves ≤ 1 day; else tune recipes, then the emission coefficientsimPENDING · Phase 5
What v4 already shows. The v4 simulation counts the base's fees as a payback cost but not yet its benefits (repair discount, bigger tank, research). A balanced fleet that pays two thirds of its account's fees pays back at a median of 246.3 days instead of 129.0 (50% within a year); one that pays its account's full fees, 40% within a year. How many players build a base is an open owner decision (04).

Without the Store cap, gate 5 fails (1 fleet, day 120: ore 2.04, crystal 1.88); so does a bigger Hydroponics or Geology on biomass. The plan v1 numbers failed gate 5 badly (biomass 17.4 by day 120).

Source · plan §3.9–3.11 · tools/ogame_bench_results.md (c), (d), RIFT sinks, sensitivity, findings 6, 8 · tools/roi_results_v4.md (planet-base adoption, sensitivities)
Economy · pacing

Fuel

Fuel works like energy. A run costs 10 fuel per hour × the ship's fuel factor (0.8–1.5) × the location's fuel multiplier (×1.00 at home, up to ×1.30 in The Void Rift), rounded once. Fuel refills at 7 per hour per fleet up to the tank (120 + 180 per ship), and the three Daily Ops add up to +30. Above that, fuel is bought from the Fuel Depot at a USD-tied price, or crafted.

ImplementedFuel Refinery · Phase 1

Fuel sources

RIFT at L = 20
SourceLimitCost per fuelCost goes to
Natural refillUp to the tankfree—
Daily Ops+10 per completed op, up to +30 a dayfree—
Fuel Depot pack 1 / 2 / 33 a day, 40 fuel per fleet each; $0.007 / $0.01 / $0.014 × L per fuel0.14 / 0.20 / 0.28100% burned
Fuel Cell (Workshop)100 Crystal + 80 Ore → +300.131Materials destroyed, fee burned
Fusion Cell (Workshop) New1 Helium-3 + 60 Crystal → +600.121Materials destroyed, fee burned
Fuel Canister (chest drop)Random, +120—Can overfill the tank

Fuel Cells and Fusion Cells share one limit of 3 crafts a day, so crafted fuel tops out at 90 (Fuel Cells only) or 180 (Fusion Cells) a day. At reference prices crafted fuel costs 0.93 (Fuel Cell) and 0.86 (Fusion Cell) of the cheapest pack, so crafting stays worth it and the Workshop keeps eating materials. In the v4 simulation, fuel packs are 11% of a balanced fleet's gross.

Fuel Refinery

cap L8 · no energy use
tank = (120 + 180 × ships) × (1 + 0.05·L) refill = 7 × fleets × (1 + 0.03·L) per hour
Tank, 1 ship
300 → 420

Refinery L0 → L8

Refill, 1 fleet
7.00 → 8.68

fuel per hour, L0 → L8

Distance costs fuel

T5 Deep Space Survey, 8 h, fuel factor 1.0
SectorMultiplierFuel per run
Rim Outpost (home)×1.0080
Cinder Reach×1.1088
Glacial Drift, Verdant Expanse×1.1592
Wreck Graveyard×1.2096
Maelstrom Giants×1.25100
The Void Rift×1.30104

Mossborn crew take 10% off. An autopilot mission pays the fuel of every run at launch; runs it does not fly after an injury are refunded.

Source · design §1.5, §1.6 #8 · constants.ts (FUEL, RECIPES, DAILY_OPS, BASE.FUEL_*) · engine.ts (fuelPerRun, packOffer, craft) · galaxy content v1.2 (fuelRecipes) · roi_results_v4.md (one fleet's life) · plan §3.4
Economy · where RIFT goes

Sinks & burns

Every source of RIFT is designed to have a matching sink. Rewards flow into the in-game vault; repairs, fuel, crafting, recharges, base upgrades and fees flow out, and most of it is burned on-chain in batches. Every fixed RIFT price is set in USD × L, so a sink keeps its weight when the RIFT price moves. Chest revenue adds one more: the buyback burns half of the RIFT it buys.

Implemented · engine, contracts, serverBase fees · server in progress

RIFT flows

the Planet Base adds sinks, not emission
Rewards and fundingSpending and feesWalletItems (no RIFT)
SOURCESIN THE GAMESINKS & EXITS Reward pool550M · RewardReserve · B(y)daily cap · one rate a day Leaderboard pool15% of emission, pro rata+ 30% of element fees Chest revenueUSDC today; AVAX planned40% → RiftBuyback Planet Baseore · crystal · biomassaccount-bound, Store-capped 0 RIFT MINTED Player vaultin-game RIFT backed by RiftVault IN mission rewards, weeklypayouts, sales, deposits OUT repairs, fuel, crafts,recharges, upgrades, fees,buys, withdrawals Reward reservein RiftVault: ½ of buybacks,repair share, ½ of withdraw fees Cargoitems in the gametradable loot + bound outputmarket buys locked 7 days Burned · 100% Fuel Depot packs Workshop fee · $0.04 × L per craft Core recharges · 0.35–1.05 × basis Level fees from L5, research fees Speed-ups · $0.005 × L per minute Half of every buybackNEW Half of RIFT chest payments Split fees Repair · 70% burn, rest to reserve Withdrawal · 50% burn, 50% reserve Elements · 50% burn, 30% LB, 20% treasury NFT 5% · 2 burn, 1.5 LB, 1.5 treasury Wallet · on-chainRIFT (ERC-20), ships, crew (ERC-721)items (ERC-1155) from Phase 3 rewards weekly payouts buybacks funds rewards spend fees withdraw bound items export / import SOURCES Reward pool550M · B(y)one rate a day Leaderboard15% of emission+ 30% element fees Chest revenueUSDC; AVAX planned40% → buyback Planet Basebound items only0 RIFT MINTED rewards, payouts, buyback IN THE GAME Player vaultin-game RIFT backed by RiftVaultrewards in · spending, fees out Reservefunds rewards½ buybacks, fees Cargoitems in the gameexport / import spend, fees, withdraw SINKS & EXITS Burned · 100% Fuel Depot packsWorkshop fee Core rechargesLevel, research fees Speed-ups½ of buybacksNEW ½ of RIFT chest payments Split fees Repair 70% burn · rest to reserveWithdrawal 50% burn · 50% reserveElements 50% burn · 30% LB · 20% treasuryNFT sales 2% burn · 1.5% LB · 1.5% treasury Wallet · on-chainRIFT, ships, crew; items from P3

Sink table

RIFT figures at L = 20
SinkRateDestination
Element market fee New3% raw · 4% rare · 5% crafted, from the seller; at least 0.01 RIFT50% burn · 30% leaderboard · 20% treasury
NFT market fee5% of every sale, from the seller (fixed in the contract)2% burn (on AVAX sales: to RiftBuyback) · 1.5% leaderboard · 1.5% treasury
Withdrawal fee12% / 6% / 3%; 12% on sale proceeds from the last 7 days50% burn · 50% reward reserve
Repair (RIFT)$0.04 × L per hull point (0.8 RIFT); Lab −2% per level70% of the base price burned; the rest to the reserve
Fuel Depot$0.007 / $0.01 / $0.014 × L per fuel (0.14 / 0.20 / 0.28), 3 packs a day100% burn
Workshop fee$0.04 × L per craft (0.8 RIFT)100% burn
Core recharge Upd0.35 / 0.70 / 1.05 × basis × L, at most 3 per ship100% burn
Chest buyback New40% of USDC (later AVAX) chest revenue buys RIFT50% burn · 50% reward reserve
Chest paid in RIFT10% discount50% burn · 50% reward reserve
Level fees$0.10 × L × 1.5L−5 from L5: 2 · 3 · 4.5 · 6.75 · 10.1 · 15.2100% burn
Research fees$0.25 × L × 2L−1: 5 → 80 RIFT per level (620 for all)100% burn
Speed-ups$0.005 × L per remaining minute (0.1 RIFT), ≤ 3 min free100% burn
Far-sector fuel New×1.10–1.30 fuel per run outside the home sectorBurned through packs, or materials destroyed through crafting
Renames, cosmetics DesignFixed prices (not in code yet)100% burn
Materials (non-token)Destroyed on useKeeps material prices and RIFT demand on the market alive

One fleet's costs, % of gross

balanced Starter, v4
BurnedTo the reward reserveBase fees, burned
Repairs 30% Fuel packs 11% Workshop 7% Recharges 21% Base, day 30 21.1% Base, day 90 23.6% 0% 10% 20% 30%

Repairs, fuel, crafting and recharges: one balanced Starter fleet played to the end at coefficient 1 (roi_results_v4.md). Base fees: the base benchmark, one fleet paying its whole account's fees, at 42.64 RIFT gross per day. Element and withdrawal fees come on top and depend on trading.

Sinks ÷ gameplay emission

by month after launch · population model
Sinks ÷ gameplay emissionTarget ≥ 0.6 from month 3Target ≥ 0.8 from month 6
0.4 0.6 0.8 1.0 1.2 cap binds 1 6 12 18 24 30 36

Base scenario: every account pays base fees, assumed growth to 10,000 daily players in month 25. Without base fees the month-3 and month-6 means are 0.655 and 0.683. Counting the leaderboard and events too (paid pro rata), the month-6 mean is 0.63.

Target: sinks ÷ gameplay emission ≥ 0.6 from month 3 and ≥ 0.8 from month 6. Month 3 is met (0.66–0.80); month 6 is not (0.68–0.79, mean of months 5–7). From month 19 the ratio is about 0.9–1.1, because the cap holds emission while sinks keep growing.
Reactor core: a ship earns at most 1.5 × its basis before a recharge and 6 × its basis in its life, then retires. Recharges cost more each time and are burned, so lifetime emission per dollar minted is capped.
How burns reach the chain: in-game burns collect in a pending pool and are burned in batches from RiftVault with burnFromReserve (today the server's signer holds the burner role; from Phase 3 a BURNER key with a daily budget). Buyback burns happen inside RiftBuyback.buyback, RIFT chest payments burn in ChestMinter.buy, withdrawal-fee burns in RiftVault.withdraw, NFT-sale burns in the market contract.
Source · design §1.3–1.6, §2 · constants.ts (ECONOMY, FUEL, MARKET, BASE) · engine.ts (marketSplit, repair, rechargeCore, craft) · base.ts (repairSplit, buildFee) · tools/roi_results_v4.md (one fleet's life, month table, §2 readings) · tools/ogame_bench_results.md (RIFT sinks) · RiftVault.sol, RiftBuyback.sol, ChestMinter.sol, NftMarket.sol
Trade · element market and VoidMarket

VoidMarket

Elements, materials and items trade in RIFT: today on the in-game desk with vault RIFT, and from Phase 3 also as on-chain listings in VoidMarket, the one contract that will carry ships, crew and items. The seller pays a fee by category and sees it before listing; the buyer pays only the listed price. Ships and crew trade from a wallet in AVAX with the fixed 5% NFT fee. By default players never leave the game: they sell from Cargo into their vault and buy with vault RIFT.

Element fees, lock · engine, serverVoidMarket contract P3, UI P4Replaces NftMarket + server order book

Element market: the seller's fee

MARKET.FEE_BPS
CategoryItemsFee
RawOre, Crystal, Biomass, Cryo Ice3%
RareSalvage, Exotic Matter, Helium-3, Plasma Shard4%
CraftedRations, Hull Plate, boosters, Repair Kit, Med-Kit, Paint5%
Ships, crewNFT sales (fixed in the contract)5%

Where an element fee goes

  • The fee is at least 0.01 RIFT, and a listing must ask at least 0.1 RIFT in total, so the seller always nets something.
  • A listing keeps the rate it was listed at; later rate changes never touch an open listing.
  • The sell form shows only tradable stock: base output and what is crafted from it stay with the account, and Golden Keys, Crew Tickets, Key Fragments and Autopilot+ can never be listed.

What the seller sees

the buyer sees only the price
ListingFeeBurnLBTreasurySeller nets
1,000 Crystal for 24 RIFT (raw 3%)0.720.360.220.1423.28
5 Helium-3 for 25 RIFT (rare 4%)1.000.500.300.2024.00
1 Repair Kit for 30 RIFT (crafted 5%)1.500.750.450.3028.50

When listing, the seller sees the rate, the fee, the net RIFT and where the fee goes. The buyer pays the listed price and sees only a note that the seller pays the fee.

7-day lock

An item bought on the market is usable at once but cannot be re-listed or exported for 7 days, and nor can anything crafted from it. That closes "buy with vault → export → sell for wallet AVAX".

Fresh proceeds

RIFT from sales in the last 7 days withdraws at the 12% tier (13), so trading between two accounts cannot skip the withdrawal fee.

Ships and crew: 5% NFT fee

immutable bps
  • BURN 200 · LB 150 · TREASURY 150 bps, fixed in the contract. The buyer pays the listed price; the seller receives 95%.
  • Today's NftMarket is priced in RIFT and burns its 2% at trade time; its deploy sends the 1.5% leaderboard share to the leaderboard pool address (the treasury if none is set).
  • Planned On VoidMarket, wallet sales are priced and settled in AVAX. AVAX cannot be burned like RIFT, so the 2% share goes to RiftBuyback (design §1.3, which settles the open question from the payment decision). The leaderboard and treasury shares are paid in AVAX; where the leaderboard's AVAX is held and how it reaches the RIFT prizes is still open.
  • Pause never blocks cancel, cancelOffer or reclaimExpired: escrowed assets can always come home.

Order types

VoidMarket · Phase 3
ActionHow
ListFixed unit price (AVAX for ships and crew, RIFT for items), expiry, partial fills (300 + 700 of 1,000 closes the listing). Ships and crew need a server-signed ListAttest; a ship on a mission cannot be listed.
List from the gameGasless: the player signs a GameListing, the relayer submits it and the items are minted straight into escrow, priced in RIFT.
BuyShips and crew: payable in AVAX (no approve or permit). Every buy carries a maxUnitPrice guard against front-running and delivers to the wallet or to the game.
Buy order (offer)Items only (ERC-1155). The bid is escrowed; sellers fill from a wallet or from Cargo through the relayer (counts toward export caps). Vault-funded offers are not in the launch version.
Change, cancelThe seller signs a ListingAction; the relayer submits it but can never cancel alone. Expired game listings burn back into the game.

Who pays, who gets paid

default flow: Cargo ↔ Vault
Buyer pays withListing pays out toResult
Vault RIFT (fillForVault)VaultNo RIFT moves on-chain: the buyer's vault is debited, the seller's credited minus the fee. The item always arrives in the game and is locked for 7 days
Wallet RIFTVaultRIFT goes to RiftVault with ProceedsToVault; the indexer credits the seller's vault, and the 7-day fresh-proceeds rule applies
Wallet AVAX (ships, crew)WalletBuyer → seller on-chain in AVAX; the fee is split on-chain, with the 2% share to RiftBuyback
Vault RIFTWalletReverts. Reserve RIFT would skip the withdrawal fee

Anti-wash and caps

Lock and seasoning

Market buys are locked for 7 days and sale proceeds leave at 12% for 7 days. Together they close the routes that would skip the 72 h gate, the 12% tier and the new-account cap.

Relayed listings

At least 5 RIFT, 5 per account per day, at most 20 open listings per seller, plus address rate limits.

Known risk

Vault-to-vault transfers through alt accounts exist today. Guard: a daily per-address value cap on vault buys and an alarm on repeated counterparties.

Source · design §1.3, §1.4, §1.6 #1–4 · constants.ts (MARKET, ITEM_CATEGORY, UNTRADABLE_ITEMS, MARKET_FEE_SPLIT, BASE.VAULT_BUY_LOCK_DAYS) · engine.ts (marketSplit, listingQuote, takeItems, giveItems, receiveSale) · NftMarket.sol · plan §4.2, §4.3, §6 · docs/AVALANCHE-VE-VERI-MIMARISI.md §2.5, §6.1 #12
Custody · RiftVault

Vault & withdrawals

Earnings land in the in-game vault first. Spending from the vault (market, repairs, fuel, recharges) skips the withdrawal fee, which keeps tokens in play. Leaving goes through a signed EIP-712 voucher that the player submits to RiftVault.withdraw.

ImplementedShared cap with exports · Phase 2–3
Last withdrawal < 3 days ago · or fresh sale proceeds
12%
3–6 days
6%
7 days or more
3%

Rules

First withdrawal72 h after the first ship or crew arrives (mint, purchase or gift)
Minimum500 RIFT
Sale proceeds from the last 7 days12%, whatever the tier
Accounts under 30 days$1,000 per day · enforced from Phase 2
Fee destination50% burn · 50% reserve
Unused voucherauto-refunded after 30 min

The rest of the vault goes out first at its tier rate; only the part drawn from fresh proceeds pays 12%. Spending never uses up fresh proceeds first, and the quote shows both parts.

Wash trade between two accounts

cost of moving RIFT out via a sale
RouteCostBeats the 12% tier?
Before: 5% market fee, then the 3% tier7.85%yes
3% raw-element fee, no seasoning, then 3%5.91%yes
3% raw-element fee, proceeds at 12% for 7 days14.64%no

What the plan still changes

  • One shared cap, enforced. The new-account $1,000/day is defined but not enforced today. Phase 2 enforces it on withdrawals; from Phase 3 one cap covers withdrawals, item exports, game listings and offer sales together.
  • Same 72 h gate for the first item export and the first game listing (Phase 3).
  • Safe credits (Phase 3). Value-writing events are credited at the chain's safe head, and voucher refunds read safe too.
Source · design §1.6 #4 · GDD §9, §14.1 · constants.ts (WITHDRAW_*, SALE_SEASON_DAYS, SALE_SEASON_FEE, NEW_ACCOUNT_*) · engine.ts (withdrawQuote, freshSales, applyWithdraw) · roi_results_v4.md (wash trade) · plan §2 (#15, #16), §4.3, §4.5
Custody · EIP-712 "VoidItemBridge" v1

ItemBridge

Items leave the game with a signed voucher and come back by burning. The bridge is the only minter of VoidItems, and every mint is checked against the game ledger every hour.

Planned · Phase 3 (testnet soak, audit)

Flows

FlowSteps
E1 · ExportChecks (tradable quantity, not locked, 72 h gate, shared cap, remaining on-chain cap) → in one database transaction: take the items, write the ledger, issue the voucher and sign it → the player or relayer calls withdraw; the mint always goes to the player.
E2 · List from the gameSame checks + minimum value + quota + a GameListing signature → relayer listFromGame → minted into market escrow.
E3–E4 · Import, buy into the gamedepositToGame (or buy(toGame), fillForVault) burns the tokens and emits ItemsDeposited → credited at the safe head. A double import credits once.
E5 · RefundAn unused voucher is credited back after its deadline + 10 min if the nonce is still unused; early refunds cancel the nonce first.
E6 · Cancel into the gameThe seller signs a cancel; the relayer submits; the listing burns back into Cargo.

Caps

First export72 h after the first mint
Per player, per day2 × max daily drops per fleet × fleets, with the max taken from the richest location for each item. Bound output never counts toward it; game listings and offer sales do.
Global, per item, per day≥ 10× expected volume; alarm at 50%; throttling per account so one actor cannot lock everyone out. The server reads the remaining on-chain cap before signing.
Per voucherUp to 16 item ids, each with a tradable flag and daily cap

Hourly reconciliation

breach → alarm + GUARDIAN pause
items totalSupply(id) = Σ exports used + Σ listing mints − Σ imports RIFT RiftVault balance = releases + deposits + vault proceeds + leaderboard fees + buyback and chest reserve − (withdrawn − fee/2) − reserve burns − payouts

Extra check: Σ vault balances + pending vouchers ≤ RiftVault balance − reserved reserve. Rollback switch ITEM_MARKET_MODE = offchain | dual | onchain; even if bridge minting stops, depositToGame keeps working.

Source · plan §4.1, §4.2, §4.4, §4.7, §4.8 · design §1.6 #2 · RewardReserve.sol, RiftBuyback.sol (RiftVault inflows)
Revenue · ChestMinter and RiftBuyback

Mint revenue

Chests are priced in USD. Today they are paid in USDC, or in RIFT at a server-signed quote with a 10% discount; half of a RIFT payment is burned and half goes to the reward reserve. Planned: native AVAX becomes the default, at a short-lived server-signed quote (about 2 minutes) that ChestMinter checks against the Chainlink AVAX/USD feed, rejecting it beyond a small deviation (about 2%) or when the feed is stale; msg.value must equal the quote, and USDC stays optional. Randomness comes from Chainlink VRF and the rarity odds are public in the contract.

Implemented · USDC, RIFT, split, buybackAVAX payment path · planned

Products

ProductPriceContentsShip basis
Starter Chest$1001 ship + 3 crew + 1–4 bonus drops$100
Commander Chest$3003 ships + 9 crew + 3 × (1–4) drops, first ship Rare+3 × $100
Ship Mint$501 ship + 1 drop$50
Crew Mint$171 crew + 1 drop—
Golden Key (or 5 Key Fragments)freeA Starter Chest, on a quote signed as free$30
Crew TicketfreeA Crew Mint—

Rarity odds: Common 50% · Uncommon 28% · Rare 14% · Epic 6% · Legendary 1.8% · Mythic 0.2%. Pity: a Rare+ ship is guaranteed after 10 ships in a row below Rare. Bonus drops: Fuel Canister 38% · Repair Kit 22% · Autopilot+ 14% · Med-Kit 10% · Key Fragment 8% · Paint 5% · Bonus Crew 2.5% · Golden Key 0.5%. The basis sizes the ship's reactor core (03).

Every $100 of chest revenue goes to

set at deploy
RIFT buybackRiftBuyback: half burned, half to the reserve
40%
Development & opsteam, servers, art
30%
LiquidityRIFT/AVAX depth
15%
Marketing & ecosystemuser acquisition, partners
15%

Replaces edition 2.0's 40% reward reserve · 20% liquidity · 15% development · 15% marketing · 10% leaderboard. The leaderboard is now funded by the reward pool and the element market (16). ChestMinter.distributeRevenue() splits the USDC it holds; with the AVAX path, AVAX revenue follows the same split.

How the buyback works

RiftBuyback.sol
distributeRevenue() 40% of chest USDC → RiftBuyback buyback(token, amount, minOut, deadline) route USDC → WAVAX → RIFT set by the admin caps 5,000 USDC per call 25,000 USDC per UTC day AVAX 0 until its path ships floor minOut ≥ amount × floor 10 RIFT per USDC: buys while RIFT ≤ $0.10 check RIFT out ≥ minOut > 0 before the deadline split 50% burned · 50% → RiftVault
  • A keeper job on the game server calls buyback once per input per round. The amount is the least of the balance, the per-call cap and what is left of today's cap. minOut is the router's fresh quote minus 1% slippage, never below the floor, so a swap that moves too far reverts. The keeper cannot pick a pool: the router and routes are set by the admin multisig.
  • Price floor. The floor is the least RIFT per token the admin accepts, which makes it the highest RIFT price the contract pays. A cap or floor of 0 turns that input off. While RIFT trades above that price, no swap can meet the floor: buybacks stop and the USDC waits in the contract until the admin lowers the floor. A leaked keeper key can at worst buy at the floor price, and only up to the daily cap per token per day.
  • Deviation guard. The keeper also skips a quote more than 5% below the median of its last 12 quotes from the past 24 h (from the 4th quote on), so it does not buy from a pool someone has just pushed. A lasting price move enters the median within a few rounds.
  • Swaps run through a Uniswap-V2-style router (for example LFJ on Avalanche); native AVAX is wrapped to WAVAX first. The burn share (burnBps, 5000 = 50%) is an admin setting; the admin can pause and unpause the contract.
  • AVAX paid for NFT sales on VoidMarket sends its 2% fee share to the same contract.

Does the buyback keep up?

v4 population model · year-1 fleets
Bought back
800

RIFT per $100 of chests at $0.05 (40% of $100)

Withdrawn
945

RIFT per $100, year-1 fleets over their life

Coverage
0.85

target ≥ 0.5 · 0.63 with no base fees

No churn
0.51–0.62

without / with base fees · 0.71 at 5% churn a month

Coverage = RIFT the buyback buys with year-1 chest revenue ÷ RIFT that year-1 fleets withdraw. Half of what it buys is burned (400 RIFT per $100) and half goes back to the reward reserve. The model assumes every buyback runs at $0.05. The daily cap binds once the buyback share passes 25,000 USDC a day (about $62,500 of chests), and the floor pauses buying while RIFT is above $0.10; in both cases the USDC waits and is bought later.

Source · design §1.3, §1.6 #10, #12, #13 · constants.ts (CHESTS, PITY_LIMIT, DROP_COUNT, DROP_TABLE, FREE_SHIP_BASIS) · ChestMinter.sol (MintQuote, payMethod, RARITY_BPS, distributeRevenue) · RiftBuyback.sol (maxPerCall, dailyCap, remainingToday, priceFloor, minOutFloor) · server/src/jobs.ts (runBuyback, deviation guard) · scripts/deploy.cjs (revenue split, routes, caps, floor) · roi_results_v4.md (buyback coverage, finding 6) · docs/AVALANCHE-VE-VERI-MIMARISI.md §2.5, §6.1 #12
Revenue · weekly PvE season

Leaderboard pool

Ranked by exploration points (EP) from successful missions; riskier maps give more EP per hour. Only an account's best 5 fleets count, and the season resets every Monday 00:00 UTC. The pool is funded by the reward pool and the element market, no longer by chest sales.

Implemented · engine, server

Pool sources

Emission share · 15% of B(y), paid pro rata: each week pays 15/80 of the gameplay RIFT emitted that week, up to the week's budgetY1 ≤ 317,308 / week
Element market · 30% of every item fee0.9–1.5% of the sale
NFT sales · paid in AVAX on VoidMarket wallet sales; how it reaches the RIFT prizes is open1.5% of the sale

The 5% events budget is paid the same way (5/80 of gameplay emission). Budget a week does not pay stays in the reward pool. The weekly job pays the top 100 accounts into their vaults automatically. Design only, not in code yet: an anti-bot review of the top 100 before payout, and a cosmetic Leviathan Hunters side board (most T7 wins).

Payout ladder

LEADERBOARD.PAYOUT_BPS
RankEachBand total
115%15%
210%10%
37%7%
4–103%21%
11–500.8%32%
51–1000.3%15%
Source · design §1.2, §1.4 · GDD §11 · constants.ts (LEADERBOARD, EMISSION.SPLIT, MARKET.FEE_SPLIT) · engine.ts (leaderboardWeeklyCap, proRataPayout, weeklyScore, payoutShares) · server/src/jobs.ts (settleLeaderboard)
Governance · controls

Control valves & keys

Valves slow the economy down automatically when it runs hot, and most of them are now hard limits rather than soft ones. Today one server key holds the signer and burner roles; from Phase 3, separate keys make sure no single hot key can mint, pay or pause on its own.

Valves

ValveTriggerEffectStatus
Emission coefficientForecast demand is above the cap minus the debtOne rate per UTC day, min(1, (cap − debt) ÷ forecast), fixed at the day's first claim and paid to every claim of the day, down to 0Implemented
Overshoot debtA day emits more than its capThe excess lowers the next days' rates until it is repaid (30-day look-back)Implemented
Emergency breakerA claim would push a day past 1.5 × its capThat claim is paid the capacity left, later ones nothing; a warning is loggedImplemented
Yearly decayEvery 365 days from TGEBudget × 0.8, enforced by RewardReserveImplemented
Claim windowA claim more than 72 h after the mission is backCounts against the claim day, at its coefficientImplemented
Locked-rate bandPrice moves fastNew-mint rate moves max ±15% a week, capped at 4× launchImplemented
Reactor coreA ship has earned 1.5 × its basisRIFT earnings stop until a recharge (0.35 / 0.70 / 1.05 × basis, burned); after 3, retired at 6 × basisImplemented
Basis = price paidEvery mintA smaller core for cheaper ships; free-chest ships get 30% of the nominal basisImplemented
USD × L pricesThe RIFT price movesRepairs, fuel, crafting and base fees keep their USD weightImplemented
Market lock and seasoningA market buy or saleBought items locked 7 days; sale proceeds withdraw at 12% for 7 daysImplemented
Daily capsAlways3 fuel packs; 3 Fuel or Fusion Cells togetherImplemented
Buyback guardEvery buybackAdmin-set route, caps per call and per UTC day, an admin price floor under minOut, deadline, pause; the keeper skips a quote more than 5% below its recent medianImplemented
New-account capAccount younger than 30 days$1,000 a day across withdrawals, exports, game listings and offer salesPhase 2–3
Store cap and bindingBound stock reaches the StoreBase production waits in the Silo, then stopsPhase 1
Export capsPer player and per item per dayVouchers refused above the cap; alarm at 50% of the global capPhase 3
Vault pauseThe GUARDIAN pauses by hand (automatically on drift from Phase 3)Deposits and withdrawals stop; only the admin unpausesImplemented
ReconciliationLedger and chain disagreeAlarm + automatic pause by GUARDIANPhase 3

Keys

split from today's single hot key in Phase 3
KeyCan do
Admin (multisig)Every admin role moves to ADMIN_ADDRESS at deploy and the deployer renounces its own. ChestMinter ownership is offered to ADMIN_ADDRESS at deploy (Chainlink's two-step ConfirmedOwner); the handover completes when it calls acceptOwnership(), and until then the deployer still owns ChestMinter. Routes, caps, buyback price floors and recipients change only here; a 24–48 h timelock is planned. It has to move the buyback floor as RIFT's price moves. The admin also holds the RiftBuyback pause; whether the GUARDIAN should get it too is an owner decision. It is fully trusted over RiftVault: payFromReserve moves any amount out, and it can grant itself the signer role and raise the withdrawal caps. RiftVault holds every daily release and the RIFT behind player balances; whether its admin goes behind the timelock first, or the keeper releases only what has been earned, is an owner decision. The same key decides where revenue goes and who mints: the router, routes, floor, reserve and burn share of RiftBuyback, the revenue split, RIFT reserve and quote signer of ChestMinter, and the minter role of the ships and crew. A compromised admin could therefore also take the USDC and AVAX waiting in RiftBuyback and every undistributed and future chest payment, and mint unlimited ships that draw on the daily emission.
KEEPER NewRewardReserve releases and RiftBuyback buybacks, within the schedule, the caps and the price floor: a leaked key can at worst buy at the floor price, up to the daily cap. Defaults to the server signer unless KEEPER_ADDRESS is set.
RIFT signerRiftVault withdrawal vouchers and chest quotes, which now sign the payment method.
BURNERburnFromReserve. Today the server signer holds it with no limit; a separate key with a daily budget comes in Phase 3.
ITEM_SIGNER (KMS)Sign only: item vouchers, ListAttest. Cannot send transactions (Phase 3).
RELAYERlistFromGame, fillForVault, actWithSig, fillOfferFromGame, cancelNonce (Phase 3).
GUARDIAN UpdPause only: RiftVault PAUSER_ROLE from the deploy (GUARDIAN_ADDRESS; without it the admin holds it). Only the admin unpauses. The automatic pause on reconciliation drift comes in Phase 3.
Team multisigThe fixed TeamVesting beneficiary; it can rotate its own signers.

The Phase 3 contracts (VoidItems, ItemBridge, VoidMarket) follow these rules: OpenZeppelin 5.x, nonReentrant on every entry, separate EIP-712 domains and immutable fees. The v4 contracts are smaller: RewardReserve and TeamVesting only pay out within their schedule, RiftBuyback.buyback is nonReentrant, and its burn share (burnBps, 50%), caps and price floors are admin settings, not immutable; a cap or floor of 0 turns an input off. Audit starts at contract freeze (about week 3 of Phase 3).

Source · design §1.2–1.6, §5 · plan §0.2 #5, §0.3 #12, §4.2, §4.4, §4.7 · engine.ts (fixDayCoef, breakerCoef, emissionCoefOf, emissionDay, rechargeOffer, isRetired) · server/src/store.ts (emissionCoefs) · server/src/jobs.ts (runBuyback) · server/src/chain.ts (currentLockedRate) · RiftBuyback.sol, RiftVault.sol, RewardReserve.sol · scripts/deploy.cjs (admin handover, GUARDIAN_ADDRESS, KEEPER_ADDRESS, BURNER_ROLE, buyback limits)
Governance · delivery

Roadmap

The plan ships in five phases. Each phase has an acceptance check; mainnet waits for the balance gates and the audit.

  1. Already in code

    Implementeddemo · deployable to a testnet

    Missions T1–T7, fleets, Workshop, fuel, vault, the item market and the weekly leaderboard. The v4 economy in the engine and the game server (keeper jobs off by default): emission schedule, reactor core lifetime, basis by price paid, element fees, the 7-day lock, fresh-proceeds seasoning and USD × L prices. The galaxy (7 sectors, 40 locations) and its explorer in the demo. Contracts RiftToken, VoidShips, VoidCrew, ChestMinter, RiftVault, NftMarket, RewardReserve, TeamVesting, RiftBuyback: written and tested, pre-audit, not on mainnet.

  2. Engine + demo

    Done · in demo~2 weeks

    Base constants, the base engine, mission hooks, bound stock, item effects, demo seed, art unification, the simulator baseline.

  3. Server + database

    In progress~1.5 weeks

    Base routes and the item ledger are in progress. The v4 wiring is done: one emission rate per day (forecast, overshoot debt, 1.5 × breaker, GET /emission/today), the fee rate stored per listing, tradable-only sell lists, the purchase lock, fresh-proceeds seasoning, location launches, the payment method in chest quotes, the withdrawal clock for a first ship or crew that is bought or gifted, and the burn receipt check; the keeper jobs (reserve release, buybacks inside the contract's caps and floor, with a deviation guard) are in place behind flags, off by default.

    • Fixes from the plan: new-account cap, 503 on chain writes when the chain is not ready.
    • Two concurrent builds: one wins. Silo cut at 12 h. Ledger equals inventory change. Burns grow by the fees.
  4. Planet Base UI live

    Planned~1–1.5 weeks, parallel with 3

    Six building cards, research tab, Silo/Store strip, queues, HUD output rates, claim → launch → build in one button.

  5. Contracts + indexer

    Planned~4 weeks + 7-day soak

    VoidItems, ItemBridge, VoidMarket (items in RIFT, ships and crew in AVAX), indexer v2, relayer, reconciliation, vesting contracts for the other 39% of the supply; Avalanche Fuji in dual mode. The ChestMinter AVAX path (PAY_AVAX checked against Chainlink AVAX/USD) lands before contract freeze. Audit starts at contract freeze.

    • Reconciliation drift 0 during the soak; export/import credit once; fees exact; gas within ±30%.
  6. Market UI

    Planned~2 weeks, parallel with audit

    Item desks on VoidMarket with buy orders, the seller fee panel, Inventory (bound / locked / tradable), "Advanced / Wallet" export and import, Vault state machine. Demo labels say "Simulated settlement".

  7. Balance + mainnet

    Planned~2 weeks

    Simulator gates with the base's benefits and the far sectors, telemetry, audit fixes, multisig, one-time listing migration, Avalanche C-Chain mainnet in onchain mode. NftMarket removed.

Open owner decisions

recommendation or finding in brackets
  • Ship Mint and free-chest payback below the 60-day floor (p10 42.3 and 23.4 days). (smallest fix: a $69 one-ship basis, as the Ship Mint price or a 69% free-ship basis; or an engine rule change)
  • Planet-base adoption vs the §2 targets. (no base fees: 5 of 6 targets met; every account paying them: 4 of 6, median payback 246 days; one target has to give)
  • Reading of the sink target: gameplay emission only, with leaderboard and events paid pro rata instead of at their fixed budget. (needs sign-off in the design doc)
  • Far-sector loot: 11 locations drop 1.31–1.84 × home to keep pay per flight hour level after fuel, above the 90–130% band. (alternative: a smaller fuel surcharge or smaller odds cuts)
  • Rarity power: Epic full-match fleets pay back at a median of 52 days, Mythic at 27. (compress or keep as the rarity reward)
  • Early-backer and public-sale shares if those rounds do not happen (to the treasury or ecosystem) · buyback burn/reserve split (50/50 proposed) · element fee rates and split (3/4/5%, 50/30/20 proposed)
  • Where the AVAX leaderboard and treasury shares from NFT sales are held, and the minimum fee on AVAX sales. (open, 23 Oct 2026)
  • Keep base output bound? (yes; a tradable version would need ≤ 0.3× output and matching costs) · Keys and tickets never tradable? (yes, pending legal review)
  • Relayer gas budget: 10k actions a day ≈ $45–450 at 0.01–0.1 gwei. A second build queue for RIFT? (not at launch; pay-to-win risk) · Shielding rounding (round once: −10.8% at L5 on a plain ship)
Source · plan §7, §9 · design §4, §5 · tools/roi_results_v4.md (findings 1, 3, 5, 7) · galaxy content v1.2 (balance summary) · docs/AVALANCHE-VE-VERI-MIMARISI.md §2.5, §6.1 #12
Governance · future expansion

PvP limits

An opt-in Red Sector is planned after launch, outside phases 1–5 (the explorer already shows a teaser at the galaxy core): +20% rewards and +50% EP, but fleets there can be intercepted. Losses are capped so PvP can never drain a player.

Design only
RuleLimit
Stealable tokens (cargo in transit only, never the vault)15%
Stealable materials (unprotected storage)10%
Daily PvP loss vs daily earnings20%
NFT destructionnever
War tax on loot (burned)10%
Source · GDD §12
Governance · read this

Risks & disclaimer

Payback is a simulation result, not a promise. In the v4 model 43% of fleets pay back within a year; cautious and two-visit players mostly do not, and fleets bought after the cap starts to bind pay back more slowly (bought in month 18: 20% with a perfect demand forecast, about 15–17% under the server's forecast rule). The model assumes a growth path and a fixed $0.05 RIFT price. Token value depends on the market. Chests may count as loot boxes in some countries, and the token may fall under securities rules. Legal review comes before launch, and marketing must avoid "guaranteed return" language.
Growth vs the cap

Emission does not grow with players. If many join, the coefficient falls (to about 0.6 in year 3 on the base path) and every fleet earns less. The server's forecast leans low: a day where the cap binds pays at most cap ÷ 1.1, and the shortfall is never paid back.

Balance drift

Base output and far-sector loot could push supply above demand. Cheap Helium-3 (under about 4.90 RIFT) would make crafted fuel replace more pack burns than modelled. Gate 5b and telemetry watch it.

Model limits

The simulator flies only the home sector, leaves out the base's benefits and chest drops, fixes the RIFT price and sets each day's rate from that day's actual demand (a perfect forecast). Real players and prices will differ.

Chain and keys

Reorgs, key management, relayer gas, buybacks into thin liquidity and the admin key. Credits wait for the safe head, keys are split, buybacks carry daily caps and a price floor, and reconciliation pauses on drift. A compromised admin could redirect reward releases and empty RiftVault with payFromReserve, which holds every daily release and the RIFT behind player balances. It could also take the revenue waiting in RiftBuyback and every chest payment (by swapping the router or the revenue split) and mint unlimited ships that dilute emission, so it is a multisig with a timelock planned.

Not built yet

The AVAX payment path, VoidMarket, ItemBridge and the vesting contracts for 39% of the supply are not written. Every contract is pre-audit.

Legal

Loot boxes and token rules need a legal opinion. Keys, fragments and tickets are never tradable, which keeps free chests off the market.

Not financial advice

This page describes a game economy under development. Nothing here is an offer to sell or a solicitation to buy any token or security, and nothing here is investment, legal or tax advice. Figures come from simulations, contracts and design documents; real outcomes will differ. Only spend what you are happy to spend on a game.