Key takeaways
- A virtual economy stays healthy when every source of currency is matched by sinks players actually want to use, so balances grow slowly and prices keep their meaning.
- Price items in minutes of play first and in currency second, then check that buying is a shortcut rather than the only realistic path.
- Treat offerwall rewards as a separate, revenue-backed source: price them against what a buyer gets per dollar of your net revenue, route them to a currency with strong sinks, and take them back on reversals.
What is virtual economy design?
Virtual economy design is the work of deciding how a game or app creates currency and items (sources, also called faucets), how it removes them (sinks, also called drains), and what everything costs. A healthy economy keeps the amount of currency in players’ hands growing slowly enough that prices stay meaningful. When sources outrun sinks for long, you get inflation: balances pile up, rewards stop feeling like rewards, and players who would have paid stop paying.
For the exact offerwall reward formula, see How to set your virtual currency exchange rate.
Sources and sinks: the core loop
Every unit of currency enters through a source and leaves through a sink or sits in a balance. Unity’s game economy design guide puts it simply: faucets are how players earn currency and “control the pace of progression”, and “sinks are what keep currency meaningful.”
Daniel Cook’s essay on value chains adds the part designers often skip: each chain of actions should end at an anchor, a real player need such as competence, autonomy or relatedness. A sink nobody cares about is not a sink, it is a tax players avoid. A good sink is something players want to spend on.
| Sources (currency in) | Sinks (currency out) |
|---|---|
| Quest, level and battle rewards | Upgrades with rising costs |
| Daily login and streak rewards | Consumables: energy refills, boosts, revives |
| Achievements and milestones | Cosmetics and collections |
| Selling items back to the game | Crafting, with some value lost in the conversion |
| Rewarded video ads | Speed-ups on timers |
| Offerwall rewards | Event entry fees, rerolls, repairs |
| In-app purchases (hard currency) | Trading or marketplace fees |
Two properties matter most. First, whether a source is capped (five videos a day) or open-ended (battles you can repeat forever). Open-ended sources are where inflation usually starts. Second, whether a sink scales with the player. A repair fee that stays at 50 coins while income grows tenfold stops mattering by mid-game.
Soft vs hard currency
Most free-to-play games run two currencies. Unity’s guide describes soft currency as “usually earned through play” (coins, gold) and hard currency as “scarce and is typically tied to real money” (gems, diamonds), either bought or “earned in deliberately small amounts through play or rewarded ads.”
| Soft currency | Hard (premium) currency | |
|---|---|---|
| Main source | Playing the game | In-app purchases, plus small earned amounts |
| Typical sinks | Upgrades, crafting, everyday items | Speed-ups, premium items, cosmetics, soft currency packs |
| Volume | High, earned every session | Low, so each unit feels valuable |
| Conversion | Usually cannot become hard currency | Often converts one way into soft currency |
| What inflation does | Progress gets too fast, sinks feel pointless | Store revenue falls because free gems cover needs |
| Your main lever | Sinks and price curves | Scarcity and what gems can buy |
The one-way conversion is the key design choice. If hard currency buys soft currency but never the reverse, a grinding player can never turn time into premium items at scale, and a buyer can always skip the grind. Apple’s App Store Review Guidelines (3.1.1) also say that credits or in-game currencies bought through in-app purchase may not expire, so purchased hard currency can sit in balances forever (checked on October 22, 2026). Plan sinks for it, because you cannot wipe it.
Pricing: start with the value of time
Time is the one resource every player has. Evan Losi of Scopely built his GDC 2018 talk on free-to-play system design around it, calling time “the one resource that is universal to all games.” Unity’s guide gives the same advice in pricing terms: “model the exchange rate for player time, not just currency.”
- Measure how much soft currency a typical engaged player earns per minute of play at each stage of the game. Use the median from your telemetry, not the mean, which a few heavy players will drag up.
- Price every item in minutes first. “This sword should take about two hours of play” is a design decision; “12,000 coins” is just its translation.
- Set the hard currency price of skipping that time. That price is what you are really selling.
- Recheck earn rates after every update, since new sources change the minutes behind every price.
Illustrative example: putting a price on an hour of play
A player earns about 100 coins per minute in mid-game, so a 12,000-coin sword is two hours of play. The store sells 10,000 coins for 100 gems, and 100 gems cost about $1 in the gem packs. Skipping the sword’s grind therefore costs about $1.20. That is your price on an hour of play for a player in a hurry. If nobody buys it, the shortcut is too expensive or the grind too short. Sample figures only.
Inflation: what it is and how to detect it
Unity’s guide defines the inflation rate as how fast the total amount of currency in an economy grows over a period, measured as the gap between currency entering through faucets and currency leaving through sinks. Tom Kinniburgh’s chapter of the Free to Play Game Design Bible calls inflation “the enemy of an economy designer” and argues currencies should always stay “tight”, so players always want more of them.
Some inflation is normal, since players should get richer as they progress. The problem is balances growing faster than your price curve. These metrics catch it; each needs a source or sink tag on every currency event in your analytics:
| Metric | How to calculate it | Warning sign |
|---|---|---|
| Net currency created | Sources minus sinks per day, divided by daily active users | Rising week over week with no new content |
| Sink-to-faucet ratio | Currency removed divided by currency added, per progression tier | Falling well below your target in one tier |
| Days of currency on hand | Median balance divided by median daily earnings | Climbing steadily, especially for hard currency |
| Median balance by cohort | Median balance of players who joined in the same week, by days since install | Each new cohort richer at the same age than the last |
| Time-to-afford basket | Minutes of play needed to buy a fixed set of key items | Dropping, which means your prices are losing value |
| Payer conversion and ARPPU | Payers divided by active users; revenue divided by payers | Falling while balances rise |
Big live economies publish this kind of view. The EVE Online Economic Council’s Monthly Economic Report charts ISK sinks and faucets, money supply, money velocity and a consumer price index month by month. The lesson: watch the flows, not only the balances. At GDC 2020, Yongcheng Liu and Qinfang Ying of NetEase presented how NetEase monitors its MMORPG economies to reduce inflation, which is worth watching if your game has player trading.
Items inflate too. Cook’s essay describes “mudflation”, where MMO players pile up years of gear that no longer matters. If old rewards lose all value, new rewards have to be ever bigger to feel like anything.
How to fix inflation without angering players
- Add sinks before you cut sources. A new cosmetic line, a prestige upgrade or an event shop drains balances, and players choose to spend.
- Cap open-ended sources with daily limits or diminishing rewards for repeating the same activity.
- Scale sinks with progress, so late-game fees grow with late-game income.
- Use earned, event-only currencies that end with the event, so their supply never leaks into the main economy.
- Avoid taking away what players already have. A wipe or a sudden price hike reads as theft, and for purchased currency on iOS it may also conflict with the rule that it may not expire.
Earn-vs-buy balance
For each item class, decide on purpose whether it can be earned, bought, or both. A common split: everyday progress is earnable with soft currency, convenience (speed-ups, extra slots) leans on hard currency, and cosmetics are reachable both ways at very different speeds. Buying should be a shortcut, not the only realistic path, and earning should be slower but possible.
Unity’s guide lists pay-to-win perception, insufficient sinks, too-generous early rewards and ad or IAP cannibalization among the common economy mistakes. Cannibalization is the earn-vs-buy balance going wrong: free currency becomes so plentiful that payers stop needing the store. The signal is a falling ARPPU while average balances rise. Hybrid monetization for games covers how to segment payers and non-payers and read ARPPU alongside ad revenue.
Where offerwall rewards fit as a source
An offerwall lets players earn your currency by completing offers from advertisers, such as reaching a level in another game or finishing a survey, and you earn for each completed offer. In economy terms it is a source with three unusual properties:
- It is revenue-backed. Every unit it creates came with money, which makes it closer to a purchase than to a quest reward.
- It is lumpy. One completed offer can pay out more currency than a week of daily quests. Your sinks need to absorb sudden, large deposits.
- It can be reversed. Advertisers sometimes reject a result after it was credited. Your economy needs a way to take currency back, or a hold before it can be spent. See reward hold periods and publisher earnings and reversals.
Price it against your net revenue per buyer
The cleanest anchor is to compare what a buyer gets per dollar of your net revenue with what an earner gets per dollar you earn from offers. Unity’s guide puts typical app store fees at 15 to 30% per transaction so a $9.99 purchase brings you less than $9.99.
Illustrative example: pricing offerwall gems against the gem store
A game sells 1,000 gems for $9.99. After a 30% store commission the developer keeps about $7.00, so a buyer receives about 143 gems per dollar of net revenue. On the offerwall the developer sets 200 gems per $1 earned with a 75% split, so an earner receives 150 gems per dollar earned. An offer that pays the developer $2.00 shows 300 gems. Earners get slightly more per dollar of revenue than buyers, which fits the extra time they spend, and neither path makes the other pointless. Sample figures only; try your own in the virtual currency calculator.
Rules that keep the wall from breaking the economy
- Pay into the currency with the strongest sinks. Usually that is hard currency, which has premium sinks built for it. Paying offers in soft currency can flood a currency that only buys upgrades.
- Tag it as its own source in analytics, so you can see how much of your supply comes from the wall and which cohorts use it.
- Credit only from server-to-server postbacks, never from the client, and remove currency when a reversal arrives. Build a virtual currency system in Unity shows a server-side ledger that handles both.
- Never gate core progress behind offers. Apple’s guideline 3.2.2(x) says apps must not force users to download other apps to access functionality or content, while incentivizing actions inside the app is allowed (checked on October 22, 2026). Make the wall an optional path, the same way the store is. Offerwall rules on iOS goes deeper.
- Run bonuses as short events, not a permanent state, and include them in your net currency numbers while they run.
For placement and the integration itself, see Monetize a mobile game with an offerwall.
Example economy table
Here is a one-day snapshot for an engaged mid-game player in a made-up mobile RPG with coins (soft) and gems (hard). Sample figures only: the point is the structure, not the numbers.
| Flow | Type | Currency | Per day | Notes |
|---|---|---|---|---|
| Battle rewards | Source | Coins | 2,000 | Open-ended, 50 coins per battle |
| Daily quests | Source | Coins | 1,500 | Capped |
| Rewarded video | Source | Coins | 500 | Capped at 5 views |
| Login streak | Source | Coins | 300 | Capped |
| Hero upgrades | Sink | Coins | 2,500 | Cost rises each level |
| Crafting fees | Sink | Coins | 800 | Scales with item tier |
| Event entry | Sink | Coins | 400 | Weekends only, averaged |
| Shop rerolls | Sink | Coins | 300 | Optional |
| Achievements | Source | Gems | 10 | Slows down late game |
| Offerwall | Source | Gems | Lumpy | Revenue-backed, reversible |
| Speed-ups and cosmetics | Sink | Gems | 30 | Premium sinks |
Reading it: coin sources total 4,300 a day and coin sinks 4,000, a sink-to-faucet ratio of about 0.93, so the player keeps 300 coins a day. If the median balance is 8,600 coins, that is 2 days of currency on hand. That is fine, unless the player hits the hero level cap. Then the 2,500-coin upgrade sink disappears, the ratio falls to about 0.35, and balances balloon. The fix is a sink that opens at the cap (prestige ranks, cosmetic crafting), designed before players get there.
For gems, achievements (10 a day) do not cover the 30-gem daily sink, so the rest comes from purchases and the wall. That is the intended shape: gems stay tight.
Common virtual economy mistakes
Patterns that break economies
Flat sink prices against rising income. Fixing inflation with a wipe instead of new sinks. Letting soft currency convert into hard currency. Pricing items without measuring the minutes behind them. Paying offerwall rewards into a currency with no sinks. Crediting rewards from the client instead of a server postback. Ignoring reversals, so revoked rewards stay spendable.
- Watching averages. Mean balances hide a few hoarders and a broke majority. Use medians and cohorts.
- Forgetting events. A weekend bonus doubles a source; if you do not count it, your inflation numbers lie.
- Treating retention tools as free. Daily bonuses and streaks are sources too. Rewards app retention covers how to budget them.
Adding an offerwall source to your economy with Sharklio
Sharklio is a pay-per-result affiliate network. Each app sets its own currency name and icon, conversion rate, user split, rounding and an optional time-limited bonus, so the wall pays into whichever currency your design calls for. Every credit and every reversal reaches your server as a signed server-to-server postback, which is what a ledger needs. Offers depend on each user’s country and device, and reports break results down by country, offer and sub ID, so you can track the wall as its own source. You can run it through a signed link or iframe, the Offers API, the Android or iOS SDK, or the Unity, Flutter or React Native plugin. See how the wall works, or get in touch with questions about your economy.
Frequently asked questions
What are sources and sinks in a game economy?
Sources (or faucets) are everything that creates currency or items, such as quest rewards, daily bonuses and purchases. Sinks (or drains) are everything that removes them, such as upgrades, consumables, fees and cosmetics. The balance between the two decides whether prices keep their meaning.
What is the difference between soft and hard currency?
Soft currency is earned in large amounts through play and buys everyday progress. Hard (premium) currency is scarce, mostly bought with real money, and buys convenience and premium items. Many games let hard currency convert into soft currency but not the other way around.
How do you prevent inflation in a game economy?
Match every source with sinks players want, cap open-ended sources, scale sink prices with progress and use event-only currencies. Add new sinks before you cut rewards.
How do you know if your game economy has inflation?
Track net currency created per active user, the sink-to-faucet ratio, days of currency on hand and median balances by cohort. If balances rise faster than your price curve and payer conversion falls, the economy is inflating.
Should premium currency be earnable for free?
Most free-to-play games allow it in small, deliberate amounts. Revenue-backed sources such as an offerwall can give more, because each unit earned came with revenue.
Do offerwall rewards cause inflation?
They can if you pay them into a currency with weak sinks or price them far above what buyers get per dollar. Price them against your net revenue per buyer, tag them as a separate source and remove currency when a reversal arrives.
What is mudflation?
Mudflation is item inflation: over time players pile up so much gear that older rewards lose all value and new ones must keep getting bigger. Sinks for items, such as crafting, salvage or collections, slow it down.