> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinematic.run/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> These are the customer docs for kinematic, a name written in lowercase except at the start of a sentence. Kinematic provides provably fair casino games, served to a casino's site by a game server: a Cloudflare Worker that the kinematic dashboard deploys into the casino's own Cloudflare account.
> Never put SESSION_SECRET or WALLET_SECRET in code, prompts, logs, commits or chat. Read them from environment variables and ask the person you work with to set them. The dashboard's Integration page shows each secret once.
> Values such as lucky-star, luckystar.example, og-rgs-lucky-star.luckystar.workers.dev, games.luckystar.example and player_48213 are examples. Use the casino's own casino ID, game server origin, element tag, session issuer and currencies: the Instructions for your coding agent on the dashboard's Integration page hold them, or ask the person you work with.
> To debug, start at https://docs.kinematic.run/troubleshooting and https://docs.kinematic.run/reference/errors. The wallet contract is at https://docs.kinematic.run/api/wallet.openapi.yaml.
> Sandbox bets are recorded on Solana devnet. Live game servers record nothing on Solana until the audited mainnet program is deployed.

# Games, currencies and limits

> Choose the games you offer and your return to player, add currencies with their decimals, and set stake, payout and unsettled limits for each.

The **Games** page holds what players can bet on: the games, your return to player, and the currencies and limits of every bet. It has three sections, **Games**, **Return to player** and **Currencies and limits**, saved together. Owners and admins change them; other members see the page with the banner `Only the casino's owners and admins can change these settings.`

## Games

Players can open the games you turn on. Each of the 13 games has a card; select a card to turn it on or off, or use **All** and **None**. The counter shows how many are on, such as `13 of 13 games on`. At least one game stays on.

A game you turn off refuses new bets with `game_disabled`, and pages stop loading it on their next load. Each element on your page shows the game its `game` attribute names, and the loader exports the list you turned on as `config.games` for your own game picker. [Games](https://docs.kinematic.run/reference/games.md) describes each game.

## Return to player

Choose one figure for every game whose payouts follow a house edge. Four cards offer it:

| Card | What it says |
| - | - |
| 99% (Default) | You keep 1 in every 100 your players stake, on average. |
| 98% | You keep 2 in every 100 your players stake, on average. |
| 97% | You keep 3 in every 100 your players stake, on average. |
| 96% | You keep 4 in every 100 your players stake, on average. |

Under the cards, `What each game returns at <figure>` lists each game's return at the figure you chose: first the games that follow it, then Roulette, Blackjack and Baccarat, marked Fixed rules. Baccarat shows each of its bets: Player 98.77%, Banker 98.94% and Tie 85.88%. The note under the list reads `A single figure is the game's return at its default settings; Roulette's holds for every bet and Blackjack's assumes basic strategy. A range covers every Crash cash out, every Mines and Pump setting, and HiLo's first call.`

A change applies to new bets. See [Return to player](https://docs.kinematic.run/concepts/return-to-player.md).

## Currencies and limits

Amounts are in each currency's own units. A bet outside its currency's limits is refused.

Choose your currencies from the chip groups **Crypto** and **Fiat**, with their limits filled in. In the sandbox a **Sandbox** group offers `TEST`, play money with 2 decimals: each test player starts with 100,000.00 TEST. To add any other code, type it in **Add another** (2 to 12 capital letters or digits, such as `KRW`) and select **Add**; it shows under **Your other currencies**. A casino serves at most 16 currencies. If you remove a currency and add it again before saving, its saved limits come back.

Each currency has a row in the limits table:

| Column | Rule |
| - | - |
| Currency | The code, such as `USD`, `EUR`, `USDT` or `BTC`. |
| Decimals | 0 to 18: how many decimals the currency's minor unit has. `USD` has 2, so 1.00 is 100 minor units. |
| Min stake | The smallest bet. |
| Max stake | The largest bet. At least the minimum stake. |
| Max payout | The largest payout one bet may reach. At least the maximum stake. |
| Max unsettled | The most a player can be owed in payouts your wallet has not credited yet. |

You enter amounts in the currency's units, with at most its number of decimals.

When Crash or HiLo is on, a line under the table shows the largest stake your max payouts allow in them. With both on and USDT at its preset max payout of 1,000,000, it reads `The game server checks each Crash bet and each HiLo hand played by hand at 1,000,000× its stake, so your max payouts allow stakes up to 1.00 USDT in those games.` A currency whose largest stake would be below its min stake is named as allowing no stake.

Your session token names one of these currencies in its `currency` claim; with a single currency it may leave the claim out.

> [!WARNING]
>
> Keep a currency's decimals once players bet in it. Once a game server has run, the **Decimals** field of each currency it serves is locked, and the page says `Decimals stay as they are for a currency your game servers serve. To use other decimals, add the currency under a new code.`

## Save your changes

While changes are unsaved, a bar at the foot of the window says `You have unsaved changes.` with **Discard** and **Save changes**. Leaving the page then asks `Leave without saving?`, with **Stay** and **Leave without saving**. One save publishes all three sections, and the page says `Your changes are saved. Your game servers take them within a minute.` You do not need to redeploy.

## What each limit does

* **Stakes.** The game server refuses a bet below the minimum stake or above the maximum stake with `bet_limit`.
* **Maximum payout.** The game server refuses a bet whose largest possible payout is above the maximum payout with `bet_limit`. It never cuts a win down to the limit. For a round played step by step, the largest possible payout covers the whole round. The game server checks every Crash bet and every HiLo hand played by hand at 1,000,000.00×, so a maximum payout of 100,000.00 allows those stakes up to 0.10. [Maximum payout and the largest multiplier](https://docs.kinematic.run/reference/games.md#maximum-payout-and-the-largest-multiplier) lists the figures for each game.
* **Maximum unsettled.** When the payouts owed to a player and not yet credited by your wallet pass this limit, the game server refuses that player's new bets with `settlement_backpressure` until your wallet catches up. Bets already in play can still add to what the player is owed.

Each player's browser signs its bets under your current terms: currency, decimals and limits. After you change them, the game server refuses once, with `authorization_binding`, a bet that a browser signed under the old terms. The browser signs its next bet under the new terms.

## Queued bets per player

[Settings](https://docs.kinematic.run/dashboard/settings.md#players-and-sessions) holds one more limit, **Queued bets per player**: how many open bets a player can have at once, from 1,000 to 10,000 (2,000 by default). Above it, the game server refuses new bets with `backpressure` until some settle.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.