Skip to content

Custom Currencies

By default, operators can use standard global currencies (e.g. USD, EUR, USDT, USDC) that are available in Beexar. If your platform uses custom tokens or non-standard currencies, you can add them as custom currencies in the backoffice.

Custom currencies use the CUSTOM_* prefix internally (e.g. CUSTOM_GOLD, CUSTOM_SHITCOIN), but are displayed to players without the prefix.


Navigate to Operators → select an operator → Currencies tab. (The tab requires an active custom_currencies subscription.)

  1. Click Add Currency

  2. Fill in the form:

    FieldRequiredDescriptionExample
    CodeYesCurrency identifier. Will be prefixed with CUSTOM_ automaticallyGOLD → stored as CUSTOM_GOLD
    NameYesDisplay name for the currencyGold Coins
    DecimalsYesNumber of decimal places (0–16)2 for cents, 0 for whole tokens, 8 for crypto
  3. Click Save

RuleDetails
FormatUppercase letters, digits, and underscores
Raw code length1–25 characters (what you enter, e.g. GOLD)
Full code length8–32 characters (with CUSTOM_ prefix, e.g. CUSTOM_GOLD)
Full code pattern^[A-Z][A-Z0-9_]{2,31}$ — same regex for all currencies in the system
PrefixCUSTOM_ is added automatically — don’t include it in the code field
UniquenessMust be unique per operator
You EnterStored AsDisplayed to Player
GOLDCUSTOM_GOLDGOLD
SHITCOINCUSTOM_SHITCOINSHITCOIN
VIP_TOKENCUSTOM_VIP_TOKENVIP_TOKEN

The decimals field controls how monetary amounts are formatted and displayed:

DecimalsExample AmountUse Case
0100Whole tokens (coins, gems)
2100.50Fiat-like currencies (USD, EUR)
80.00001234Cryptocurrency-like tokens
160.0000000000000001Maximum supported precision

The decimals value you configure is automatically used across the entire platform — from session creation through game logic to the player-facing UI. All monetary amounts are formatted according to the currency’s decimal precision.


To remove a custom currency:

  1. Find the currency in the Currencies tab
  2. Click the Deactivate button
  3. Confirm the action

When launching a game with a custom currency, use the full CUSTOM_* name:

Terminal window
BODY='{"casino_id":"your-slug","game":"dice","account":{"id":"player_1","currency":"CUSTOM_GOLD"}}'
SIGNATURE=$(echo -n "$BODY" | openssl dgst -sha256 -hmac "$SECRET" | awk '{print $2}')
curl -X POST https://gateway.beexar.com/api/v1/softswiss/launcher/real \
-H "Content-Type: application/json" \
-H "X-REQUEST-SIGN: $SIGNATURE" \
-d "$BODY"

Beexar sends the full CUSTOM_* currency code in wallet callbacks:

{
"account_id": "player_1",
"currency": "CUSTOM_GOLD",
"game_id": "dice",
"round_id": "550e8400-e29b-41d4-a716-446655440000",
"finished": true,
"transactions": [
{ "id_provider": "tx_1", "type": "bet", "amount": "100" },
{ "id_provider": "tx_2", "type": "win", "amount": "195" }
]
}

When a game session is launched, Beexar validates that the requested currency is available for the operator:

  1. Global currencies (USD, EUR, USDT, USDC, etc.) are always available to every operator
  2. Custom currencies (CUSTOM_*) must be added to the operator and require an active custom_currencies subscription
  3. If the currency is not configured, the launch returns an error; if it is a custom currency but the subscription is inactive, the launch returns 403 FEATURE_SUBSCRIPTION_REQUIRED

This ensures players cannot launch games with currencies that the operator hasn’t configured or paid for.


The Games List API (GET /api/v1/operator/games) returns available currencies for each game. The currencies are determined by the game’s owner operator:

  • Global games (available to all operators) — show global currencies
  • Operator-specific games — show global currencies plus the owner operator’s custom currencies

This allows game aggregators to display which currencies each game supports.