From 99a84d72f798517ec4706af7b2f4d6002d600f91 Mon Sep 17 00:00:00 2001 From: Chin Kai Ze Date: Wed, 7 Oct 2026 11:54:54 +0800 Subject: [PATCH 1/2] docs: align public product language with current semantics --- apps/web/src/components/DocsPage.tsx | 46 ++++++------- apps/web/src/components/Hero.tsx | 18 ++--- apps/web/src/components/LandingPage.tsx | 53 +++++++-------- apps/web/src/components/MethodologyPage.tsx | 52 +++++++-------- .../src/components/documentationProfiles.ts | 12 ++-- apps/web/tests/semantics.test.cjs | 66 +++++++++++-------- 6 files changed, 127 insertions(+), 120 deletions(-) diff --git a/apps/web/src/components/DocsPage.tsx b/apps/web/src/components/DocsPage.tsx index 4f9eac2..4bd288f 100644 --- a/apps/web/src/components/DocsPage.tsx +++ b/apps/web/src/components/DocsPage.tsx @@ -27,10 +27,10 @@ const guides: readonly Guide[] = [ cta: "Open the demo result", href: "/?view=console&context=demo", walkthrough: [ { eyebrow: "Begin with context", title: "Know what kind of evidence you are looking at.", body: "Operational, Historical, and Demo are different evidence lanes. The selected lane appears in the console header and is never silently substituted.", tip: "For your first visit, choose Demo. It contains six synthetic observations designed to explain the workflow.", visual: "context" }, - { eyebrow: "Read the finding", title: "Read the target, challenger, and state together.", body: "Compare the observed xStock validation target with P1a-C and its calibrated range, then inspect the separate X-Perp signal. Use the Evidence State as the backend interpretation—not as proof of a true price.", tip: "P1a-C has assimilated the xStock observation, so this pair is model-based evidence rather than two independent votes.", visual: "finding" }, + { eyebrow: "Read the finding", title: "Read the price, estimate, range, and state together.", body: "Compare Observed xStock with Valtide Fair Value and its Valuation Range, then inspect separately sourced X-Perp evidence. The Evidence State is the backend interpretation—not proof of a true price.", tip: "The Valtide Model uses the xStock observation as an input, so this comparison is not two independent market votes.", visual: "finding" }, { eyebrow: "Keep the boundary clear", title: "Evidence describes. Policy decides.", body: "Valtide determines whether the evidence supports, cannot resolve, or challenges the observed xStock validation target. A curator maps that state to a Policy Action; the consuming application enforces it.", tip: "SUPPORTED does not automatically mean ALLOW, and CHALLENGED does not automatically mean liquidate.", visual: "boundary" }, ], - checks: [["SUPPORTED", "The authorized support-band rule passed with exact-time X-Perp available and no quality abstention."], ["INCONCLUSIVE", "The evidence is unavailable, watch-band, ambiguous, stale, or quality-gated."], ["CHALLENGED", "The authorized review-band rule passed and exact-time X-Perp directionally corroborated P1a-C."]], + checks: [["SUPPORTED", "The observed price is consistent with the applicable model-distance rule, separately sourced X-Perp is available, and quality checks pass."], ["INCONCLUSIVE", "Evidence is missing, stale, ambiguous, or does not support a conclusive result."], ["CHALLENGED", "Model Distance is high and exact-time X-Perp supports the model-side comparison; quality checks pass."]], }, { id: "curators", label: documentationProfiles.curators.label, eyebrow: "Investigation and governance", title: "Move from an evidence exception to a defensible response.", @@ -38,7 +38,7 @@ const guides: readonly Guide[] = [ outcome: "You will be able to investigate a challenged result without treating the model as a policy engine.", cta: "Inspect the policy view", href: "/?view=console", walkthrough: [ - { eyebrow: "Triage the exception", title: "Start with the reason for the challenge.", body: "Check the P1a/xStock research band, exact-time X-Perp relationship, market state, quality gates, and structured reason codes before deciding whether an exception is actionable.", tip: "Reason codes come from the backend. The browser displays them without reclassifying the result.", visual: "triage" }, + { eyebrow: "Triage the exception", title: "Start with the reason for the challenge.", body: "Check Model Distance, the separately sourced X-Perp relationship, market status, quality checks, and structured Reason Codes before deciding whether an exception is actionable.", tip: "Reason Codes come from the backend. The browser displays them without reclassifying the result.", visual: "triage" }, { eyebrow: "Verify the record", title: "Freshness and provenance come before policy.", body: "Confirm the observation timestamp, source timestamps, model version, attestation valid-until time, and your maximum accepted age.", tip: "A valid attestation can still be too old for a specific policy owner.", visual: "freshness" }, { eyebrow: "Apply your response", title: "Map evidence through curator-owned policy.", body: "RiskGuard evaluates the current Evidence State and freshness against your configured mapping. The resulting action is a governance choice, not a model output.", tip: "Document why the mapping is appropriate for this collateral and revisit it as liquidity or market structure changes.", visual: "policy" }, ], @@ -51,7 +51,7 @@ const guides: readonly Guide[] = [ cta: "Open the API reference", href: "https://valtide-api-production.up.railway.app/docs", walkthrough: [ { eyebrow: "Consume the result", title: "Keep the response intact.", body: "Use the backend Evidence State, estimate, calibrated bounds, reason codes, timestamps, and source provenance. Do not recompute classification in the client.", tip: "Treat unknown reason codes as displayable structured data rather than as fatal parsing errors.", visual: "payload" }, - { eyebrow: "Follow publication", title: "Separate observation from delivery.", body: "The publisher writes an authorized attestation to ValidationRegistry. Curator policy is stored separately, and RiskGuard evaluates both before the consumer acts.", tip: "The browser is read-only: it never signs or initiates a transaction.", visual: "contracts" }, + { eyebrow: "Follow publication", title: "Separate observation from delivery.", body: "The backend scheduler publishes authorized attestations to ValidationRegistry. Curator policy is stored separately, and RiskGuard evaluates both before the consumer acts.", tip: "The browser is read-only: it never signs or initiates a transaction or manual publication.", visual: "contracts" }, { eyebrow: "Enforce safely", title: "Fail closed on stale or mismatched state.", body: "Check chain ID, contract addresses, asset identity, sequence, valid-until, policy maximum age, and current attestation before accepting a decision.", tip: "Do not pair cached operational evidence with a newer onchain policy state.", visual: "guard" }, ], checks: [["Operational validation", "NVDAx, SPYx, and AAPLx have live schedulers, asset-specific runtimes, and canonical historical replay."], ["Current network", "A shared ValidationRegistry and RiskGuard are deployed on X Layer testnet with asset-specific bindings for NVDAx, SPYx, and AAPLx."], ["Current status", "Research prototype—not audited production lending infrastructure; QQQx remains offline research-only."]], @@ -62,25 +62,26 @@ const guides: readonly Guide[] = [ outcome: "You will understand what the challenger estimates, how its range is evaluated, and which claims the evidence cannot support.", cta: "Read the methodology", href: "/methodology", walkthrough: [ - { eyebrow: "Reconstruct the information set", title: "Keep every signal point-in-time correct.", body: "The current unified profile identifies xStock as the validation target, P1a-C as a model-based challenger that has assimilated xStock, and exact-time X-Perp as a separately sourced second-market signal.", tip: "xStock and P1a-C are not two fully independent observations; disagreement alone does not prove which price is correct.", visual: "signals" }, + { eyebrow: "Reconstruct the information set", title: "Keep every signal point-in-time correct.", body: "The current profile identifies Observed xStock as the price under review, the Valtide Model as an estimate that uses that observation, and exact-time X-Perp as a separately sourced market signal.", tip: "The xStock/model comparison is not independent; disagreement alone does not prove which price is correct.", visual: "signals" }, { eyebrow: "Inspect uncertainty", title: "Evaluate the interval, not just its center.", body: "Valtide returns a fair-value estimate with a calibrated prediction interval. Wider ranges express greater uncertainty rather than false precision.", tip: "Coverage and interval width must be read together. Neither establishes point-price truth.", visual: "interval" }, - { eyebrow: "Read the evaluation", title: "Compare like with like.", body: "The historical test isolates uncertainty-range construction: both methods use the same point estimates. It is not a comparison with an oracle provider or a production track record.", tip: "The June–September 2026 test contains 11,828 observations and targets 90% coverage.", visual: "evaluation" }, + { eyebrow: "Read the evaluation", title: "Read the exposed interval study in context.", body: "The NVDAx P1a-C v0.2.0 historical/development study from June–September 2026 isolates interval construction: both methods use the same point estimates. It is not a comparison with raw xStock, other assets, an oracle provider, or a production track record.", tip: "The exposed interval contains 11,828 observations and targets 90% coverage; it is no longer an untouched test set.", visual: "evaluation" }, ], - checks: [["94.3% coverage", "Share of contemporaneous trusted benchmarks captured at a 90% target."], ["19% narrower", "Mean interval width versus a conventional Gaussian range using the same point estimates."], ["What is not claimed", "Production performance, perfect independence, or an observable exact true value."]], + checks: [["94.3% coverage", "NVDAx v0.2.0 empirical interval coverage in the exposed study at a 90% target."], ["19% narrower", "Mean NVDAx interval width versus a conventional Gaussian range using the same point estimates."], ["What is not claimed", "Raw-xStock outperformance, three-asset performance, Evidence State accuracy, production performance, or an observable exact true value."]], }, ] as const; const glossary = [ - { term: "Validation target", definition: "The price whose support is being assessed. In the current unified profile this is the observed xStock price.", example: "At 14:25 UTC, the synthetic NVDAx validation target is the observed $178.20 xStock price." }, - { term: "X-Perp evidence", definition: "An exact-time, separately sourced second-market observation. It must be available for support and can directionally corroborate P1a-C in a review-band challenge.", example: "A $180.00 X-Perp observation can favor P1a-C over a lower xStock price without being treated as a calibrated z-score." }, - { term: "Reference under test", definition: "A compatibility field retained in current API results and the onchain identity. Under v2 it carries the X-Perp observation, while validation_target identifies xStock as the actual target.", example: "Consumers should read validation_target and xperp_role instead of inferring semantics from this legacy field name." }, - { term: "Valtide fair value", definition: "The challenger model’s point estimate. For the xStock profile, the estimate has assimilated the same observed token price being compared, so the pair is not two fully independent observations. It is a model output, not an objectively proven true price.", example: "$179.13 is the challenger’s center estimate—not a replacement oracle price." }, - { term: "Prediction interval", definition: "The calibrated uncertainty range around the challenger estimate.", example: "$178.83–$179.43 expresses uncertainty around a $179.13 estimate at the selected coverage target." }, - { term: "Evidence State", definition: "Valtide’s standardized interpretation of whether the observed xStock target is supported, inconclusive, or challenged under the asset-authorized tri-source rule.", example: "CHALLENGED means the review-band and X-Perp corroboration conditions passed; it does not prove xStock objectively wrong." }, + { term: "Observed xStock", definition: "The tokenized-equity market price being reviewed. It is also an input to the current Valtide Model, so the comparison is not independent market evidence.", example: "At 14:25 UTC, the synthetic NVDAx Observed xStock price is $178.20." }, + { term: "Valtide Fair Value", definition: "The current model’s point estimate. It is a model output, not an objectively proven true price or a replacement oracle.", example: "$179.13 is the estimate’s center, not a guaranteed market price." }, + { term: "Valuation Range", definition: "The uncertainty range around Valtide Fair Value. Its target describes historical coverage, not a guarantee for an individual result.", example: "$178.83–$179.43 shows uncertainty around a $179.13 estimate." }, + { term: "Underlying Anchor", definition: "A trusted underlying-market observation used as model context and to update future state. It is not a same-time Evidence State vote.", example: "A prior regular-session NVDA observation can anchor the estimate while the equity market is closed." }, + { term: "X-Perp", definition: "A separately sourced market observation. It does not change the current estimate and is assessed with its own timestamp and availability.", example: "An exact-time X-Perp observation provides another market view; it does not prove which price is correct." }, + { term: "Model Distance", definition: "The measured disagreement between Observed xStock and Valtide Fair Value under the active asset rule.", example: "A high Model Distance may prompt review when source-quality checks also pass." }, + { term: "Evidence State", definition: "Valtide’s standardized interpretation of whether the observed xStock price is supported, inconclusive, or challenged under the active evidence rules.", example: "CHALLENGED prompts review; it does not prove xStock objectively wrong." }, { term: "Policy Action", definition: "A response configured by the curator or consuming protocol. It is not generated by the quant model.", example: "A curator may map CHALLENGED to RESTRICT_NEW_RISK." }, { term: "Attestation", definition: "The authorized onchain record of a validation observation stored by the ValidationRegistry.", example: "The record carries the observation time, evidence commitment, sequence, and validity window." }, { term: "Freshness", definition: "Whether an attestation remains valid under both its valid-until time and the policy owner’s maximum age.", example: "An unexpired valid-until can still fail a curator’s stricter maximum-age rule." }, - { term: "Reason codes", definition: "Structured backend explanations for an Evidence State, preserved by the frontend without recomputation.", example: "P1A_XSTOCK_REVIEW_BAND with XPERP_CORROBORATES_P1A explains a v2 CHALLENGED result." }, + { term: "Reason Codes", definition: "Structured backend explanations for an Evidence State, preserved by the frontend without recomputation.", example: "High Model Disagreement with X-Perp Supports Model Challenge can explain a CHALLENGED result." }, ] as const; const glossarySupplements: Record = { @@ -95,12 +96,13 @@ const glossarySupplements: Record
VALTIDE VALIDATION CONSOLE
{kind === "context" &&

EVIDENCE CONTEXT

OperationalHistoricalDemo
Demo scenario · 6 synthetic stepsChoose the evidence lane here
} - {kind === "finding" &&
CURRENT FINDING · DEMOObserved xStock is supported

Support band · exact-time X-Perp available · quality gates passed.

xSTOCK TARGET$180.00P1a-C FAIR VALUE$180.00$179.56–$180.44EVIDENCE STATESUPPORTED
Read target + range + state
} - {kind === "boundary" &&
EVIDENCESUPPORTED

P1a/xStock support band

→
CURATOR POLICYAllow new borrowing

Configured mapping · ALLOW

→
CONSUMERPolicy check passed

Enforced by the application

The middle decision belongs to the curator
} - {kind === "triage" &&
CURRENT FINDINGObserved xStock is challenged

Review band with X-Perp closer to P1a-C

WHY THIS STATEP1A_XSTOCK_REVIEW_BANDXPERP_CORROBORATES_P1A
Start with structured reasons
} + {kind === "finding" &&
CURRENT FINDING · DEMOObserved xStock is supported

Low Model Distance · X-Perp available · quality checks passed.

OBSERVED XSTOCK$180.00VALTIDE FAIR VALUE$180.0090% Valuation Range · $179.56–$180.44EVIDENCE STATESUPPORTED
Read price + range + state
} + {kind === "boundary" &&
EVIDENCESUPPORTED

Price and quality checks pass

→
CURATOR POLICYAllow new borrowing

Configured mapping · ALLOW

→
CONSUMERPolicy check passed

Enforced by the application

The middle decision belongs to the curator
} + {kind === "triage" &&
CURRENT FINDINGObserved xStock is challenged

High Model Distance with X-Perp support

WHY THIS STATEHigh Model DisagreementX-Perp Supports Model Challenge
Start with structured reasons
} {kind === "freshness" &&
ATTESTATIONSequence 184

Observed 14:25 UTC

Valid until 14:40 UTC

POLICY LIMITMaximum age

15 minutes

FRESH
Both clocks must pass
} {kind === "policy" &&
EVIDENCE STATESUPPORTEDINCONCLUSIVECHALLENGEDSTALE
YOUR POLICY MAPPINGALLOWREQUIRE REVIEWRESTRICT NEW RISKREQUIRE REVIEW
Curators own this mapping
} {kind === "payload" &&
{`{\n "timestamp": "2026-09-19T14:00:00Z",\n "token_price": 180.00,\n "valtide_fair_value": 180.00,\n "fair_value_lower": 179.56,\n "fair_value_upper": 180.44,\n "evidence_state": "SUPPORTED",\n "reason_codes": ["P1A_XSTOCK_SUPPORT_BAND"],\n "validation_target": "xstock_observed_price",\n "evidence_semantics": "p1a_xstock_band_with_xperp_review_corroboration_v2",\n "xperp_role": "second_market_challenger"\n}`}Consume; do not reclassify
} {kind === "contracts" &&
Publisher→ValidationRegistryattestation+Curator Policymapping→RiskGuardfreshness + stateEvidence and policy stay separate
} {kind === "guard" &&
INTEGRATION CHECK

✓ Chain ID and contract match

✓ Asset and sequence match

✓ Attestation is within max age

✓ Registry state read at decision time

Check again at enforcement
} - {kind === "signals" &&
xSTOCK VALIDATION TARGET$178.20assimilated by P1a-C
X-PERP EVIDENCE$180.00TRUSTED ANCHOR$180.00MARKET STATECLOSED
Preserve the information set
} - {kind === "interval" &&
90% CALIBRATED PREDICTION INTERVAL
$178.83 – $179.43P1a-C
$179.13
X-Perp
$180.00
Judge the range with the center
} - {kind === "evaluation" &&
OBSERVATIONS11,828INTERVAL COVERAGE94.3%90% targetMEAN INTERVAL WIDTH19% narrowervs Gaussian baselineCoverage is not point accuracy
} + {kind === "signals" &&
OBSERVED XSTOCK$178.20model input and price under review
X-PERP$180.00UNDERLYING ANCHOR$180.00MARKET STATUSCLOSED
Preserve the information set
} + {kind === "interval" &&
90% VALUATION RANGE
$178.83 – $179.43Valtide Fair Value
$179.13
X-Perp
$180.00
Read the range with its estimate
} + {kind === "evaluation" &&
NVDAx P1a-C v0.2.0 · JUNE–SEPT 2026 · EXPOSED11,828INTERVAL COVERAGE94.3%90% targetMEAN INTERVAL WIDTH19% narrowervs Gaussian baselineCoverage is not point accuracy
} ; } @@ -149,7 +151,7 @@ export function DocsPage() {

Working reference

{guide.id === "everyone" ? "Three states, with no hidden policy instruction." : "What to verify before you move on."}

{guide.checks.map(([label, copy]) =>
{label}

{copy}

)}
{guide.cta}

Shared vocabulary

Use the product’s terms precisely.

These definitions stay constant across every profile. Short examples show how each term appears in the current product.

{glossary.map(({ term, definition, example }) =>
{term}
{definition}EXAMPLE{example}
)}

Also useful for

{guide.label}

These supporting concepts change with your selected profile, so the glossary stays focused on the decisions and questions you are most likely to encounter.

{supplementaryTerms.map(({ term, definition, example }) =>
{term}
{definition}{example}
)}
-

Current product scope

A focused vertical slice.

Operational validation
NVDAx / NVDA · SPYx / SPY · AAPLx / AAPL
Public asset selector
NVDAx, SPYx, AAPLx; each has a live scheduler, asset-specific runtime, and canonical historical panel.
Research-only asset
QQQx retains offline quant and historical research but is not exposed through the public HTTP API.
Validation semantics
Observed xStock target · P1a-C model-based challenger · exact-time X-Perp second-market evidence.
Onchain binding
NVDAx · SPYx · AAPLx · X Layer testnet

Trust and limitations

Research evidence, not a production guarantee.

  • No exact “true” fair value is observable while the strongest market is closed.
  • Historical diagnostics and retrospective tri-source results are not production guarantees.
  • The testnet contracts are not audited production lending infrastructure.
  • Valtide does not choose a universal LTV, trade, liquidate, or custody assets; consuming applications enforce their own policies.
+

Current product scope

A focused vertical slice.

Operational validation
NVDAx / NVDA · SPYx / SPY · AAPLx / AAPL
Public asset selector
NVDAx, SPYx, AAPLx; each has a live scheduler, asset-specific runtime, and canonical historical panel.
Backend publication
The scheduler automatically publishes authorized attestations for configured assets; the browser remains read-only.
Research-only asset
QQQx retains offline quant and historical research but is not exposed through the public HTTP API.
Validation semantics
Observed xStock · Valtide Fair Value and Valuation Range · separate X-Perp evidence.
Onchain binding
NVDAx · SPYx · AAPLx · X Layer testnet

Trust and limitations

Research evidence, not a production guarantee.

  • No exact “true” fair value is observable while the strongest market is closed.
  • The exposed NVDAx interval study and retrospective diagnostics are not production guarantees.
  • The testnet contracts are not audited production lending infrastructure.
  • Valtide does not choose a universal LTV, trade, liquidate, or custody assets; consuming applications enforce their own policies.
; diff --git a/apps/web/src/components/Hero.tsx b/apps/web/src/components/Hero.tsx index 999bd87..54de0f1 100644 --- a/apps/web/src/components/Hero.tsx +++ b/apps/web/src/components/Hero.tsx @@ -213,9 +213,9 @@ export function Hero() {
-

Independent valuation evidence for tokenized collateral

+

Independent reference validation for tokenized equity

Take control of your protocol's
collateral risk.

-

Valtide evaluates whether tokenized-equity prices are supported by model-based challenger evidence, then returns an Evidence State that protocols can map to their own risk policy.

+

Compare the observed xStock price with Valtide Fair Value, a Valuation Range, and separately sourced X-Perp evidence. Protocols retain control of the Policy Actions they apply.

Open validation console See how it works @@ -225,17 +225,17 @@ export function Hero() {
-
+
- Historical model evidence Historical evaluation from June–September 2026. Valtide tested 11,828 observations using a 90% prediction-range target. The benchmark is the contemporaneous trusted market price used for evaluation. The ranges captured that benchmark 94.3% of the time and were 19% narrower than a conventional Gaussian range built from the same price estimates. Coverage above target is not automatically better; it must be considered together with range width. Historical results are not production guarantees or comparisons with oracle providers. + NVDAx historical interval study Exposed historical/development interval study for NVDAx using Valtide Model P1a-C v0.2.0, June–September 2026. Across 11,828 observations, intervals targeted 90% and showed 94.3% empirical coverage; mean interval width was 19% narrower than a conventional Gaussian range using the same point estimates. This evaluates interval construction—not price accuracy versus raw xStock, three-asset performance, Evidence State accuracy, or production performance. The exposed period is not an untouched test set.
-
{MODEL_EVIDENCE_SUMMARY.observations.toLocaleString("en-US")}Historical evaluation observations
-
{(MODEL_EVIDENCE_SUMMARY.coverage * 100).toFixed(1)}%Empirical interval coverage{(MODEL_EVIDENCE_SUMMARY.coverageTarget * 100).toFixed(0)}% target
-
{(MODEL_EVIDENCE_SUMMARY.intervalWidthReduction * 100).toFixed(0)}% narrowerMean interval width vs. Gaussian baseline
+
{MODEL_EVIDENCE_SUMMARY.observations.toLocaleString("en-US")}NVDAx · P1a-C v0.2.0 observations
+
{(MODEL_EVIDENCE_SUMMARY.coverage * 100).toFixed(1)}%Empirical interval coverage{(MODEL_EVIDENCE_SUMMARY.coverageTarget * 100).toFixed(0)}% target · NVDAx
+
{(MODEL_EVIDENCE_SUMMARY.intervalWidthReduction * 100).toFixed(0)}% narrowerMean interval width · same point estimates
); diff --git a/apps/web/src/components/LandingPage.tsx b/apps/web/src/components/LandingPage.tsx index d9f869c..50ef6ca 100644 --- a/apps/web/src/components/LandingPage.tsx +++ b/apps/web/src/components/LandingPage.tsx @@ -3,16 +3,9 @@ import type { ValuationResult } from "../api/types"; import weekendDivergence from "../fixtures/weekend_divergence.json"; import { documentationProfileList } from "./documentationProfiles"; import { Hero } from "./Hero"; +import { reasonLabel } from "../lib/format"; const SCENARIO = weekendDivergence as unknown as ValuationResult[]; -const REASON_LABELS: Record = { - CALIBRATION_GLOBAL_FALLBACK: "Global fallback calibration", - TOKEN_AND_CHALLENGER_AGREE: "Token and challenger agree", - P1A_XSTOCK_SUPPORT_BAND: "P1a/xStock support band", - P1A_XSTOCK_WATCH_BAND: "P1a/xStock watch band", - P1A_XSTOCK_REVIEW_BAND: "P1a/xStock review band", - XPERP_CORROBORATES_P1A: "X-Perp corroborates P1a", -}; function money(value: number | null) { return value === null ? "Unavailable" : `$${value.toFixed(2)}`; @@ -29,9 +22,9 @@ function scaleTop(value: number | null) { } const storySteps = [ - { number: "01", label: "Observe", title: "An xStock price separates from its model-based challenger.", body: "Valtide keeps the observed xStock, P1a-C estimate, exact-time X-Perp evidence, trusted anchor, market state, and source timestamps visibly separate." }, - { number: "02", label: "Estimate", title: "Uncertainty remains part of the answer.", body: "P1a-C produces a fair-value estimate with calibrated interval bounds after assimilating the same xStock observation—not a fully independent vote or a single price presented as truth." }, - { number: "03", label: "Validate", title: "Tri-source evidence becomes an explainable state.", body: "Asset-specific support, watch, and review bands combine with exact-time X-Perp availability or directional corroboration to return SUPPORTED, INCONCLUSIVE, or CHALLENGED." }, + { number: "01", label: "Observe", title: "Start with the observed xStock price.", body: "Keep its timestamp beside the Underlying Anchor, separately sourced X-Perp evidence, and market status. Each has a distinct role in the evidence record." }, + { number: "02", label: "Estimate", title: "See a Fair Value and Valuation Range.", body: "The Valtide Model uses the observed xStock price as an input. Its estimate and uncertainty range are a model comparison—not an independent market vote or a guaranteed true price." }, + { number: "03", label: "Validate", title: "Review disagreement and evidence quality.", body: "Model Distance, separate X-Perp evidence, and quality checks inform an explainable Evidence State. Missing, stale, or ambiguous evidence can leave the result INCONCLUSIVE." }, { number: "04", label: "Respond", title: "The protocol keeps control of policy.", body: "A curator-owned mapping turns evidence into a Policy Action. The consuming application decides how that action is enforced." }, ] as const; @@ -95,8 +88,8 @@ export function LandingPage() {
01DETERMINISTIC DEMO

One incident, fully traced

-

Watch a synthetic collateral reference diverge from market evidence.

-

This six-step synthetic incident shows what happens as the observed NVDAx price separates from its model-based challenger while exact-time X-Perp provides a second market view. It is demonstration data—not live or historical performance.

+

See a synthetic xStock price beside Valtide Fair Value.

+

This six-step synthetic incident for NVDAx shows Observed xStock, a Valtide Model estimate and range, and separate X-Perp evidence. It is demonstration data—not live evidence or historical performance.

@@ -107,26 +100,26 @@ export function LandingPage() {
- Validation target + Observed xStock {money(demo.token_price)} -

Observed NVDAx market price

+

Price being reviewed · NVDAx

Evidence State {demo.evidence_state} -

{demo.reason_codes.map((reason) => {REASON_LABELS[reason] ?? reason})}

+

{demo.reason_codes.map((reason) => {reasonLabel(reason)})}

-
P1a-C fair value{money(demo.valtide_fair_value)}
-
Expected range · 90% coverage target{money(demo.fair_value_lower)}–{money(demo.fair_value_upper)}
-
xStock vs. P1a-C{signedPct(demo.xstock_vs_p1ac_deviation_pct)}
+
Valtide Fair Value{money(demo.valtide_fair_value)}
+
90% Valuation Range{money(demo.fair_value_lower)}–{money(demo.fair_value_upper)}
+
Observed xStock vs. model{signedPct(demo.xstock_vs_p1ac_deviation_pct)}
pauseDemo("focus")}> {SCENARIO.map((observation, index) =>
-
Current testnet scope

NVDAx, SPYx, and AAPLx have asset-specific publication bindings to the shared ValidationRegistry and RiskGuard on X Layer testnet. Publication remains a backend responsibility; the browser is read-only.

+
Current testnet scope

NVDAx, SPYx, and AAPLx have asset-specific publication bindings to the shared ValidationRegistry and RiskGuard on X Layer testnet. The backend scheduler publishes authorized attestations; the browser is read-only and does not submit or manually publish transactions. X Layer records evidence and evaluates policy—it does not calculate Fair Value.

Explore the current X Layer testnet integration

Primary sources

Inspect the method behind the page.

diff --git a/apps/web/src/components/documentationProfiles.ts b/apps/web/src/components/documentationProfiles.ts index d6835e5..513444e 100644 --- a/apps/web/src/components/documentationProfiles.ts +++ b/apps/web/src/components/documentationProfiles.ts @@ -3,28 +3,28 @@ export const documentationProfiles = { id: "everyone", label: "New to Valtide", previewTitle: "Understand a validation result", - previewBody: "Follow the reference, interval, Evidence State, reasons, policy, and freshness in the right order.", + previewBody: "Read Observed xStock, Valtide Fair Value, the Valuation Range, and the Evidence State.", action: "Open newcomer guide", }, curators: { id: "curators", label: "Curators and risk teams", - previewTitle: "Investigate and govern", - previewBody: "Separate evidence from policy, review divergence, and understand freshness before changing exposure.", + previewTitle: "Review a flagged price and policy response", + previewBody: "Check Model Distance, X-Perp, Reason Codes, and freshness before applying your Policy Action.", action: "Open curator guide", }, developers: { id: "developers", label: "Developers and integrators", - previewTitle: "Consume Valtide evidence", - previewBody: "Work with the API, ValidationRegistry, RiskGuard, and read-only attestation concepts.", + previewTitle: "Integrate the API and X Layer attestation flow", + previewBody: "Read asset-scoped API results and verify the matching X Layer attestation and policy.", action: "Open developer guide", }, researchers: { id: "researchers", label: "Researchers", previewTitle: "Review the methodology", - previewBody: "Inspect the information set, interval calibration, evaluation evidence, and limits of the current research prototype.", + previewBody: "Review model inputs, calibration, historical evidence, and the limits of the current prototype.", action: "Open researcher guide", }, } as const; diff --git a/apps/web/tests/semantics.test.cjs b/apps/web/tests/semantics.test.cjs index 469003e..f0c7e8b 100644 --- a/apps/web/tests/semantics.test.cjs +++ b/apps/web/tests/semantics.test.cjs @@ -238,17 +238,17 @@ function appWith({result, rows, chain, error, assetList, profile = "legacy_xperp test("Clean divergence hero restores the product framing and opens the validation console", () => { const html = render(Hero); - assert.match(html, /Independent valuation evidence for tokenized collateral/); + assert.match(html, /Independent reference validation for tokenized equity/); assert.match(html, /Take control of your protocol's/); assert.match(html, /collateral risk/); - assert.match(html, /tokenized-equity prices are supported by model-based challenger evidence/); - assert.match(html, /returns an Evidence State that protocols can map to their own risk policy/); + assert.match(html, /Compare the observed xStock price with Valtide Fair Value, a Valuation Range, and separately sourced X-Perp evidence/); + assert.match(html, /Protocols retain control of the Policy Actions they apply/); assert.doesNotMatch(html, /cryptographically verified collateral valuation|enforce their own risk rules/); assert.match(html, /Open validation console/); assert.match(html, /See how it works/); assert.match(html, /Animated market divergence/); - assert.match(html, /P1a-C estimate/); - assert.match(html, /xStock target/); + assert.match(html, /Valtide Fair Value/); + assert.match(html, /Observed xStock/); assert.doesNotMatch(html, /Run the risk demo|From evidence to protocol response|POSITION (?:OPENED|BLOCKED)/); assert.doesNotMatch(html, /RESTRICT_NEW_RISK|NEW EXPOSURE (?:OPEN|REVERTED)/); assert.match(html, /11,828/); @@ -256,13 +256,13 @@ test("Clean divergence hero restores the product framing and opens the validatio assert.match(html, /19% narrower/); assert.match(html, /aria-describedby="historical-model-evidence-note"/); assert.match(html, /role="tooltip"/); - assert.match(html, /Historical evaluation observations/); + assert.match(html, /NVDAx · P1a-C v0\.2\.0 observations/); assert.match(html, /Empirical interval coverage/); assert.match(html, /90% target/); assert.match(html, /19% narrower/); - assert.match(html, /Mean interval width vs\. Gaussian baseline/); - assert.match(html, /Coverage above target is not automatically better/); - assert.match(html, /Historical results are not production guarantees or comparisons with oracle providers/); + assert.match(html, /Mean interval width · same point estimates/); + assert.match(html, /This evaluates interval construction—not price accuracy versus raw xStock, three-asset performance, Evidence State accuracy, or production performance/); + assert.match(html, /not an untouched test set/); assert.match(html, /href="\?view=console"/); assert.match(html, /href="\/methodology"/); assert.match(html, /href="\/docs"/); @@ -273,15 +273,21 @@ test("Clean divergence hero restores the product framing and opens the validatio test("Prototype landing uses canonical demo values and preserves product boundaries", () => { const html = render(LandingPage); + const landingSource = fs.readFileSync(path.join(__dirname, "../src/components/LandingPage.tsx"), "utf8"); for (const value of ["$180.00", "$178.20", "$179.13"]) assert.match(html, new RegExp(value.replace("$", "\\$"))); assert.match(html, /six-step synthetic incident/); - assert.match(html, /demonstration data—not live or historical performance/); - assert.match(html, /Valtide preserves the disagreement/); - assert.match(html, /An xStock price separates from its model-based challenger/); - assert.match(html, /exact-time X-Perp provides a second market view/); + assert.match(html, /demonstration data—not live evidence or historical performance/); + assert.match(html, /Valtide preserves disagreement/); + assert.match(html, /The Valtide Model uses Observed xStock as an input/); + assert.match(html, /Underlying Anchor provides model context and is not a same-time Evidence State vote/); + assert.match(html, /Low Model Disagreement/); + assert.match(html, /Global Calibration Applied/); + assert.match(landingSource, /import \{ reasonLabel \} from "\.\.\/lib\/format"/); + assert.match(landingSource, /reasonLabel\(reason\)/); + assert.doesNotMatch(landingSource, /const REASON_LABELS/); for (const heading of [ - "Watch a synthetic collateral reference diverge from market evidence", - "Test the price already in use with model-based challenger evidence", + "See a synthetic xStock price beside Valtide Fair Value", + "Keep the price, estimate, and evidence distinct", "Calibrated ranges make uncertainty explicit", "Protocol-owned policy, evaluated on X Layer", ]) assert.match(html, new RegExp(heading.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"))); @@ -293,6 +299,7 @@ test("Prototype landing uses canonical demo values and preserves product boundar assert.match(html, /ValidationRegistry/); assert.match(html, /Evidence hash/); assert.match(html, /browser is read-only/); + assert.match(html, /A separate backend scheduler publishes authorized attestations/); assert.match(html, /X Layer testnet/); assert.match(html, /For NVDAx, SPYx, and AAPLx, the machine interface can publish authorized attestations/); assert.match(html, /href="\/\?view=console&context=demo"/); @@ -310,7 +317,6 @@ test("Prototype landing uses canonical demo values and preserves product boundar assert.match(html, /aria-label="Documentation by audience"/); assert.match(html, /role="tabpanel"/); - const landingSource = fs.readFileSync(path.resolve(__dirname, "../src/components/LandingPage.tsx"), "utf8"); assert.match(landingSource, /setInterval\([^]*1000\)/); assert.match(landingSource, /prefers-reduced-motion: reduce/); assert.match(landingSource, /onFocusCapture=\{\(\) => pauseDemo\("focus"\)\}/); @@ -348,18 +354,22 @@ test("Documentation adapts by role and keeps evidence, policy and scope separate assert.match(html, /role="tabpanel"/); assert.match(html, /Open the demo result/); assert.match(html, /href="\/\?view=console&context=demo"/); - assert.match(html, /current unified profile this is the observed xStock price/); + assert.match(html, /Observed xStock/); + assert.match(html, /tokenized-equity market price being reviewed/); assert.match(html, /Public asset selector/); assert.match(html, /not exposed through the public HTTP API/); assert.doesNotMatch(html, /production unified profile|Production asset selector|production HTTP/); - assert.match(html, /P1A_XSTOCK_REVIEW_BAND/); - assert.match(html, /XPERP_CORROBORATES_P1A/); + assert.match(html, /High Model Disagreement/); + assert.match(html, /X-Perp Supports Model Challenge/); assert.match(html, /Whether an attestation remains valid under both its valid-until time and the policy owner’s maximum age/); assert.match(html, /Structured backend explanations for an Evidence State, preserved by the frontend without recomputation/); for (const term of ["Evidence context", "Trusted anchor", "Market state"]) assert.match(html, new RegExp(term)); assert.match(html, /Short examples show how each term appears/); assert.match(html, /Also useful for/); const profileSource = fs.readFileSync(path.join(__dirname, "../src/components/documentationProfiles.ts"), "utf8"); + const docsSource = fs.readFileSync(path.join(__dirname, "../src/components/DocsPage.tsx"), "utf8"); + assert.match(docsSource, /exposed interval contains 11,828 observations/); + assert.match(docsSource, /no longer an untouched test set/); for (const profile of ["everyone", "curators", "developers", "researchers"]) assert.match(profileSource, new RegExp(`${profile}:`)); assert.match(fs.readFileSync(path.join(__dirname, "../src/components/DocsPage.tsx"), "utf8"), /cta: "Read the methodology", href: "\/methodology"/); }); @@ -400,15 +410,16 @@ test("Methodology is a first-class, source-grounded page with one canonical meth "Public research methodology · v0.3", "A validation control—not a lending protocol", "One method, four lenses", - "P1a-C is a causal state-space estimate", + "The Valtide Model estimates Fair Value with calibrated uncertainty", "SUPPORTED", "INCONCLUSIVE", "CHALLENGED", "11,828", "94.3%", + "NVDAx v0.2.0", "X Layer testnet", ]) assert.match(html, new RegExp(value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"))); - assert.match(html, /interval quality—not production oracle accuracy/); + assert.match(html, /Interval quality—not production oracle accuracy/); assert.match(html, /current unified profile/i); assert.doesNotMatch(html, /current production profile/i); assert.match(html, /Disagreements are preserved, not averaged away/); @@ -416,15 +427,16 @@ test("Methodology is a first-class, source-grounded page with one canonical meth assert.match(html, /
/); assert.match(html, /View the P1a-C equations/); assert.match(html, /aria-label="Current unified Evidence State rules"/); - assert.match(html, /The asset-specific support band applies/); - assert.match(html, /required evidence is missing, stale, ambiguous, or below the quality threshold/); - assert.match(html, /exact-time X-Perp is closer to P1a-C than to xStock/); - assert.match(html, /asset-bound tri-source capability artifact authorizes which Evidence States/); + assert.match(html, /Model Distance is within the asset’s supported range/); + assert.match(html, /Required evidence is missing, stale, ambiguous, or below quality requirements/); + assert.match(html, /exact-time X-Perp is closer to Valtide Fair Value than to Observed xStock/); + assert.match(html, /An asset-bound capability authorizes which Evidence States/); assert.match(html, /View these states in the Validation Console/); - assert.match(html, /19% narrower than the conventional Gaussian baseline while achieving 94\.3% empirical coverage against a 90% target/); + assert.match(html, /NVDAx P1a-C v0\.2\.0 produced intervals 19% narrower than the conventional Gaussian baseline while achieving 94\.3% empirical coverage against a 90% target/); assert.doesNotMatch(html, /narrower interval reduces false-positive alerts|preventing unnecessary trading restrictions/i); assert.match(html, /NVDAx, SPYx, and AAPLx have asset-specific publication bindings/); - assert.match(html, /Publication remains a backend responsibility; the browser is read-only/); + assert.match(html, /The backend scheduler publishes authorized attestations; the browser is read-only/); + assert.match(html, /X Layer records evidence and evaluates policy—it does not calculate Fair Value/); assert.doesNotMatch(html, /unified-v2 results are not published through the legacy binding/); assert.match(html, /Explore the current X Layer testnet integration/); assert.match(html, /correctness still depends on the underlying sources, model, and validation rule/); From 66ff4dbb3f9b5ad78a3a0dd41198b47b60ca2f73 Mon Sep 17 00:00:00 2001 From: Chin Kai Ze Date: Wed, 7 Oct 2026 12:20:11 +0800 Subject: [PATCH 2/2] docs: clarify hero reference validation wording --- apps/web/src/components/Hero.tsx | 2 +- apps/web/tests/semantics.test.cjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/web/src/components/Hero.tsx b/apps/web/src/components/Hero.tsx index 54de0f1..90b1ab2 100644 --- a/apps/web/src/components/Hero.tsx +++ b/apps/web/src/components/Hero.tsx @@ -213,7 +213,7 @@ export function Hero() {
-

Independent reference validation for tokenized equity

+

Reference validation for tokenized equity collateral

Take control of your protocol's
collateral risk.

Compare the observed xStock price with Valtide Fair Value, a Valuation Range, and separately sourced X-Perp evidence. Protocols retain control of the Policy Actions they apply.

diff --git a/apps/web/tests/semantics.test.cjs b/apps/web/tests/semantics.test.cjs index f0c7e8b..ec3d521 100644 --- a/apps/web/tests/semantics.test.cjs +++ b/apps/web/tests/semantics.test.cjs @@ -238,7 +238,7 @@ function appWith({result, rows, chain, error, assetList, profile = "legacy_xperp test("Clean divergence hero restores the product framing and opens the validation console", () => { const html = render(Hero); - assert.match(html, /Independent reference validation for tokenized equity/); + assert.match(html, /Reference validation for tokenized equity collateral/); assert.match(html, /Take control of your protocol's/); assert.match(html, /collateral risk/); assert.match(html, /Compare the observed xStock price with Valtide Fair Value, a Valuation Range, and separately sourced X-Perp evidence/);