Genesis / pre-alphaE1 implementedP1 in progressRead-onlyLocal-firstHosted CI: not executed

Not yet a public arbitrary-URL or multi-tenant service.

TWIRX Typed Web Commons

Provenance explorer

Follow one value from origin bytes to typed result

Every panel on this page is generated from committed repository artefacts and re-verified at build time. Nothing here was typed in by hand, and the site refuses to build if the digest chain does not hold.

How this page is made

Every value below is generated from committed repository artefacts by web/evidence.go and republished at evidence-e1.json. On every build the site re-hashes the raw origin bytes, re-hashes the adapter file, and checks that each field's provenance cites the same observation, body, and adapter. If the chain does not hold, the site does not build.

The chain Implemented

One field — the currency of an offer — from the bytes an origin returned to the typed value an agent receives. The origin said usd. The agent is told USD. Everything between those two facts is recorded, and can be recomputed without the origin being online.

  1. Originhttp://127.0.0.1:18080/product/sku-001 returned 162 bytes of application/json with status 200, under policy tw.fetch.local-fixture-v0.
  2. EvidenceThose bytes are stored and retrieved by their digest: sha256:e194e7dfd8bad2e92564e2a01527aad79af467feda26733d9d06ac2132ebd73a
  3. ObservationRetrieval metadata is bound to that digest in a canonical CBOR envelope, itself addressed as sha256:98025ae34cf1c21ea7bf14c9ca0e2a25f504a9ec1768ec6c0f5202ac49d02e57
  4. VerificationTwo independent implementations validate the envelope and re-hash the body: Go, and a restricted C verifier with no network path.
  5. Adapterorigin:testorigin/product-offer version 0.1.0, admitted by hand, digest sha256:86995ebf29b33eb6e23e871de86fdc4112bba3d5101b21781e9f750482c03117
  6. Native statementAt locator /offer/currency the provider's own term origin:testorigin/currency holds the lexical value usd.
  7. Declared transformationtrim then uppercase — ASCII only, by decision, and recorded rather than applied silently.
  8. Semantic interpretationcommerce:OfferPrice.currency under closure sha256:9ef146c90f8c4e252ef47aa5df0adfb8f17d3d88d67c671502886ce1c58427f4, relation equivalent_in_context.
  9. Typed resultType currency_code, value USD, carrying the whole chain above it. Result digest sha256:b00b1d5832548a27c5244ef7315876ef9bf6898310bfe582365a3900b8ebbbe5

Field by field

The five fields the Gate E1 demonstration resolves. Each one carries its own native statement, semantic interpretation, and complete derivation record.

product_id resolved

Native — what the origin returned

Term
origin:testorigin/product_id
Locator
/product_id
Lexical value
sku-001

Semantic — our interpretation

Term
commerce:Product.identifier
Type
string
Value
sku-001

Provenance — how one became the other

Extraction
json_pointer at /product_id
Transforms
trim
Mapping relation
equivalent_in_context
Retrieved at
2026-08-10T05:07:03.9995434Z
Final URL
http://127.0.0.1:18080/product/sku-001
Body digest
sha256:e194e7dfd8bad2e92564e2a01527aad79af467feda26733d9d06ac2132ebd73a
Observation
sha256:98025ae34cf1c21ea7bf14c9ca0e2a25f504a9ec1768ec6c0f5202ac49d02e57
Adapter
sha256:86995ebf29b33eb6e23e871de86fdc4112bba3d5101b21781e9f750482c03117

product_name resolved

Native — what the origin returned

Term
origin:testorigin/name
Locator
/name
Lexical value
Field Notebook

Semantic — our interpretation

Term
commerce:Product.name
Type
string
Value
Field Notebook

Provenance — how one became the other

Extraction
json_pointer at /name
Transforms
trim
Mapping relation
equivalent_in_context
Retrieved at
2026-08-10T05:07:03.9995434Z
Final URL
http://127.0.0.1:18080/product/sku-001
Body digest
sha256:e194e7dfd8bad2e92564e2a01527aad79af467feda26733d9d06ac2132ebd73a
Observation
sha256:98025ae34cf1c21ea7bf14c9ca0e2a25f504a9ec1768ec6c0f5202ac49d02e57
Adapter
sha256:86995ebf29b33eb6e23e871de86fdc4112bba3d5101b21781e9f750482c03117

price_amount resolved

Native — what the origin returned

Term
origin:testorigin/current_price
Locator
/offer/current_price
Lexical value
19.99

Semantic — our interpretation

Term
commerce:OfferPrice.amount
Type
decimal
Value
19.99

Provenance — how one became the other

Extraction
json_pointer at /offer/current_price
Transforms
trimdecimal_string
Mapping relation
equivalent_in_context
Retrieved at
2026-08-10T05:07:03.9995434Z
Final URL
http://127.0.0.1:18080/product/sku-001
Body digest
sha256:e194e7dfd8bad2e92564e2a01527aad79af467feda26733d9d06ac2132ebd73a
Observation
sha256:98025ae34cf1c21ea7bf14c9ca0e2a25f504a9ec1768ec6c0f5202ac49d02e57
Adapter
sha256:86995ebf29b33eb6e23e871de86fdc4112bba3d5101b21781e9f750482c03117

price_currency resolved

Native — what the origin returned

Term
origin:testorigin/currency
Locator
/offer/currency
Lexical value
usd

Semantic — our interpretation

Term
commerce:OfferPrice.currency
Type
currency_code
Value
USD

Provenance — how one became the other

Extraction
json_pointer at /offer/currency
Transforms
trimuppercase
Mapping relation
equivalent_in_context
Retrieved at
2026-08-10T05:07:03.9995434Z
Final URL
http://127.0.0.1:18080/product/sku-001
Body digest
sha256:e194e7dfd8bad2e92564e2a01527aad79af467feda26733d9d06ac2132ebd73a
Observation
sha256:98025ae34cf1c21ea7bf14c9ca0e2a25f504a9ec1768ec6c0f5202ac49d02e57
Adapter
sha256:86995ebf29b33eb6e23e871de86fdc4112bba3d5101b21781e9f750482c03117

availability resolved

Native — what the origin returned

Term
origin:testorigin/availability
Locator
/availability
Lexical value
in_stock

Semantic — our interpretation

Term
commerce:Offer.availability
Type
string
Value
in_stock

Provenance — how one became the other

Extraction
json_pointer at /availability
Transforms
trimlowercase
Mapping relation
related weaker than equivalence — deliberately
Retrieved at
2026-08-10T05:07:03.9995434Z
Final URL
http://127.0.0.1:18080/product/sku-001
Body digest
sha256:e194e7dfd8bad2e92564e2a01527aad79af467feda26733d9d06ac2132ebd73a
Observation
sha256:98025ae34cf1c21ea7bf14c9ca0e2a25f504a9ec1768ec6c0f5202ac49d02e57
Adapter
sha256:86995ebf29b33eb6e23e871de86fdc4112bba3d5101b21781e9f750482c03117

Raw representation

The exact bytes the controlled origin returned, read from the content-addressed store by the digest the observation records. A controlled local fixture origin, not a production source. Loopback access is denied unless explicitly enabled.

{"availability":"in_stock","name":"Field Notebook","offer":{"currency":"usd","current_price":"19.99"},"product_id":"sku-001","updated_at":"2026-08-10T00:00:00Z"}
Verified at build time
Bytes162
SHA-256 of the bytes abovesha256:e194e7dfd8bad2e92564e2a01527aad79af467feda26733d9d06ac2132ebd73a
Recomputed on every buildYes. A mismatch fails the build.

This is a fixture, deliberately. The point of E1 is not that this document is interesting; it is that the path from these bytes to a typed value is complete and checkable.

Observation

The canonical envelope binds retrieval metadata to the evidence digest. Its field order and byte bounds are normative, defined in CDDL, and enforced identically by both implementations.

Observation envelope v1
Formattw.observation/0.1 v1
Request URLhttp://127.0.0.1:18080/product/sku-001
Final URLhttp://127.0.0.1:18080/product/sku-001
Method / statusGET / 200
Media typeapplication/json
Retrieved at2026-08-10T05:07:03.9995434Z
Policytw.fetch.local-fixture-v0
Observertyped-web-go/0.1
Body digest / sizesha256:e194e7dfd8bad2e92564e2a01527aad79af467feda26733d9d06ac2132ebd73a / 162
Envelope hashsha256:98025ae34cf1c21ea7bf14c9ca0e2a25f504a9ec1768ec6c0f5202ac49d02e57

What v1 does not record

The redirect chain and selected transport headers are absent. That is unresolved risk R2, and it is why Observation v2 is scoped into E2 as a new artefact rather than a mutation of v1 — released vectors are immutable.

Independent verification

A single implementation cannot tell you whether a rule belongs to the protocol or only to the code that happens to enforce it. Two can.

The two verifiers and what each is allowed to do
ImplementationValidatesResultAuthority
Primary verifier
Go
Canonical CBOR observation envelope and the stored body, re-hashed from the content-addressed store before extraction. 16 of 16 shared vectors as expected; corrupted evidence rejected. Validates. Cannot alone establish that a rule belongs to the protocol.
Independent verifier
C (restricted)
The same envelope and body, from the same committed vectors, under a separate bounded parser. 16 of 16 shared vectors as expected; post-validation CAS corruption rejected; ASan and UBSan clean. No network path, no registry authority, writes no canonical state. It can reject; it cannot admit.

The adapter digest above is not taken on trust either: the build recomputes the SHA-256 of adapters/testorigin-product/adapter.json and fails if it differs from the digest every field's provenance cites.

Where the second implementation stops

C independently verifies the observation envelope and the stored body. It does not yet verify the adapter runtime or the result envelope — the adapter has one implementation, and its formats are pre-stable and unsigned. That is unresolved risk R3, and extending C verification to results and bundles is scoped into E2.

Unresolved is a result, not a gap

An optional field that the origin did not provide becomes an explicit unresolved result with provenance, and no fabricated lexical value.

Vector missing-optional-source-field uses this source, which simply has no availability member:

{
  "name": "Missing optional availability",
  "offer": {
    "currency": "usd",
    "current_price": "19.99"
  },
  "product_id": "sku-missing-optional"
}
Expected outcome
Fieldavailability
Statusunresolved
Provenance presentYes — an unresolved field still records where it was looked for
Lexical valueOmitted entirely. There is no fabricated value to mistake for data.

A resolved empty string stays distinct from unresolved: see the resolved-empty-string vector. And a required field that cannot be extracted does not degrade — it fails closed, and no result is published at all.

Conformance vectors

The 11 committed extraction vectors. Six of them exist to prove that the system refuses input, which is the half of conformance that is easy to skip.

conformance/extraction/vectors.json
VectorExpectedSource fixture
lowercase-currency-preserved Implemented accept conformance/fixtures/product.json
missing-required-source-field Not proven reject conformance/fixtures/product-missing-required.json
missing-optional-source-field Implemented accept conformance/fixtures/product-missing-optional.json
wrong-media-type Not proven reject conformance/fixtures/product.json
adapter-origin-mismatch Not proven reject conformance/fixtures/product.json
json-pointer-escapes Implemented accept conformance/fixtures/json-pointer-escapes.json
prompt-injection-is-data Implemented accept conformance/adversarial/prompt-injection.json
resolved-empty-string Implemented accept conformance/fixtures/product-empty-name.json
duplicate-source-key Not proven reject conformance/adversarial/duplicate-keys.json
trailing-source-value Not proven reject conformance/adversarial/trailing-json.json
unpaired-surrogate-source-value Not proven reject conformance/adversarial/unpaired-surrogate.json

The chip marks the expected outcome, not a pass or fail: accept means the system must produce a result; reject means it must refuse. All eleven behaved as expected in the E1 run. There are a further 16 shared observation vectors, run identically in Go and C.

Sources of this page

The generator records the digest of every artefact it read, so a reviewer can check that the published proof came from the bytes they can see in the repository.

Inputs to /data/evidence-e1.json
ArtefactBytesSHA-256
examples/demo-observation.json 578 edd944ec41fcf2151ea7cd23555d5543b6aeff2709739f8cca1869c41165269a
examples/demo-result.json 6701 1f2bb567f71dca646a7721bca7233c7f44322e40052f5aaf7fca6f617200c6cf
adapters/testorigin-product/adapter.json 2495 86995ebf29b33eb6e23e871de86fdc4112bba3d5101b21781e9f750482c03117
conformance/extraction/vectors.json 5182 40850b787ee3b1b774952f9d948c0dc841eca8ca9a7b4a6b5908d03559fc5623
conformance/observation/vectors.json 8353 3bd557c16b8713350fe8a7cca4bb005a21cdeb73023ecb4b33de10a23e9de813
conformance/fixtures/product-missing-optional.json 156 91e1377381139371b19f557f0fabb999fb2bb91149227b5f05186c76c3460f46
var/cas/sha256/e1/94/e194e7dfd8bad2e92564e2a01527aad79af467feda26733d9d06ac2132ebd73a 162 e194e7dfd8bad2e92564e2a01527aad79af467feda26733d9d06ac2132ebd73a

Regenerate with make demo at the repository root, then cd web && go run . -evidence. Full evidence record on the proof page; the report itself is reports/gate-1-genesis.md.