TRUST + LEGAL HYGIENE

How the house edge works

1 · First move is random — and favors the house

You don't pick sides. Roughly half the time the house starts; otherwise it's a coin flip — so the house opens most games, in both free and paid modes. The exact method is logged on every game.

2 · The AI is published and deterministic

The AI thinks many moves ahead and almost always picks the best one; occasionally it plays its second-best instead — never a blunder. Free mode gives it a little more slack, paid mode barely any (roughly 1 in 4 paid games contains an off-best move; spot it and take the 1.5x). Paid losses go to the house; paid draws give you 99.5% back (we keep 0.5%) through the claim flow. The exact tuning lives in config and moves with observed win rates, so payouts stay funded by the edge.

3 · Every game is logged and auditable

Server stores wallet, mode, stake/deposit tx, difficulty, first-move method, full move sequence, outcome, timestamps (D1 games). Disputed game? We replay it exactly.

4 · Money games are server-authoritative

The client only sends your move. AI moves and win/loss calls happen server-side, never in your browser. Same for 1v1 rooms: the server validates turns and sides.

5 · You claim within seconds — after a review

No push payouts, no long waits. Every win passes a seconds-long security review (we replay the game and screen for bots and unusual patterns); then your payout is prepared and you tap claim, covering a small gas fee. Anything odd waits for a human instead of paying out automatically. A slower backup job catches anything stuck.

6 · Stakes sit in escrow, not our pocket

Paid flow is lock-first: POST /api/game/lock issues a lock id for an approved 100–100k stake, you call TicTacToeEscrow.deposit(amount, lockId), the server verifies the receipt, then the game starts. After the epoch unlock, wins (1.5x) and draws (99.5% back / 0.5% house) release via settleWithVoucher which you execute (your gas); losses are swept by the backend. Abandoned locks refund after 7 days via cancelExpired. 1v1 stakes work the same through TicTacToePvP (winner 98%, house 2%, draws refunded, solo-cancel after 20 minutes; a full room the server never settles can be refunded by anyone after 1 day).

7 · 1v1 rooms: 2% house edge, nothing else

No AI, no house edge beyond the fee. Winner takes 98% of the combined pot, the house takes 2%. First move is a coin flip. Create a room → share the code or link → a friend joins (or leave a public room open for quick-join).

8 · Bonus credits are locked (not a trick)

Airdropped or gifted credits live in a locked ledger: they stake paid games exactly like real tokens, draws refund them back to locked, but they can never be withdrawn or sent — enforced by the contract, not by policy. Wins are different: every win pays out in normal, fully withdrawable tokens. That asymmetry is the whole deal — free shots, real cashes.

9 · Chain + contracts (verify yourself)

  • Robinhood Chain (chain ID 4663). Gas is paid in ETH. Explorer robinhoodchain.blockscout.com. Source: official docs.
  • $TICTACTOE token: NEXT_PUBLIC_TICTACTOE_TOKEN_ADDRESS.
  • Vault: NEXT_PUBLIC_VAULT_ADDRESS + contracts/TicTacToeVault.sol. PvP: NEXT_PUBLIC_PVP_ADDRESS + contracts/TicTacToePvP.sol.

Play responsibly. Wagers can be lost. Nothing here is financial advice.