Continuous register checks · Solana Token-2022

Supply moves every slot. Reserve proof shouldn't wait a month.

Register Check watches a stablecoin mint's finalized history, runs four SQL rules over it, and seals every violation in a proof anyone can re-run. The seal is recorded on-chain, seconds after the mint lands.

Replay · devnet mint 3ukP…ZY2Fslot 510076500
0/ 1,000 reserve
R1R2R3R4
Rule
waiting for a finalized mint…
Seal
—
On-chain
—
01The gap

Tokenized dollars are still checked on paper. One PDF a month, for an asset that changes every 400 ms.

Monthly attestation
30days between looks

A mint over reserve on day 2 shows up on day 30, if it's still there. Nothing points to the transaction.

Register Check
4 smint to proof, live on devnet

Every finalized transaction is checked. A violation names its signature and slot, and comes with the SQL that found it.

02How it works

Four steps, no trust required. Every stage can be re-run by someone who isn't us.

i · Ingest

Finalized history

Paginates getSignaturesForAddress, parses Token-2022 by program id, including CPI inner and batched instructions.

ii · Register

Seven Arrow tables

Mints, burns, transfers, balances, authority changes, signed reserves, allowlist. Supply is reconciled against getTokenSupply.

iii · Rules

Plain SQL on DataFusion

Static rule files with no parameters, so config can't inject SQL. Each file's sha256 is registered on-chain.

iv · Seal

Proof + on-chain hash

Canonical JSON, sorted keys, sha256 result_hash, written to a CheckResult PDA by the rc-attest program.

03The rules

The whole policy fits on a screen. Read it before you trust it.

rules/R1.sqlView on GitHub ↗

            

Three integrity checks also run on every poll: parsed supply against the chain, account balances against history, and reserve freshness. If one fails, the register goes red, never vacuously green.

04Verify it yourself

Don't take our word for it. Take the hash.

shell
$ git clone https://github.com/batmnnn/register-check && cd register-check
$ python3 -I scripts/verify_proof.py docs/evidence/R1_live_devnet.json
# recomputes result_hash from the canonical bundle → 79f9db60…8c23

RE-FETCHPull the cited transaction at finalized commitment from any RPC.

RE-RUNRun the same SQL file. Its sha256 is pinned in the on-chain Rule account.

RE-HASHCanonical JSON → sha256. It matches the CheckResult account, or it doesn't.

05Evidence

Already fired, on a real chain. Devnet, Oct 2026.

Mint that pushed supply over reserve1,100 / 1,000 · 2M5cweV7…cggPi ↗
R1 result hash recorded on-chain79f9db60…8c23 ↗
Alert latency, mint sent to proof file4 s
rc-attest Anchor programBNADNdmc…LthV3 ↗
Also fired live and attestedR2 stranger wallet · R4 hook swap
Open source · Token-2022 native

Reserves, checked at the speed of the chain. Watch it run.