Sign in (admin)
Not logged in.
Access denied
Your account isn't a staff/operator account, so you can't use this console. Nothing has been loaded. If you think this is a mistake, contact an administrator.
The at-a-glance health of the business: how many players, money in and out, and whether anything needs your attention. Start your shift here.
Today at a glance
—
Money we hold vs. money we owe
Proof we can cover every player. We must always hold at least as much as we owe players. The on-chain figure is read live from the blockchain; the full signed proof lives under Backend → Controls & monitors.
Checks each game is paying out the right amount. Use this if you suspect a game is paying out too much — a wrong payout setting or someone exploiting it.
How much each game is actually paying out
—
Payout rate = money returned to players ÷ money staked, over finished rounds. A row flagged ABOVE EDGE is paying out more than it should over enough rounds — a wrong payout setting or an exploit. House take = money staked − money returned (what the house keeps).
| game | rounds | staked | returned | house take | actual payout rate | expected | Δ | verdict |
|---|
Expected payout-rate check (settings only)
An early-warning check: re-computes each game's expected payout rate straight from its payout settings (it never looks at real bets). A FAIL means a payout setting is wrong — halt the game and investigate.
—
| game | setting | payout rate | target | tolerance | ok |
|---|
Players the fraud detection has flagged. Use this to review suspicious accounts and freeze (hold) or unfreeze (release) them. Higher score = more suspicious.
Flagged & frozen players
Every player who is not in good standing, most suspicious first (frozen players at the top). Freeze or unfreeze right from the row, open the full drill-down with View, or mark reviewed to dim a row you've cleared so the queue visibly shrinks. The fraud checks update this list automatically.
| player | suspicion score | status | updated | triage |
|---|
Players winning more than expected
Players who are getting back noticeably more than the house edge allows over enough finished rounds — a possible exploit or collusion. Payout rate is shown as a percentage (100% = break-even).
| when | player | rounds | staked | net win/loss | payout rate | suspicion score | verdict |
|---|
Fraud-signal history
A permanent, time-stamped record of every fraud signal, with the evidence (what tripped the rule). No sensitive data is shown here.
| when | player | signal | suspicion score | evidence |
|---|
Compliance cases opened automatically when a player trips a sanctions, location, or screening check. View-only here — cases are worked and closed in the compliance workflow.
Compliance cases
Cases opened by the sanctions, location and identity-screening checks. View-only; only the player id is shown (no personal details). Default view hides closed cases so the live queue stays visible.
| # | player | type | status | opened | details |
|---|
The money picture: profit, deposits coming in, and withdrawals going out. Use this for your daily and weekly money reporting.
Profit
Gross profit = money staked − money returned to players. Net profit = gross profit minus the cost of bonuses, promos and referral payouts. This is the number that tells you if the business is making money.
| period | rounds | staked | returned | gross profit | bonus cost | referral cost | net profit |
|---|
Deposits
—
| period | count | total |
|---|
Deposit conversion (token → USDC)
When a player deposits a non-USDC token we automatically convert it to USDC before crediting their balance. A stuck or failed conversion is money we received but haven't credited yet — clear these. "Received" is the token deposited; "credited as USDC" is what actually reached the balance.
| status | count | received | credited as USDC |
|---|
| reason held up | count |
|---|
Withdrawals
By status
| status | count | total |
|---|
By period
| period | count | total |
|---|
Blocked (compliance / anti-money-laundering)
| reason | count | total |
|---|
Look up any player to see their balance, identity-check level and account standing. Open a player to freeze (hold) or unfreeze their account.
Find a player
Shows only what staff need — no email or personal details. ("Identity check" is the player's verification level; "wagered" is their lifetime amount bet.)
| id | username | balance | wagered | role | identity check | status |
|---|
Player
User status
Rating score, current standing, identity-check level, withdrawal lock, and the count + history of chat warnings / mutes / bans (with reasons and the staff member who applied them).
Moderation history
| when | action | reason / duration | by |
|---|
Fund flow
Deposits & credits, bets, and withdrawals for this player — the money trail an investigator follows. Amounts are shown in USD.
| when | type | amount | ref / note |
|---|
| round | game | stake | payout | state | when |
|---|
| when | amount | fee | net out | destination | status |
|---|
Tip counterparties
Players this person exchanged tips / rain with, both directions, aggregated. Handles only — no personal details. Amounts in USD.
| counterparty | sent | received | legs | last |
|---|
Credit user
Manually credit a user's balance — a comp / support correction. The reason is required and recorded in the audit log. Your role has a credit ceiling: a comp at or under it applies immediately; a larger one is escalated for approval by a higher-authority staffer.
Credit approvals (escalated comps)
Comps above a staffer's credit ceiling wait here for a higher-authority approver. You can't approve a request you made yourself, and you can only approve amounts within your own ceiling.
| player | amount | requested by | reason | decision |
|---|
Player cash-outs waiting for a second person to approve before the money is sent. Review each one, then Approve or Reject. You can't approve your own cash-out.
Cash-outs awaiting approval
| id | player | amount | risk context | send to |
|---|
You can't approve your own cash-out — a second, different staff member must approve it. The risk context column shows the player's identity-check level and standing; use view player to open the full drill-down before approving real funds.
Failed payouts
Cash-outs that couldn't be sent after several tries. These need a closer look.
| id | player | amount | status | tries |
|---|
Set how much players can withdraw — per coin, and per identity-check level. Use this to raise or lower cash-out limits. Changes apply to every cash-out from then on.
Withdrawal limits
Set limits in whole coins (e.g. 0.05 SOL, 25 USDC) — the
console converts to the blockchain's raw smallest-unit and shows you the exact value before you save, so a stray
zero can't slip through. Leave a box blank to keep its current value. To remove a cap on purpose,
tick its No limit box — uncapping is never a blank box or a typed keyword. "Hold for manual
approval above" is the amount over which a cash-out is held for review. The table below shows every cap in both
whole coins and the raw unit.
Limits per coin
Click a row to load it into the form below for editing.
| coin | enabled | scale | min | max | review above | anti-structuring | daily cap | per cash-out cap |
|---|
Set limits for a coin
Which coin
Per-cash-out size (in whole coins)
Default caps (apply unless a stricter identity-level cap below wins)
Advanced: limits per identity-check level — most coins only need the defaults above; open this to set stricter caps for a specific verification level.
Limits per identity-check level
Click a row to load it into the form below for editing.
| identity level | coin | daily cap | per cash-out cap |
|---|
Set limits for an identity-check level
Which level & coin
Caps for this level (in whole coins)
Heads up: saving a level replaces both caps at once. Tick No limit to uncap a cap on purpose. Click an existing row above to load its current values before editing, so you don't accidentally change one.
Daily limits are safe even when a player fires off many cash-outs at once — they can never slip two past the same daily limit. Setting a limit only controls what's allowed; it never moves any money by itself.
Maximum win per round
The most a single round can pay out, per verification level. Any bet whose potential win
would exceed this cap is blocked or clamped, so no one round can drain the house. This is the same figure
the games read to cap their payout. When no row is set, the built-in safe default applies.
Enter the cap in whole dollars (e.g. 50000 for $50,000) — the console shows
you the exact raw value before you save. default is the level that applies to every player
today; the numbered levels are pre-set for when identity tiers go live.
| level | coin | max win / round | set by | when |
|---|
Click a row to load it into the form below for editing.
Set the max win for a level
Which level & coin
Cap (in whole dollars)
Create player rewards: bonuses, tournaments, races, promo codes and mystery boxes. Bonus money is locked until the player meets the play-through requirement, so it can't be cashed out straight away.
Give a bonus
Create tournament
Create wager race
Create a promo code
Mystery box prizes
Add each possible prize with its value in dollars (whole cents) and its chance. Players unlock the box by hitting the daily wager goal below; the box’s average value is capped by the goal (bigger goal → bigger allowed average) — a table outside the limits is rejected. Aim for the chances to add up to 100%.
Creating a promo code or mystery box only sets it up — no money moves yet. The reward is given (and locked until the play-through is met) when a player actually redeems the code or opens the box. The bonus, tournament and race forms above give their reward right away.
The site's emergency controls and safety checks. Stop or restart withdrawals, turn compliance checks on or off, watch the safety monitors, and read the record of every staff action.
Emergency: halt withdrawals
Halting is the safe direction — it takes effect instantly, one person can do it, so an emergency stop is never blocked. While halted, players cannot cash out. Resuming re-opens money going out, so it needs two people: this proposes resuming; a different staff member must approve it below before it takes effect. Every action is recorded.
Compliance checks
Turning on is the safe direction — instant, one person. Turning off loosens controls, so it needs two people: this proposes the change; a different staff member must approve it below. Every action is recorded.
Changes waiting for a second person
Resuming withdrawals or turning off compliance checks needs a DIFFERENT staff member to approve. You can't approve a change you proposed yourself.
| # | control | change | proposed by | reason |
|---|
Safety monitors
Automatic checks that the books are healthy: no player owed a negative balance, every coin fully backed, and the records add up. Green is good; a red tile means something is wrong — escalate immediately.
—
Staff action history
A permanent record of every action staff take in this console — who did what, to whom, and when.
| when | staff member | action | affected | details |
|---|
These are the on/off switches for optional site features — things like the live win feed, the Missions panel, or a redesigned lobby. Pick a feature from the list to see whether it's on, and turn it on or off. Some features can be shown to only a share of players (a gradual rollout). These switches only change what players see — they can never move money, change a balance, or bypass a server rule. Every change is recorded with your name.
Feature switches
Turn a feature on or off
"Visible to players" is set in the app's code (whether this flag is exposed to players' browsers) — it can't be changed here, so a server-only flag can never be leaked by accident.
| feature | on/off | shown to | source | visible to players |
|---|
A live feed of the most recent things happening on the site. Handy for spot-checking that activity is flowing and nothing looks off.
Recent activity feed
—
| when | event | player | details |
|---|
Running totals of site activity — bets, amounts wagered and paid out, active players and any errors. A quick pulse-check on how busy and healthy the site is.
Activity stats
—
Activity by event
| event | count |
|---|
A/B test groups
How many players saw each version of a running A/B test (the original vs. the new version). Compare the two to see which performs better. This is activity tracking only — no money involved.
| test | version | players shown |
|---|
Create extra staff roles (for support / moderators) and choose what each one can do — but only from a small, safe set of view/support powers. Built-in roles are set in code and shown here read-only. Nothing here can grant access to move money or change another role's powers; the server enforces that.
Roles & permissions
Pending admin / super-admin grants (need a second approver)
Granting an admin or super-admin role is a two-person action. A different super-admin (not the one who proposed it) must approve each request below before it takes effect. You cannot approve a request you proposed yourself.
| player | role | proposed by | reason | decision |
|---|
Credit ceilings (staff comp authority)
Set how large a single comp each role can apply directly (per-credit) and its rolling 24-hour total (per-day). A comp over a staffer's per-credit ceiling, or one that would breach their per-day total, is escalated to a higher-authority approver. Leave per-day blank for uncapped. No ceiling may exceed the $100,000 hard cap.
| role | per credit (USD) | per day (USD, blank = uncapped) |
|---|
Create a custom staff role
Pick a short name (lowercase letters, numbers, _ or -), a friendly label, and tick the safe powers it should have. Locked powers are code-only and can never be ticked here.
Roles × permissions
Built-in roles (top) are read-only. Custom roles (below) are editable for the safe columns only; the 🔒 columns are code-only and locked for every row.
| role |
|---|
User roles
Look up a player by their numeric id, then add or remove roles. Most changes take effect immediately and are recorded in the audit log. Granting admin or super-admin is a two-person action — it creates a request that a second super-admin must approve above. You can't remove the last remaining super-admin.
Roles held by :
Endpoint-scanning and credential-spray signals observed across the API. This is intelligence only — nothing here blocks or bans anyone. Use it to spot a scanner or a burst of failed logins, then investigate the attributed player (if any) under Players.
Recon / high-risk signals
Live (recent observations)
| when | reason | source key | player | evidence |
|---|
Recorded signals
| when | reason | score | player | evidence |
|---|