Onsend Docs

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.

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.

Screenshot pending

Admin → Coin Shop: item list with cost, type, stock and status

slot: coin-economy.shop-list

Add 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).

Screenshot pending

Admin → Coin Shop → add-item form

slot: coin-economy.shop-create

Pick a delivery type

The Delivery type decides what a member receives when they buy:

Delivery typeWhat the buyer getsExtra fields
InventoryA held consumable that a connector later spends (e.g. a streak freeze).Item kind (e.g. streak_freeze), Quantity per purchase
Direct grantAn immediate reward: an XP multiplier.Multiplier value (1–10)
CosmeticA 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.

Screenshot pending

Admin → Campaigns → (campaign) → Add quest → Mystery box config

slot: coin-economy.mystery-box-config

Choose 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.

On this page