<aside> ๐Ÿ“—

THE RECORD โ€” three registers that answer questions the interested party is not allowed to answer about itself: did you pay, are the books real, is this the code you published.

Running against Flare mainnet, over 140,000,000 XRP of real escrowed value. Every figure is re-derivable from public RPC by anyone, with no credentials, no client, and nobody's permission โ€” which is the whole wedge: continuous assurance that can start without being invited.

Two fixes already sent upstream into Flare's own repos. Eight errata published in full, four of which reached the public before we withdrew them. A control that has provably gone red.

</aside>

Surfaces

Bounties entered โ€” both


The submission, requirement by requirement

Requirement Answer
Project name THE RECORD
Bounty Both โ€” Interoperable Asset Products and Confidential Compute Apps
Product description Three public registers that verify claims a system cannot credibly make about itself, from entirely public data on Flare and the XRP Ledger. Covenant proves whether FXRP redemption agents actually paid. Procedure tests the FAssets Core Vault's controls every period. Reprod measures whether a Flare confidential-compute code hash can be traced to source at all.
Target user Anyone exposed to FXRP who cannot audit it themselves โ€” FXRP holders and redeemers, exchanges and custodians listing it, FAssets agents who want their own record, and Flare engineers who need an outside signal. Also every confidential-compute developer told to "check the code hash", who currently has no way to turn 32 bytes into a fact.
Demo / working app the-record.vercel.app โ€” live, public, no login. Seven pages, a JSON API and embeddable badges. 614 tests (544 TypeScript + 70 Solidity) pass from a clean clone, with zero skipped.
Two ways in. The 66-second film states the argument; the proof deck walks all 14 surfaces with screenshots and real command output beside each one. Every figure in both is read from the register that produced it โ€” the film is rendered from data with Remotion, not recorded off a screen.
GitHub github.com/Pratiikpy/the-record โ€” public, 30+ commits
Deployment Reads Flare Mainnet (chain 14). Contracts deployed to Coston2. Coston2 is also the fault laboratory and must be asked for by name.

How it uses Flare

Flare primitive How it is used, not superficially
FDC โ€” ReferencedPaymentNonexistence Covenant asks Flare's Data Connector to prove a payment did not happen, then requires the verifier to refuse redemptions the chain already recorded as performed. That refusal test is what caught our own false accusation.
FAssets / Core Vault CV-1 reads CoreVaultManager and AssetManagerFXRP and reconciles escrowedFunds against the vault's actual XRPL Escrow ledger objects โ€” two chains that cannot move each other.
Flare Contract Registry Nothing is hardcoded but the registry itself. Registry โ†’ AssetManagerController โ†’ getAssetManagers() โ†’ getCoreVaultManager(), resolved at run time, asset picked by the token's own symbol. A new FAsset is discovered rather than missed.
FlareTeeManager (FCC) Reprod enumerates every registered TEE machine and measures how much each code hash identifies โ€” 268 at the latest scan, growing daily. doctor then live-probes every one of them and returns the blocker, the fix, and the source for the fix.
Reproducible builds Rebuilt 5 of Flare's own OCI images deterministically as a third party, and fixed the published recipe when it did not work.

The three findings

1 ยท "Check the code hash" currently has no answer

2 ยท The Core Vault's allowlist was empty for three months

3 ยท A naive FXRP backing check accuses honest agents

The control has gone red, on purpose

<aside> ๐Ÿ”ด

A monitor that has only ever printed CLEAN is indistinguishable from one that cannot print anything else โ€” and this project shipped exactly that failure once.

C3 once asserted escrowedFunds = totalAvailable โˆ’ immediatelyAvailable. It held exactly, every period. It also could never fail, because coreVaultAvailableAmount() derives both outputs from that same storage slot. Fault injection moved both sides together and the control stayed green.

pnpm --filter @therecord/procedure redrun forks Coston2, overwrites one storage slot, and reruns the identical procedure. C3 flips CLEAN โ†’ EXCEPTION; the other four controls correctly do not move. The script exits non-zero if C3 stays CLEAN, so a control that stops being able to fail breaks the build.

</aside>

The scale โ€” how much can a stranger check?

A verdict says what a check found today. It does not say how much of the system you could establish yourself. That is a different question, and deliberately not a safety rating.

Tier Means Graded
V0 ASSERTED the system states facts about itself; you take its word
V1 OBSERVABLE the facts are public, a stranger can read them Flare TEE registry
V2 RECONCILED two independent sources agree, and disagreement would show
V3 FALSIFIED the check is proven able to fail, on the record, recently FXRP core vault

V3 exists because a reconciliation nobody has seen fail is indistinguishable from one that cannot fail โ€” and V2 is exactly where our tautology lived comfortably. It lapses after 30 days. The tier can go down, ours included.

What was newly built during the program

Built Detail
All three registers Covenant, Procedure, Reprod โ€” from zero
The provenance instrument Measures what a TEE code hash establishes; CLI + API + page
The red run + fault catalogue 9 faults, each declaring mustFire and mustNotMove, plus 3 declared known uncaught
The backfill engine History computed from chain state, with a cross-chain skew bracket
The verifiability scale V0โ€“V3, graded from evidence, lapses
Distribution layer Embeddable badge + versioned JSON API
doctor Live-probes every registered TEE machine and returns the blocker, the fix and the source. 160 of 256 machines have at least one blocker โ€” mostly dead ngrok tunnels still registered on chain. Accepts a teeId, an extension id or a host, so it answers to every identifier it prints.
drift Asks whether the published snapshot still describes the chain, against a 2% materiality threshold. Blocks the publish on MATERIAL and on UNKNOWN โ€” because failing to check is not evidence nothing moved.
Offline pack verification verify rebuilds an opinion with fetch replaced by a throwing stub. A missing read fails the rebuild rather than silently defaulting.
Quality gates that fire on us The drift gate blocked one of our own deploys during this build (registry moved 250 โ†’ 256, 2.4%, past the materiality threshold). We re-scanned rather than overriding, and that re-scan exposed two hand-typed figures that had gone stale. A gate that has never refused anything is not a gate.
AB-1 โ€” agent backing Reconciles every FXRP agent against its own XRP Ledger address, with a settle bracket so an in-flight redemption is never published as a shortfall. Fleet opinion CLEAN; all six agents over-backed. This is the check that produced finding 3.
Errata Eight entries, permanent, append-only
The proof deck the-record.vercel.app/proof-deck โ€” 14 numbered passes over every surface, each beside its evidence, for readers with no time for a demo video. Every figure on it is read from the register that produced it, and a test fails the build if the page and a register ever disagree.
Two upstream PRs Into Flare's own repositories

Fixes sent upstream to Flare