Paid Content is how players buy things inside your game. Every offer has a price, a Wavedash-rendered paywall, and a content identifier your game passes to the SDK. Wavedash takes care of payment processing and lets your game know what was purchased. You create paid content offers in the Developer Portal (see Monetization) and pick one of two types:
| Durable | Consumable | |
|---|---|---|
| What it is | Purchased once, never expires | A purchase the player can make again and again |
| Examples | Base game, downloadable content | In-game currency, extra lives, extra time |
| Who fulfills it | Wavedash. We gate build files and only allow purchasers to fetch them | Your game. It applies the in-game effect of the purchase, then calls fulfillPurchase |
| Check ownership | isEntitled / getEntitlements | Your game tracks the player's inventory |
triggerPaywall when already bought | Resolves true immediately without showing the paywall | Always opens the paywall for a repurchase |
Both types open the same paywall with triggerPaywall and arrive through the same PURCHASE_COMPLETED event — the payload's type field tells you which one it is. If you configure webhooks, Wavedash also delivers every purchase and refund event to your backend; see Webhooks.