UNDERSTAND · IN BUILD

Flashy Ledger

Ledger-as-a-Service: an append-only, multi-asset ledger any network can settle on, with one write path, one invariant, and a daily Merkle root anchored to any chain that accepts a transaction. Flashy Gold is the first asset on it.

Where this sits

The unit · rewards layer

Flashy Gold is the rewards layer across every Flashy property, canonical at flashy.gold. What it is, that site defines. Where it settles is this page.

Today · Ledger-as-a-Service IN BUILD

Flashy Ledger holds the entries and commits to them — one root a day, anchored to any chain. The first asset on Flashy Ledger, and the reason it was built.

Direction NORTH STAR

A Layer 2 on The Open Network, where the entries stop being anchored and start being native. Nothing here runs on it yet.

Why a ledger before a chain

The step before every transaction is native to a chain. A 32-byte root has no chain affinity, so one commitment reaches every chain at once, and the roots stay valid when the transactions eventually move on-chain.

The order is not an apology for the chain being late. An issuer who anchors first gets the property that actually matters — a record they cannot be talked out of — without betting the economy on one chain’s fees, throughput or survival, and without the migration being a rewrite when it comes. A ledger that cannot reconcile does not become trustworthy by being published on-chain; it becomes permanently wrong in public.

The engine is a published package, @flashylabs/ledger, so the rules can be read rather than described. The Merkle specification is on /snapshots/ in enough detail to reimplement in a language we did not choose.

The write path

Funded source

quest · streak · auction · adjustment

Guarded writer IN BUILD

An idempotency key is required. A replayed event produces no second entry.

Entry + balance

One transaction, with the before and after recorded on the entry itself.

What is not true yet

One gate now exists for service-to-service calls (SEAM-4 Phase 1). Direct balance writes have not been counted again since the first audit, and no CI rule forbids them. That gap is why Σ(entries) cannot be expected to equal Σ(balances). The portable lint rule that closes it exists in flashy-contracts and is not yet installed in the consuming repository.

ClaimYour.Gold · SEAM-4 Phase 1 · read 2026-08-20

Entry types

TypeMeaningSource of truth
issuanceFlashy Gold created against a funded source. Never discretionary.prisma/schema.prisma · GoldLedger.entryType
redemptionGold retired against a real obligation the group has taken on.prisma/schema.prisma · RedemptionOrder
transferTwo entries, never one balance edit. Both land or neither.@flashylabs/ledger · postTransfer()
adjustmentA correction. Entries are append-only, so a fix is a new entry.@flashylabs/ledger · reverse()

Entries are append-only. A correction is a new adjustment entry, never an edit — which is what makes the incident register possible and what makes a deleted mistake detectable.

The extraction

The ledger runs inside the ClaimYour.Gold monolith today. The rules that govern it live in @flashylabs/ledger — a pure, storage-agnostic package with integer minor units and a hash chain per identity. Moving the monolith's writes onto that package is the extraction, and it is what the roadmap tracks. The package will be this site's read path; today every published figure is a labelled fixture, and the live read lands with Phase 1.