Coin Economy
Coins, the shop, mystery boxes and inventory: a spendable currency your community earns and spends, separate from XP.
Coins are a spendable currency that sits alongside XP. Members earn coins as they complete quests, then spend them in your shop on cosmetics, perks, or consumables like a streak freeze. Coins are deliberately separate from XP: spending coins never moves anyone's rank or tier, so your leaderboard stays a pure record of what members earned.
Currency
Coins minted from quest activity at an earn ratio, protected by weekly treasury guardrails.
Shop
Items members buy with coins: cosmetics, direct grants, and consumables.
Mystery boxes
Weighted random rewards, either granted free by a quest or bought with coins.
Coins never touch XP
XP and coins are two different ledgers. XP ranks your leaderboard and drives tiers; coins are spent in the shop. There is no path where spending coins changes a member's XP, rank, tier, badges or streak. That separation is by design, so the leaderboard can't be bought.
Turning the coin economy on
The coin economy is switched on for your project by Onsend as part of onboarding; there's no self-serve toggle in the dashboard. Talk to your Onsend contact or email support@onsend.com to enable it. When you do, you'll agree two things together:
- Earn ratio: how many coins a member earns relative to the XP they earn (for example, 1 coin per XP). This is what mints coins as quests are verified.
- Weekly treasury guardrails: caps on how many coins, and how much prize value, your project can hand out per week.
Until it's enabled, the shop is dormant
You can build out your shop catalogue before the currency is on, but items won't transact and no coins are minted until Onsend enables the economy for your project. The Coin Shop page shows a reminder when currency isn't yet enabled.
Weekly treasury guardrails
Onsend caps three things per rolling week so a misconfigured reward or an abuse spike can't drain your treasury:
- the number of coins credited,
- the total prize value handed out, and
- the number of high-value prizes.
When a cap is hit, high-value shop items and mystery boxes pause for the rest of the week and resume automatically next week; ordinary low-value items keep working. You mark an item or a box outcome as high-value in its config (see below); only those count against the prize-value and high-value caps.
The shop
Open Coin Shop in the admin sidebar (requires the Admin role). Each item is a thing a member can buy with coins. New items start as Draft (inert); you activate one to make it purchasable.
Admin → Coin Shop: item list with cost, type, stock and status
slot: coin-economy.shop-listAdd an item
Open the create form and set the basics
Fill in the Slug (lowercase letters, numbers and dashes), the Name (up to 120 chars), and the Cost (coins).
Admin → Coin Shop → add-item form
slot: coin-economy.shop-createPick a delivery type
The Delivery type decides what a member receives when they buy:
| Delivery type | What the buyer gets | Extra fields |
|---|---|---|
| Inventory | A held consumable that a connector later spends (e.g. a streak freeze). | Item kind (e.g. streak_freeze), Quantity per purchase |
| Direct grant | An immediate reward: an XP multiplier. | Multiplier value (1–10) |
| Cosmetic | A display-only unlock. | Item kind |
Set stock and limits (optional)
- Max per user: leave blank for unlimited (
∞). - Total stock: leave blank for unlimited.
- High-value: turn on for premium items so they count against your weekly treasury caps. High-value items pause when the weekly prize-value or high-value cap is hit. When on, set a Prize value (cap units) for the item.
Save as draft, then activate
Saving creates the item as Draft. From the list, click Activate to make it purchasable. You can Deactivate an active item back to draft, or Archive it to retire it.
Streak freeze
A streak freeze is just a shop item with delivery type Inventory and an
Item kind of streak_freeze. When a member buys one, it sits in their
inventory; if they later miss a day on a daily_checkin quest, the freeze is
spent automatically to save their streak instead of resetting it. Set the coin
cost to whatever you want the safety net to be worth.
There's no separate streak-freeze screen
Streak freeze isn't a toggle; it's a shop item. Create an Inventory item with
item kind streak_freeze, activate it, and members can buy their own streak
protection. See Daily check-in for the quest
side.
Mystery boxes
A mystery box is a quest that pays out a weighted random reward. You add it like any quest: from a campaign's Add quest wizard, pick the Mystery box connector. It runs in one of two modes.
Admin → Campaigns → (campaign) → Add quest → Mystery box config
slot: coin-economy.mystery-box-configChoose earn or spend mode
The Open mode field sets how a member opens the box:
- Earn (default): the box is granted free by completing the quest. It can award XP or a multiplier.
- Spend: the box costs coins to open. Set the Cost to open (coins). A spend box can award a multiplier or nothing (never XP), and only works once your coin economy is enabled.
Define the outcomes
Add 2–10 outcomes. Each has a Display name, a Weight (the picker shows the live percentage), a Type (XP, multiplier, or nothing), and a Rarity label (Common → Legendary). If a rarity label over-promises versus its odds, you'll get a non-blocking warning so the table reads honestly.
Show or hide the loot table
Show loot table to users is on by default, so members can see the odds. Turn it off for a surprise-mode campaign.
Box rolls are fair and final
Each member's roll for a given box is deterministic: a re-attempt always yields the same outcome, so a box can't be re-rolled for a better prize.
Inventory
Anything a member buys with delivery type Inventory lands in their personal inventory, where consumables (like a streak freeze) wait to be spent by the relevant quest. Inventory is a member-facing surface; there's no admin inventory screen. Your control is the shop: define the items, and members buy and hold them.
Members who joined by email keep their coins
A member can join your community by email before they ever connect a wallet. When they later sign in with a wallet, their two identities merge, and the coins (and progress) they earned as an email-only member carry over to their wallet identity automatically. You don't do anything for this; it just works, so nobody loses a balance by adding a wallet later.
Tips
- Enable currency before you launch the shop. Build the catalogue early, but remember nothing transacts until Onsend turns the economy on.
- Use draft to stage. Create and review items as drafts, then activate a set together when you're ready.
- Mark premium rewards high-value. It's what keeps your weekly treasury caps meaningful, and it's why a premium item pauses instead of overspending.
- Spend boxes never give XP. If you want a box to award XP, it has to be an earn box. Spend boxes trade coins for multipliers or nothing.