Talk to us about your in-game economy project.
Tell us your game type, your monetisation model, and what your current economy infrastructure can't handle. We'll scope the right platform and give you a fixed cost.
Virtual currency balance exploits going undetected because transaction history is stored in a way that makes it impossible to reconstruct what happened to a player's account?
Live ops team unable to run a limited-time sale without an engineer changing database records because there is no tooling for the game team to manage offers?
Custom in-game economy infrastructure for game studios who need virtual currency management, item catalogues, purchase processing, and the transaction audit trail that fraud investigation and economy balancing both require.
A game economy is not just a currency and a shop. The interactions between premium currency, earned currency, item drop rates, spend sinks, and promotional offers create a system that can inflate or deflate in ways that damage retention -- and a platform that gives the game team visibility and control over those dynamics.
Multiple virtual currency types with configurable earn rates, spend rules, and cap management
Item catalogue with bundle definitions, limited edition flags, and platform-specific pricing
Purchase processing with iOS App Store, Google Play, and Steam receipt validation
Transaction ledger recording every economy event for fraud investigation and economy balancing
RaftLabs builds custom in-game economy platforms for game studios -- multiple virtual currency types, item catalogue management, iOS App Store and Google Play receipt validation, transaction ledger with fraud detection, and economy analytics. Most in-game economy projects deliver in 10 to 16 weeks at a fixed cost.
A virtual currency that can be duplicated. An item that can be purchased, refunded, and re-purchased to accumulate more than intended. A promotional offer that applies multiple times due to a race condition. A drop rate that produces far more high-value items than the economy model intended. These are not hypothetical -- they are the failure modes that emerge when in-game economy is treated as a database feature rather than an economic system requiring its own integrity constraints.
Custom in-game economy development means the currency flows are tracked with ledger semantics, the transaction validation prevents the class of exploits that client-trusting systems allow, and the tooling gives the game team the visibility to catch economy problems before they spread.
Multiple currency type support -- premium hard currency purchased via IAP using Apple StoreKit 2 or Google Play Billing Library, soft earned currency rewarded through gameplay, event currency for limited-time seasonal campaigns, and any other types your economy design requires. The soft-vs-hard currency distinction is fundamental to economy design: earned soft currency keeps players engaged and reduces paywall friction; purchased hard currency is the primary monetisation lever. The balance between the two determines player perception of fairness and directly affects long-term retention.
Currency balance management uses ledger semantics with atomicity guarantees that prevent balance duplication when a transaction is interrupted -- the balance is derived from the ledger sum, not from a mutable counter that can be incremented twice in a race condition. Earn rate configuration covers each currency source: daily login rewards, match completion bonuses, achievement unlocks, referral rewards, and any other earn events your game design specifies.
Spend rule management defines what can be purchased with each currency type, enforcing the separation between what hard currency unlocks versus what soft currency can reach. Currency cap management sets upper balance limits for earned currencies where a cap is part of the economy model -- preventing players from hoarding more currency than the economy can absorb and creating an inflation event when they spend it.
Expiry management handles currencies or balance segments that lapse at the end of an event period -- event currencies that disappear when a seasonal campaign closes, time-limited bonus currency with a 30-day expiry. Price localisation maps IAP hard currency packs to App Store price tiers by country, ensuring local purchasing power parity rather than applying a single USD-equivalent price globally.
Item catalogue covering every item in your game with its attributes, rarity tier, associated currency costs for both soft and hard currency purchase paths, platform-specific IAP pricing, and availability rules -- on-sale permanently, limited edition, seasonal, or event-exclusive. The catalogue is the single authoritative record of what exists in your game's economy, maintained server-side so client data cannot be used to claim items that do not exist or at prices that are not current.
Bundle definition covers item packs with bundle contents, pricing, and any per-account purchase limit or limited global quantity. Limited-edition item flags enforce scarcity rules: once the global quantity limit is reached, the item becomes unavailable in the storefront automatically.
Player inventory management tracks which items each player holds -- quantity for stackable items, unique instance IDs for items that require individual tracking. Item grant and revocation for promotional grants, error corrections, and support actions are handled through authenticated admin actions with a complete audit record of who granted or revoked what and why.
Loot box probability disclosure compliance is built in for jurisdictions that require it. Belgium and the Netherlands treat loot boxes with randomised contents as regulated gambling products; the catalogue system supports configuring individual item drop probabilities, publishing those probabilities in the storefront interface as required by those regulators, and enforcing purchase restrictions for applicable item types in restricted jurisdictions.
Economy simulation modelling tracks source-vs-sink balance across the player population -- comparing the rate at which currency enters the economy through earn events against the rate at which it leaves through purchases -- to detect inflation (currency accumulating faster than it is spent) or deflation (spend sinks removing currency faster than players earn it) before they affect player behaviour at scale.
In-app purchase processing for iOS App Store via Apple StoreKit 2 and Google Play via Google Play Billing Library with server-side receipt validation against the App Store Server API and Google Play Developer API respectively. Server-side validation is the critical control: the currency or item is granted only when the platform API confirms the payment, not when the client claims the purchase succeeded. A client that sends a forged or replayed receipt to a system that trusts client-reported purchases can claim unlimited inventory without paying -- server-side validation eliminates this attack vector.
PCI DSS compliance for real-money transactions is handled through the Apple and Google payment infrastructure -- the game never directly handles cardholder data, which keeps the PCI DSS scope limited to the integration layer between the game backend and the platform payment APIs.
Purchase deduplication prevents a receipt from being applied more than once -- a receipt that has already been processed is rejected with a duplicate error rather than triggering a second grant. Refund detection for reversed IAP transactions on iOS (via App Store Server Notifications v2) and Android (via Google Play Developer Notifications) triggers the appropriate currency or item revocation with the revocation recorded in the transaction ledger. Chargeback handling workflow routes disputed payments to the fraud team with the transaction data and player history pre-assembled for the dispute response.
Fraud detection for fake purchases and chargeback patterns uses Stripe Radar or Kount for risk scoring on real-money transactions, flagging accounts with unusual purchase patterns -- multiple refund requests, purchase-refund-repurchase cycles -- for review before further purchases are processed.
Append-only transaction ledger recording every economy event -- every earn, spend, grant, revoke, purchase, refund, and expiry -- with the player ID, the item or currency, the quantity, the timestamp, the transaction type, the transaction reference, and the source event that caused the transaction. Append-only means no record is ever updated or deleted; corrections are recorded as new offsetting transactions with a reference to the original, preserving the full history.
Balance reconstruction from the ledger sum allows any player's balance at any historical point in time to be verified by replaying the ledger rather than trusting a stored balance figure. This is the control that makes fraud investigation tractable: a player who claims their currency was stolen can have their complete transaction history reconstructed in seconds, showing every earn and spend event with timestamps and sources.
Fraud investigation tooling gives support staff a timeline view of a player's complete economy history -- all currency movements, item grants and revocations, purchases, and refunds -- with filter and search tools to identify anomalous patterns. A balance that increased by 50,000 hard currency units without a corresponding purchase is visible as a ledger anomaly rather than requiring a database investigation.
Economy audit reports summarise currency sources and sinks across the player population -- total currency entered through each earn event type, total currency removed through each spend category, and the net balance change per period. Sink-vs-source balance analysis identifies whether the economy is in healthy equilibrium or drifting toward inflation or deflation, giving the economy design team data to act on before the problem affects retention at scale.
Daily active buyers and revenue metrics broken down by player segment, acquisition channel, game version, and platform (iOS vs Android vs PC). These segmented views show whether a revenue change is platform-specific, segment-specific, or a game-wide trend -- which determines whether the response is a pricing adjustment, a platform-specific promotion, or a game content change.
Conversion rate funnel from registered player to first purchaser shows drop-off at each stage in the purchase flow -- store browse, item view, add to cart, payment initiation, payment completion -- identifying where the largest abandonment occurs and giving the product team a specific step to optimise rather than a general "conversion is low" problem.
ARPU (average revenue per user) and ARPPU (average revenue per paying user) trends show whether revenue growth is coming from increasing the paying player percentage, increasing spend per paying player, or both. The gap between ARPU and ARPPU reveals what percentage of the player base is monetising and how much headroom exists.
Currency source and sink balance tracks the ratio of currency entering the economy through earn events to currency leaving through spend sinks, with configurable alert thresholds that signal when inflation (earn rate exceeding spend rate, causing currency to accumulate) or deflation (spend rate exceeding earn rate, making items feel inaccessible) is developing.
Live ops tooling for economy parameter tuning -- earn rate adjustments, price changes, drop rate modifications, promotional offer activation -- deploys changes through the admin interface without requiring an app update to the binary. This decouples the economy team's tuning cadence from the engineering release schedule.
Limited-time offer management creates discounts, bundles, and exclusive items configured with start time, end time, player segment targeting (new players, high-spenders, lapsed players), purchase limit per account, and global quantity cap -- all without a code deploy. The live ops team publishes the offer through the admin interface, and the game client fetches the current offer catalogue from the API at each session start, receiving the active configuration without requiring an app update.
Flash sale tooling serves countdown data via the API so the client can display an accurate time-remaining counter without any client-side hardcoding of sale end times. Battle pass management configures the pass tiers, the reward at each tier (currency, items, or cosmetics), the XP required to advance, and each player's current tier progress. Seasonal pass content and pricing are configured by the game team before the season launches and remain live for the season duration with no engineering involvement.
Seasonal shop management handles rotating item availability -- items that are available during a current season and are then vaulted, with the rotation schedule managed through the admin tool rather than a database migration. Promotional code generation and management supports influencer campaign codes, support credits for player compensation, and mass grant codes for events, with per-code usage limits, expiry dates, and redemption tracking.
Optional NFT and blockchain gaming integration supports ERC-721 token-based item ownership on EVM-compatible chains for studios that have made the product decision to implement blockchain item provenance. The economy ledger records the minting and transfer events alongside standard economy transactions, maintaining a consistent ownership record regardless of whether an item is held on-chain or off-chain.
Frequently asked questions
Ledger-based balance management with atomic transactions is the foundation. Rather than storing a currency balance as a single mutable number, the system maintains an append-only ledger of every transaction and derives the balance from the ledger sum. This eliminates the race conditions that allow currency duplication when multiple concurrent requests attempt to modify the same balance -- a problem that affects any system where the balance update is a read-modify-write operation on a single field.
All balance changes go through validated transaction paths with the business rules enforced server-side: the client cannot grant itself currency by sending a crafted request claiming an earn event occurred, because earn events are generated server-side from authoritative game event data, not from client assertions. Purchase grants only happen after server-side receipt validation with Apple StoreKit 2 or the Google Play Developer API confirms the payment -- the client-reported receipt is treated as an untrusted input until the platform API verifies it.
Economy simulation modelling runs sink-vs-source analysis on the production ledger data to detect when a balance exploit is active at scale -- an unusual spike in a specific earn event type, or a currency source that is generating significantly more than the designed earn rate, is detectable from aggregate ledger data before the economy damage spreads across the full player population.
Each platform provides a receipt or purchase token that the client receives after a successful in-app purchase. The backend validates this token directly with the platform's server API before granting the purchased currency or item. For iOS, this uses the App Store Server API (verifyReceipt endpoint for legacy receipts, or the newer JWS transaction verification via App Store Server Notifications v2 for StoreKit 2 transactions). For Google Play, this uses the Google Play Developer API purchases.products.get or purchases.subscriptions.get endpoint to verify the purchase token against the order record.
The grant happens only when the platform API confirms the payment is valid, not when the client claims the purchase succeeded. A receipt that the client fabricates or replays from a previous purchase is rejected at the validation step -- the platform API returns an invalid or already-consumed status and no grant occurs.
Duplicate receipts are detected and rejected using a receipt fingerprint stored in the processed receipts table -- a receipt that has already been applied returns a duplicate error. Refunded purchases are detected via App Store Server Notifications v2 for iOS (which sends a REFUND notification) and Google Play Developer Notifications for Android (which sends a voided purchase notification). On refund detection, the appropriate currency or item revocation is recorded in the transaction ledger with the refund reference.
Yes. The economy system integrates with existing player profile infrastructure via API -- it reads player data to determine eligibility for offers and passes currency grant events to the profile system for progression updates. If you have an existing inventory system or currency system that needs to be migrated rather than replaced, we assess the migration scope during discovery. Economy systems built on existing infrastructure are scoped based on what the integration requires.
A core economy covering virtual currency, item catalogue, purchase processing, and a transaction ledger typically runs $30,000 to $60,000. A more complete platform with economy analytics, live ops tooling, promotional code management, and battle pass infrastructure typically runs $60,000 to $120,000. Fixed cost agreed before development starts.
What clients say
Three-year average engagement. Founders and operators describing the work in their own words. No marketing varnish.

I was pleased with RaftLabs team quality, consistency and execution.
01 / 02
Tell us your game type, your monetisation model, and what your current economy infrastructure can't handle. We'll scope the right platform and give you a fixed cost.