Touchstone

Solutions

Four teams, one question: is the evidence current?

A lending protocol, an issuer, an agent and a risk desk all need the same fact about a tokenized asset — and today each one gets it by reading prose. These pages describe what Touchstone is built for, what it is ready for, and exactly what runs on X Layer right now.

By audience

Start where you sit

Protocols

Lending & Vaults

Gate collateral admission and pool creation on a confirmed policy, inside the transaction that does the thing.

Lending & Vaults →

Issuers

RWA Issuers

Publish your evidence once, in a form every counterparty can check — and correct it without anyone wondering what changed.

RWA Issuers →

Wallets & agents

Wallets & AI Agents

Get a machine-readable answer — permitted or refused, with the reason — before you act on someone's behalf.

Wallets & AI Agents →

Risk & listing

Risk & Listing Teams

Refuse with a reason you can cite, backed by a timestamped evidence trail and a policy version you can point at.

Risk & Listing Teams →

Lending & Vaults

Admit collateral only while the evidence holds

Collateral admission and pool creation are decided in a committee, weeks before the transaction that depends on them. Between the decision and the block, the issuer's disclosure can go stale, get revised, or stop being published — and the contract accepting the asset has no way to notice. The usual fallbacks are a manual pause switch and a wide safety margin.

What Touchstone gives you

  • One call, inside the transaction. An immutable gate answers check(assetKey) → (allowed, reason) from the latest report in the registry. Refuse on the answer and the privileged path simply never runs.
  • A gate nobody can widen. Policy id, policy root, control-set root, approval digest, publisher and freshness are bound at construction, so relaxing the requirement means deploying a visibly different gate.
  • Suspension without a keeper. Reports expire at end of day UTC and re-publish at the daily window. If the evidence stops arriving, the gate stops saying allowed — no one has to remember to flip a switch.
  • Refusals that leave receipts. A blocked action reverts with the contract's own reason string, so a decline is as auditable as an approval.

The integration

SOLIDITY

// The whole integration: ask the gate, then refuse on its answer.
ITouchstoneGate public immutable gate;
bytes32 public immutable assetKey;

function openMarket() external {
    (bool allowed, string memory reason) = gate.check(assetKey);
    if (!allowed) revert ActionRefused(assetKey, reason);

    // past this line the policy was satisfied at this block
}

Live today

Policy gates run on X Layer mainnet and testnet. The mainnet gate at 0xAac48DC261B04737FDCB101D5049395121034a83 first answered allowed for the disclosure-freshness policy on 2026-08-19; verdicts expire at end of day UTC and renew at the daily window — check it live.

9 enforcement transactions are on chain across both networks — permitted and refused actions alike, each one a real transaction you can open in the explorer.

AssetGateV2 and RWAAdmissionController are deployed on both chains. The canonical addresses are listed on the developers page.

RWA Issuers

Publish the evidence once. Correct it in public.

You already publish everything a counterparty needs — a NAV file, a fund page, a regulatory filing. Then you answer the same questions by email, one desk at a time, and every revision becomes a conversation about what changed and when. A quiet edit to a page is indistinguishable from no edit at all.

What Touchstone gives you

  • Your own documents, cited byte-exactly. Every control names the span of your published disclosure it was compiled from. Nothing is paraphrased into a rule you never wrote.
  • Captures that are digest-addressed. Each retrieval is stored under the hash of what it returned, so a later revision reads as a new digest rather than vanishing into the same URL.
  • Corrections are first-class, never silent edits. A later report corrects an earlier one by naming it. The corrected report stays published, stays signed, and stays checkable.
  • A named human on every rule. Each approved or declined control carries an EIP-712 signature, so the decision has an accountable author rather than an anonymous config change.

Live today

25 reports published across 2 chains, 20 of them confirmed, each one a signed artifact rather than a page rendering.

9 controls approved and 7 declined against 7 monitored sources; the approval ledger is signed by 0x537873b087654395CB0A487B50d0bFBe15fA16Bc and digests to 0xb2d8ab788a0ac43b18d0438ba50daf7e3a098003ea0650d8561c0cbb475f5c91.

Touchstone reads public issuer and regulator disclosures. Starting needs no feed, no integration and no cooperation from the issuer — the record above was built from documents the issuer had already published.

Wallets & AI Agents

Ask before you act, and get an answer software can read

An agent about to move a user's funds into a tokenized fund cannot read a PDF, and a wallet cannot ask a human at signing time. What both need is a small, current, machine-readable answer — and, when the answer is no, a reason specific enough to show the user instead of a generic warning.

What Touchstone gives you

  • A two-value answer. (allowed, reason) comes back from a contract call, not a webpage — the same call whether a wallet, a keeper or an autonomous agent makes it.
  • TypeScript clients for the same contracts. The SDK wraps the gate and the guarded action so an agent can check, then execute only when permitted, in a few lines.
  • The Terminal is the human view of that call. Everything the Policy Terminal shows is read live from X Layer at the moment you ask — so a person can watch, in a browser, exactly what the agent will see.
  • Any EIP-1193 wallet. Reads need no wallet at all; connecting one lets you simulate and execute. The Terminal uses OKX Wallet when it is present and any EIP-1193 provider otherwise.

Live today

Registry v2 answers on X Layer mainnet at 0x0dAb4A5B7dd24434Ab6564734E26d3d76985352C (chain id 196) and on testnet at 0xBaE680e671e0451b95c9b09eD15F70C3E1EA7720 (chain id 1952).

A permitted and a refused guarded action are deployed on each network, so an integration can be tested against both answers before it ever touches a real position.

The Terminal simulates first and executes second: you see the contract's decision, including the exact refusal string, before you sign anything.

Risk & Listing Teams

Decline for a reason you can put in the minutes

Listing and de-listing decisions have to survive review. "The disclosure looked thin" does not; neither does a spreadsheet whose provenance is a screenshot. What a committee needs is a refusal reason that came from the evidence, a timeline showing when each document was observed, and a way to tighten a rule without rewriting history.

What Touchstone gives you

  • Citable refusal reasons. A refusal is a string the contract itself returned, traceable to the control that produced it and the cited span the control was compiled from.
  • An evidence timeline. Every source carries the time it was observed and the digest of what was returned, so "when did we know" has an answer that is not someone's memory.
  • Abstention recorded, not skipped. A control the evidence cannot answer is reported unevaluable with the same weight as a pass — silence never reads as approval.
  • Policy versioning. A policy is a versioned subset of the approved controls. Tightening a requirement produces a new version under its own key; the old version stays readable, so a past decision can still be judged on the rules that applied to it.

Live today

Both published policy profiles are confirmed on both chains: disclosure-freshness:1 and nav-settlement:1, each under its own registry key.

23 downloadable bundles let a reviewer recompute a verdict independently — signature, digests, approval ledger and registry attestation — without trusting this site.

The refusal-to-confirmation arc is on the record: a NAV value was refused on 2026-08-18, survived the required evidence interval, and was confirmed on 2026-08-19 with no control weakened to get there.

Make RWA evidence executable

Read the live verdict, watch the gate answer, and run the same call your contract would run — or wire it into your own.