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.