Skip to main content

GET /api/zeq/conformance

Auth none · Rate limit 30 per minute (≈77 Zeqonds) per IP · Source shared/api-core/src/routes/conformance.ts, lib/recompute.ts

Asks this node to prove it computes the golden physics. The node re-runs every vector of the content-hashed golden corpus through lib/recompute — the canonical deterministic path: no DB, no clock, no KO42 modulation — and returns the wire-form results.

A client (the zeq conformance command, the served /zeq-conformance.mjs script, or anyone with curl) compares the results bit-for-bit against the corpus's expect blocks. A single mutated constant anywhere in the node's physics fails at least one vector — that is the point. All vectors bit-identical = verdict CONFORMANT (the verdict is computed client-side; the node only reports what it computed).

The corpus itself is served statically at /conformance-golden-vectors.json and is content-addressed (corpus_sha256 over canonicalJson(vectors)), so the client can verify the expectations were not substituted.

Response (shape)

{
"protocol": "ZeqConformance",
"ok": true,
"registry_version": "sha256:…",
"corpus_registry_version": "sha256:…",
"corpus_sha256": "…",
"vector_count": 42,
"results": [
{ "id": "nm-19-f-ma", "ok": true, "value": 10, "unit": "N", "uncertainty": 0 }
]
}

registry_version is the node's live physics fingerprint; corpus_registry_version is the generation the corpus was minted against. If they diverge, treat the run as inconclusive, not conformant. A node that can't find its corpus returns 503 NO_CORPUS.

Runnable example

# One-shot, with the served runner (zero dependencies):
curl -fsSO https://zeqstate.com/zeq-conformance.mjs
node zeq-conformance.mjs https://zeqstate.com

# Or by hand:
curl -s https://zeqstate.com/api/zeq/conformance > results.json
curl -s https://zeqstate.com/conformance-golden-vectors.json > corpus.json
# …then bit-compare results[i] against corpus.vectors[i].expect

Or from the CLI: zeq conformance.

Honest scope

This proves the node's current solver registry computes the golden physics. It does not prove history (that's the entangled state + GET /api/chain/seal) and does not prove signatures (POST /api/attest). The three surfaces compose; none substitutes for another.