> 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/architecture/reward-accounting.md).

# Reward accounting

Fast Poker uses accumulator-style reward accounting for dealer rewards and Burned $FP revenue.

## Dealer rewards

Dealer rewards are credited by real work. The dealer cannot self-report fake weight.

| Source              |                     Dealer share |
| ------------------- | -------------------------------: |
| SNG service fees    |                           33.33% |
| Legacy cash rewards | Previously accrued balances only |

The program credits work, syncs the accumulator, and lets the operator claim through a pull-claim account. New cash rewards and tips are retired; historical balances remain claimable.

## Why pull-claim

Pull-claim keeps settlement small and order-independent.

Plain English:

1. Rewards arrive.
2. Dealer work creates weight.
3. The accumulator records how much each unit of weight earned.
4. The dealer claims what their weight earned.

New weight starts at the current accumulator, so it cannot claim old rewards.

## Burned $FP revenue

Burned $FP uses the same core idea: reward deposits arrive, each Burned $FP holder earns pro-rata by weight, and new weight does not retroactively claim previous deposits.

This is why burning more $FP affects future deposits only.

## SNG epochs

Reusable SNG tables advance reward epochs between matches. The epoch boundary prevents dealer work from match N leaking into match N+1.

## SNG player rewards

Native heads-up keeps classic winner-take-all player rewards. A 6-max/9-max table uses its `SngDuelState` point ledger:

* One point is seeded per entrant.
* A real knockout moves one victim head point to eligible side-pot winner(s).
* The total six or nine points is conserved.
* Half of SOL prizes uses point weights and half uses the normal ITM curve.
* The final blind level matures 25%/50%/75%/100% of the post-Royal player Raw $FP pool, which is then split entirely by point weights.

Points already earned remain settlement credit after their holder busts.

## Durable settlement records

Record-enabled SNGs write a transient `SngSettlementRecord` in two ER phases. The completion settle writes finish order, per-seat SOL, the fee split, and `settled = true`. The completing hand's jackpot/emission accrual then writes the final roster, per-seat unrefined $FP, and `finalized = true`. `distribute_prizes_from_record` credits Player `claimable_sol` and Raw $FP balances before table cleanup completes. Reset is gated on record payment, jackpot-entry closure, dealer reward finalization, and clean sidecar state; the paid record closes after reset.

This separates the per-game payout delta from a wallet's cumulative claimable balance and prevents replay or reuse from paying the same game twice.

## Permissionless claims

Anyone can help sync public accumulator state. Only the rightful wallet can receive its own claim.
