Regulatory concerns

The position, stated plainly

The ledger is currency-agnostic and takes no position on whether your units map to money.

If they do — if a balance can be bought with real money, cashed out for it, or exchanged for something that can be — then KYC and AML, licensing, responsible-gaming limits, and payment rails are your concern.

Pithy provides the ledger. You provide the compliance.

Why the capability does not try to help

Not because it would be hard, but because every attempt would be wrong for most adopters.

Jurisdictions differ, thresholds differ, what counts as a regulated instrument differs, and the same schema serves a poker app with real stakes and a puzzle game with cosmetic gems. A ledger that shipped an opinion about which one you are would be wrong about the other one, silently, in a domain where being wrong is expensive.

So it ships the thing that is the same in both cases — three invariants that hold regardless — and leaves the judgment where the liability already is.

What the ledger does give you to build on

An append-only entry log, in a database you own rather than a processor’s. Every movement is a row: the ref, the account, the kind, the amount, an optional memo and an optional related ref. Nothing edits an entry, and nothing deletes one.

A recorded reason on every movement, if you write one. The refs are what make the log readable, and a log somebody can reconcile is the raw material of every report a regulator asks for.

Exact arithmetic. Integers in the minor unit, so a reconciliation adds up.

A management surface that is read-only, permanently. See below, and the reference for the routes.

There is no adjustment route, and that is deliberate

The control-plane surface reads balances and entries. It cannot write one.

Writing to a balance ledger from an admin console needs everything every other movement gets — an idempotency key so a double-click does not pay twice, a recorded reason, a reversal path — and a console route with none of those would be the one place the ledger’s guarantees do not hold.

Move balances in-process, or over the trusted-server routes, where the ref is required rather than optional.

Two read scopes, because they disclose different things

A balance is a number. An entry log is every wager, payout and purchase in order, with whatever note your own code wrote on it.

Scope matching is exact, so holding one confers nothing about the other.

Every management read is audited, including the reads. A credential quietly paging every player’s history changes nothing about the data — so the audit trail is the only place it shows up.

The line worth drawing before you start

Can a player convert this balance into money, or into something with a market?

If yes, you are running a regulated thing wearing a game’s clothes, and the ledger’s correctness is the least of what you owe.

If no — chips that are only ever bought and only ever spent inside your app — the obligations are the ordinary consumer ones, and the ledger’s job is to make sure the numbers are right.

Neither answer changes a line of this capability. That is the point of it taking no position.

ESC