> For the complete documentation index, see [llms.txt](https://docs.fast.poker/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fast.poker/integrations/11-integrations.md).

# Overview

Fast Poker is a protocol first. The official app and indexer are reference implementations, but custody and settlement live in Solana accounts and program instructions.

External builders usually fall into three paths:

| Path                                                                         | Use it when                                                                                                                                     |
| ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| [Direct contract integration](/building-on-the-protocol/choose-your-path.md) | You want to read protocol state and build, sign, and send instructions yourself. Start with the developer cookbook in Building On The Protocol. |
| [Frontend integration](/integrations/frontend-integration.md)                | You want to build a room, white-label client, wallet flow, league app, or custom player experience.                                             |
| [Indexer integration](/integrations/indexer-integration.md)                  | You want to build read APIs, history, leaderboards, profile stats, analytics, or another backend that watches protocol state.                   |

## Reference repositories

| Release               | Repository                                    | Use it when                                                                                   |
| --------------------- | --------------------------------------------- | --------------------------------------------------------------------------------------------- |
| Frontend source       | `https://github.com/FastPoker/frontend`       | You want to run, fork, rebrand, or study the wallet-facing Fast Poker client.                 |
| Indexer source        | `https://github.com/FastPoker/indexer`        | You want read APIs, live lobby data, history, profiles, leaderboards, jackpots, or analytics. |
| Dealer Service binary | `https://github.com/FastPoker/dealer-service` | You want to run the operator process that advances games and submits protocol work.           |
| Public IDLs           | `https://github.com/FastPoker/idl`            | You need the current 168-instruction, 36-account, 199-error FastPoker interface.              |

Both paths should treat Solana state as the source of truth. Frontends and indexers can make the protocol easier to use, but they should not become a custody layer or hidden authority over player funds.

## Core integration model

| Layer          | What it provides                                                                               |
| -------------- | ---------------------------------------------------------------------------------------------- |
| Solana L1      | Custody, settlement, vaults, table accounts, rewards, claims, and durable history commitments. |
| MagicBlock ER  | Fast gameplay execution for active hands.                                                      |
| TEE            | Private card deal/reveal and scoped card reads.                                                |
| Dealer Service | Permissionless crank that advances tables and finalizes protocol work.                         |
| Frontend       | Player wallet UX and transaction construction.                                                 |
| Indexer        | Read-optimized cache for tables, history, stats, profiles, jackpots, and leaderboards.         |

Current SNG clients must support `SngDuelState`, `SngSettlementRecord`, `EmissionCtrl`, and `PoolIdle`. Native HU remains classic. Every 6-max/9-max table uses Flat Bounty, scheduled duels, maturity, and record-backed payout.

## Wallets and auth

Players are identified by Solana wallet pubkey. A frontend can use self-custody wallets, embedded wallets, or both, but it must never ask players for seed phrases or custody their funds.

For private card reads, a player signs a scoped challenge so the TEE can prove which cards that wallet is allowed to see. A registered session key can sign that seat's gasless betting and duel actions on the ER. Custody actions still require the player's wallet.

## Safety rules for builders

* Read Solana state directly for balances, vaults, settlement status, and claims when correctness matters.
* Use an indexer for speed and UX, not as the legal source of funds.
* Keep private RPC keys, database credentials, and operator keypairs server-side.
* Rebrand custom clients before shipping. The Fast Poker marks are not a general trademark grant.
* If you host a frontend for users, explain what backend, indexer, and RPC infrastructure you operate.
