The parameters on this page apply to the in-game currency (Points) reward model. If you are rewarding in Bitcoin (sats), the core concepts are the same but amounts are denominated in MSATS. Contact your ZBD Customer Success Manager for Bitcoin-mode starting values.
Core parameters
None of these values need to be perfect at launch — the reward budget, per-trigger ceiling, and daily withdrawal limit are all adjustable after launch without a client build. Still, give the daily withdrawal limit the most thought up front: it’s your most important fraud control, and lowering it later is visible to players who have grown used to the higher cap.
Reward delivery: client-side vs. server-side
You have two options for how rewards reach players.Client-side (simple setup)
CallSendReward directly from the Unity client. No backend required. This is the fastest way to get started.
The tradeoff: reward delivery is visible and potentially exploitable on the client. ZBD’s withdrawal limit system acts as the primary fraud layer. A player who abuses client-side sends can earn an unlimited balance, but they can only withdraw up to their current limit, which grows slowly.
Use client-side delivery if you’re in early development or your reward amounts are low enough that client-side exposure is acceptable.
Server-side (recommended for production)
Your backend calls the ZBD Earn API to issue rewards. The client never touches theSendReward path. You can disable client-side sending entirely in the dashboard.
Server-side delivery is required if you want to:
- Tie reward amounts to actual player LTV (see LTV-Based Rewards)
- Issue rewards based on IAP receipts or MMP revenue events
- Eliminate client-side abuse entirely
Server-side calls authenticate with an Earn API key, which you create in the developer dashboard under Projects → your project → Earn → Controls. See Manage via Dashboard.Use the key from the Earn tab — it starts with
sdk_live_. The key in the API tab is for the ZBD Payments API and will not work for Earn endpoints.Withdrawal limits in depth
Every player has two values:- Rewards balance: what they’ve earned and not yet withdrawn. You add to this with
SendReward. - Withdrawal limit: how much of that balance they can withdraw right now. It grows as they play, up to a capped daily allowance that resets every 24 hours.
Increasing the withdrawal limit from your server
You can increase a player’s withdrawal limit at any time from your backend, for example when your MMP confirms a revenue event.Checking a player’s current balance and limit
Before sending a reward, check the player’s current state to avoid over-rewarding:withdrawableLimit field tells you how much of the balance can currently be withdrawn. If the limit is lower than the balance, the player has earned more than they can currently access.
In-game currency: exchange rate
This section applies to Points mode only. Bitcoin mode rewards are denominated in MSATS; no exchange rate configuration is required. The exchange rate you set determines how granular your rewards feel in the UI. At $0.0001 per unit:
You define the name and appearance of the virtual currency unit. ZBD handles the conversion when the player withdraws. See Soft Currency Model for display guidelines.