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

# Live

> Watch your bets as they settle, look up any bet by its ID or Solana signature, and compare each game's return to player with the return it should pay.

The **Live** page shows your game servers' bets as they settle, with each game's return to player. From the top, it holds the lookup bar, the figures for a period, the newest bets, the return to player by game, your wallet's round trip and the errors of the last 24 hours. Every member of your casino can open it.

The page needs a game server that is deployed. Until then it says `Your bets show here once a game server is live.` and links to **Game server**.

## Look up a bet

Paste one of these into the lookup bar, **Bet ID or Solana signature**, and choose **Find**:

* A bet ID: 16 to 80 letters, digits, `-` or `_`.
* A Solana transaction signature.
* The address of a transaction on an explorer, such as `https://explorer.solana.com/tx/<signature>`.

As you type, the bar names what it recognises, **Bet ID** or **Solana signature**. What you find opens in a drawer beside the page.

* **A bet ID.** The dashboard asks your game servers. A bet is found while it is among a game server's newest 500 bets, or for 30 days after its Solana record on a game server that records bets. A bet that was never recorded, such as one refused for funds or abandoned, is found only while it is among the newest.
* **A Solana signature.** The dashboard reads the transaction from Solana and accepts it only if one of your game servers signed it. The drawer lists the bets it records, and each opens with its details from your game server.

When nothing matches, the bar says `None of your game servers holds bet <ID>.` or `None of your game servers recorded transaction <signature>.` If a game server did not answer, the bar names it and says the bet may be there.

You can also find a bet from any page of your casino. Press ⌘K, or Ctrl K, and paste a bet ID or a signature: **Find bet** or **Find Solana transaction** opens it on **Live**. **Find a bet** opens **Live** with the lookup bar ready.

## The figures

The figures cover one period and one currency. Choose the period with **1 h**, **24 h**, **7 d** or **30 d**; the page opens on the last 24 hours. With two or more currencies, a **Currency** control switches between them; the page opens on the currency with the most bets in the period.

| Figure | What it counts |
| - | - |
| Bets | The complete bets of the period. |
| Wagered | What those bets staked. |
| Paid | Their gross payouts, stakes included. |
| GGR | Wagered minus paid. |
| Return to player | Paid divided by wagered, beside the return your mix of games should pay: each game's expected return, weighted by what was wagered on it. |

The figures come from the totals each game server reports every 60 seconds, so they change once per report. **Updated** gives the time of the newest report. Amounts are rounded to two decimals; a single bet's amounts are exact.

## The newest bets

The page reads your game servers' newest bets every few seconds while it is in view, so a bet shows within seconds of settling. New bets slide in at the top, and a bet updates in place when its Solana record arrives.

| Column | What it shows |
| - | - |
| Time | When the bet settled. |
| Game | The game played. |
| Bet | The start and the end of the bet's ID. |
| Wager | The stake and its currency. |
| Multiplier | The round's multiplier. |
| Payout | The gross payout, stake included, or `Refused` or `Abandoned`. |
| Accepted in | How long your game server took to accept the bet. |
| Solana | `Recorded`, with a link to Solana Explorer; `Pending` while the bet waits for its record; `–` when the bet is not recorded. |

Filter the bets by **Game** and **Currency**. **Pause** holds new bets aside with a count, and **Resume** shows them. New bets also wait while your pointer or keyboard focus is on the list, and a button such as **Show 3 new bets** brings them in. The list shows the newest 100 bets and keeps 500 for the filters.

The page never shows a player's ID. Each game server keeps its newest 500 settled bets in memory only: a restart or a redeploy of a game server empties it, and kinematic stores no individual bets.

A line under the list names any game server whose bets cannot show, and why:

* It runs a release from before the live monitor. Update it on the **Game server** page.
* It did not answer in time, or could not be reached. Its bets show again when it answers.
* It refused the dashboard's signature. Redeploy it on the **Game server** page.
* Its Solana recording is paused. Its bets wait and are recorded when it runs again. [Solana record](https://docs.kinematic.run/dashboard/game-server.md#solana-record) explains why recording pauses.

## A bet in the drawer

Select a bet in the list, or find it, to open it in the drawer:

* **The result.** A complete bet shows its payout and multiplier with **Won** or **Lost**. Any other bet says why it has no payout, such as `Your wallet declined the stake, so no money moved.` for `insufficient_funds`, or `The bet was not revealed within 24 hours, so its stake was refunded.` for an abandoned bet.
* **The bet.** **Bet ID**, **Game server**, **Placed**, **Accepted in** and **Settled in**, with any extra stakes a Blackjack round took and the number of player actions.
* **Provably fair.** The VRF key, the seed hash, the seed and the VRF output.
* **Solana record.** The transaction with a link to Solana Explorer, its slot, block time and network, and the bet's place among the records in it. When the dashboard reads the transaction from Solana, it shows `Verified by the program` if the transaction succeeded and the program logged the bet, and whether the record matches your game server's receipt. A bet still waiting for its record takes it in the open drawer as soon as it arrives.
* **The signed bet and its outcome.** The bet the player's browser signed and the round's outcome, as JSON.

A transaction shows its signature, network, slot, block time, the game server that signed it and the VRF key, then **Bets in this transaction**. Select a bet to open it; **Back to the transaction** returns.

Sandbox game servers record bets on Solana devnet. Live game servers record nothing on Solana until the audited mainnet program is deployed: when none of your game servers records, the feed has no **Solana** column, and the drawer says `This game server does not record bets on Solana.`

## Return to player by game

For the period and the currency of the figures, each game with complete bets has a bar with its observed return, the number of bets it rests on and a marker at its expected return at your settings. The scale runs from 90% to 110%, and widens in steps of 5 points, up to 50% to 150%, when a game is further off. Baccarat and Blackjack have no marker: what they return depends on the bets and the play. [Return to player](https://docs.kinematic.run/concepts/return-to-player.md) explains the expected returns.

An observed return wanders around the expected one and settles only over many bets: a few large wins move it far in a short period. Compare the longer periods.

## Wallet round trip and errors

Both cover the last 24 hours.

* **Wallet round trip.** How long the wallet takes to answer your game servers: the median and the 95th percentile, as each game server reports them. In sandbox it times the test wallet inside your game server.
* **Errors in the last 24 hours.** Your game servers' errors and refused requests by code, each with a sentence, its count over the 24 hours and its count in the last hour. [Errors](https://docs.kinematic.run/reference/errors.md) lists every code. When there are errors, the link **Game server page** under the list opens each game server's [newest errors](https://docs.kinematic.run/dashboard/game-server.md#newest-errors) with their details.

## Home once you are live

Once your casino is launched, **Home** shows its last 24 hours in one currency (bets, wagered, paid, GGR and the return to player, each beside the 24 hours before), what was wagered and paid in each hour of the last 7 days, your five newest bets, and each game server's state with its last report and its bets. Select a bet to open it on **Live**.

A banner on **Home** says when new bets are stopped, or when a game server has sent no report for 5 minutes.


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