Touchstone

The 90-second proof

A value was provisional. Touchstone refused it. Then the evidence earned it.

Five things, in order: the problem, how a control gets written, what happened to one NAV figure, the contracts you can call right now, and the file to take away.

Other products help users discover, score, trade or automate RWAs. Touchstone determines whether the evidence policy required for an RWA action currently holds — and enforces the answer onchain.

Discover · Score · Trade · Automate  →  Verify + Enforce

01 · The problem

Nothing on chain can read a disclosure.

Fund disclosures are prose on a web page, written for people. The values inside them are revised after publication, and nothing announces which figure moved or when. A contract can read neither the prose nor the revision, so today it either trusts a feed it cannot inspect or does nothing at all.

02 · The AI control compilation

The model proposes. It never decides, and it never runs.

A language model reads the issuer's disclosure and proposes candidate controls. Every candidate must cite the byte-exact span of the source it depends on — not a summary of it, the bytes — and is compiled into deterministic code that is evaluated afterwards with no model in the loop. A human approves or declines each candidate one at a time: 9 approved, 7 declined. The model has no path to approve its own proposal, move a threshold, or re-run an evaluation it did not like.

Proof: every decision now carries the approver's EIP-712 signature — approver 0x537873b087654395CB0A487B50d0bFBe15fA16Bc, signed 2026-08-19, ledger digest b2d8ab788a0ac43b18d0438ba50daf7e3a098003ea0650d8561c0cbb475f5c91. The signed ledger ships in the repository as data/compilations/APPROVALS.json; reports published from the next window bind it, and the verify page shows how the recovery is done.

03 · What actually happened

Refused 2026-08-18. Confirmed 2026-08-19. Same controls both days.

USTB — Superstate Short Duration U.S. Government Securities Fund.

  1. 2026-08-18

    Provisional NAV published

    The issuer published a NAV per share. Seen once, it is a claim, not a settled value.

  2. 2026-08-18

    Refused

    The settlement policy would not confirm a figure the evidence had carried only once. The report published as UNVERIFIABLE.

  3. +24 hours

    Unchanged across qualifying captures

    The same figure reappeared, unrevised, in later captures that met the confirmation interval. Nobody re-argued the case.

  4. 2026-08-19

    Confirmed with NAV 11.18208300

    Published to both registries as CONFIRMED — policy nav-settlement:1 — and every report since binds the signed approval ledger.

  5. consequence

    The gate flipped

    check(key) answers (true, "allowed") with no control changed and no threshold moved — and 9 permit/refuse transactions across both chains stand as the consequence.

disclosure-freshness:1

CONFIRMED

nav-settlement:1

CONFIRMED

The refused report and the confirmed report commit to the same approval-ledger digest. Nothing in the control set was edited to produce the second answer — open both bundles from the archive and compare that one field: 3e1840a0a490d4b007c393d0f035c0008cbe46eb42f36aa86f0db727d3a78d5b in both the refused and the confirmed report.

04 · The live permit / refuse action

Two contracts per chain. One executes, one reverts, both are real.

Each GuardedAction asks the gate before it does anything. One is pinned to a key that is currently CONFIRMED and executes; the other is pinned to a key that was never reported and reverts — not a drawing of a refusal, a reverted transaction on a public chain. 9 of them are mined across the 2 networks.

GuardedAction contracts by network
Network Permitted while CONFIRMED Refused — never-reported key
X Layer mainnetchain id 196 0xBaE680e671e0451b95c9b09eD15F70C3E1EA7720 0x8FbcFf50bf1F88cADEc9103a57c4C86e8A44BAcB
X Layer testnetchain id 1952 0xf6D53a9cD76C6777835a6b4070e88337199127Dc 0x8641CF6d40524AC55aBd0a02601AfBd374EFB059

The gate answering for these is 0xAac48DC261B04737FDCB101D5049395121034a83 on mainnet and 0x0bc5c0cc879CE1b5AD23aEdA8fC42dB414eB8eE1 on testnet. Reads need no wallet; connecting one lets you simulate and execute the same calls.

Builder Code proof: the live Terminal appended registered code f0axgs7smtk2nfa7 to a permitted mainnet admission execution. The transaction emitted AssetUsed for use number 2 at block 68574822, and the X Layer explorer displays the code: inspect the attributed transaction.

05 · What to take away

The confirmed policy bundle. It verifies offline, forever.

One file carries the signed report, the controls it evaluated, the approval ledger it was signed under, the compilation artifacts and the evidence digests. Check it on a machine that has never heard of this site.

Policy nav-settlement:1, state CONFIRMED, published 2026-08-19. 23 bundles are downloadable from the archive; 25 reports have been published across the 2 chains, 20 of them confirmed.

This page is a static rendering; the Terminal reads the same facts live at /app.

06 · Release and integration proof

The build is signed. The integration is reviewable.

v0.1.0 · reporter-signed

Deterministic source archive, project state, CI-bound manifest, checksums and an Ed25519 signature from the active mainnet reporter identity.

Inspect the release

Blvck Protocol · PR #1

An open third-party integration proposal verifies Touchstone bundles against an out-of-band trusted key and rejects tampering, self-signed bundles and expiry.

Review the integration PR

The PR is public integration proof, not adoption, endorsement or a partnership while it remains unmerged. The reporter signature proves release origin and integrity; it is not an independent security audit.