Amba

Virtual Currencies

Soft and premium currencies with auto-recharge, balance caps, and transaction history.

Define virtual currencies for your app. Currencies can be soft (earned through gameplay) or premium (purchased with real money), with optional auto-recharge for time-gated mechanics.

SDK usage

Get balances

const balances = await client.currencies.getBalances();
// Returns:
// [
//   { currency_code: "gold", name: "Gold Coins", balance: 500, is_premium: false },
//   { currency_code: "gems", name: "Gems", balance: 10, is_premium: true }
// ]

Get transactions

const { data, total } = await client.currencies.getTransactions({
  currency_code: 'gold',
  limit: 20,
});

Client API reference

MethodPathDescription
GET/client/currenciesGet all currency balances
GET/client/currencies/transactionsGet transaction history

MCP tools

ToolDescription
amba_create_currencyCreate a currency (soft/premium, auto-recharge, caps)
amba_list_currenciesList all currencies
amba_grant_currencyGrant currency to a user (admin)

Example: Hearts system

Agent: "Create a hearts currency that recharges 1 heart every 30 minutes, max 5"

amba_create_currency({
  project_id: "proj_xxx",
  code: "hearts",
  name: "Hearts",
  description: "Lives for gameplay",
  is_premium: false,
  initial_balance: 5,
  max_balance: 5,
  auto_recharge_amount: 1,
  auto_recharge_interval_hours: 0.5
})

Currency options

FieldTypeDescription
codestringUnique code (e.g., "gold", "gems")
namestringDisplay name
is_premiumbooleanPremium (real money) currency
initial_balancenumberStarting balance for new users (default 0)
max_balancenumberBalance cap (null for unlimited)
auto_recharge_amountnumberAmount to auto-recharge
auto_recharge_interval_hoursnumberHours between recharges

Database tables

TablePurpose
currency_definitionsCurrency definitions with type and recharge config
user_balancesPer-user balances by currency
currency_transactionsFull transaction ledger with amounts and reasons

On this page