NeoMundi Measurement Interoperability
One measurement contract. Every infrastructure.
A public, versioned, cryptographically signed contract for transporting a NeoMundi runtime measurement into your infrastructure — structured so any external system can validate it, verify its integrity and origin independently, and apply its own interpretation and policy.
Two real historically signed RGC v0.1 observations from
examples/ in the repository. Unmodified.
Select a section above to see what it's for.
{
"identity": {
"schema_version": "0.1.0",
"request_id": "3d55da6a-8170-4480-a435-b0af0583a9fe",
"trace_id": "00-3ff43f4daeaa44efce938d816566a094-278bf1314051a6df-01",
"timestamp": "2026-08-17T16:43:47.547079Z",
"system_id": "controltower-api",
"model": "local",
"mode": "OBS"
},
"provenance": {
"measurement_version": "3.0.0",
"normalizer_version": "1.0.0",
"checks_emitted": 3,
"source_batch_id": null,
"canonicalization_method": "sorted-json-utf8"
},
"observation": {
"runtime_scope": "single_request",
"observation_window": null,
"measurement_status": "complete",
"measurement_coverage": 0.6,
"observed_signals": {
"stability_score": 0.615385,
"coherence_score": 1.0,
"factual_hallucination_score": 1.0,
"semantic_instability_score": 0.0,
"semantic_risk": 0.0,
"observation_class": "flagged",
"confidence": 1.0
},
"limitations": [
"Measurement reflects a single runtime observation window; it is not a certification of third-party content.",
"The governance signal is advisory only — it does not grant, refuse, suspend, or modify any execution permission.",
"Provider/model identity is pseudonymized in this contract and cannot be reversed to the original value."
],
"measurement_boundary": "This contract measures a single observed runtime signal. It does not evaluate ground truth, does not certify third-party data, and carries no execution authority."
},
"governance": {
"governance_boundary": {
"authorization_status": "not_applicable",
"execution_permission_changed": false
},
"advisory": {
"review_recommendation": "required",
"review_trigger": ["contradiction", "overclaim", "factual_risk"],
"recommended_review_type": ["independent_evidence_review", "human_validation"],
"interpretation_policy": {
"policy_id": "rgc-piste-b-advisory",
"policy_version": "0.1.0"
}
}
},
"integrity": {
"payload_hash": "6a605bf81bbbf1086289ea974dbfe4011206db0bc9970cfa21aaaf557627811c",
"hash_algorithm": "sha256",
"canonicalization": "sorted-json-utf8",
"signature": "eyJhbGciOiJFZERTQSIsImtpZCI6Im5lb211bmRpLXJnYy0yMDI2LTAxIiwidHlwIjoiSldUIn0.eyJwYXlsb2FkX2hhc2giOiI2YTYwNWJmODFiYmJmMTA4NjI4OWVhOTc0ZGJmZTQwMTEyMDZkYjBiYzk5NzBjZmEyMWFhYWY1NTc2Mjc4MTFjIiwiaGFzaF9hbGdvcml0aG0iOiJzaGEyNTYiLCJzY2hlbWFfdmVyc2lvbiI6IjAuMS4wIiwicmVxdWVzdF9pZCI6IjNkNTVkYTZhLTgxNzAtNDQ4MC1hNDM1LWIwYWYwNTgzYTlmZSIsInRpbWVzdGFtcCI6IjIwMjYtMDgtMTdUMTY6NDM6NDcuNTQ3MDc5WiJ9.tismpbLKt5hG8vYBIF8k42xi35QFGlCZ8bMVavmz-Q0yS1OJRdUDrE5b-izvkczJZh-LvBvmLwBk8RDHdTP_AA",
"signer_identity": "neomundi-controltower-rgc",
"key_id": "neomundi-rgc-2026-01",
"confidentiality_class": "controlled",
"retention_reference": "governance_logs:3d55da6a-8170-4480-a435-b0af0583a9fe"
}
}
Only endpoints and primitives this repository actually documents or uses.
Public schema and verification keys — README §11.
curl https://api.neomundi.io/v1/rgc/schema
curl https://api.neomundi.io/v1/rgc/jwks
Obtain a contract for an existing observation — README §12 (requires an API key).
curl -X POST \
"https://api.neomundi.io/v1/rgc/contracts/{request_id}" \
-H "X-API-Key: YOUR_NEOMUNDI_API_KEY"
Adapted from consumer-reference/rgc_consumer_demo/verify.py in this repository — standard library + cryptography and pyjwt only, no NeoMundi internal code.
import hashlib, json, base64
import jwt
from cryptography.hazmat.primitives.asymmetric import ed25519
from cryptography.hazmat.primitives.serialization import Encoding, PublicFormat
def canonical_sha256(payload: dict) -> str:
canonical = json.dumps(payload, sort_keys=True, separators=(",", ":"))
return hashlib.sha256(canonical.encode("utf-8")).hexdigest()
def recompute_payload_hash(contract: dict) -> str:
# integrity itself is excluded from its own hash
sections = {k: contract[k] for k in
("identity", "provenance", "observation", "governance")}
return canonical_sha256(sections)
def verify_signature(contract: dict, jwks: dict) -> bool:
key_id = contract["integrity"]["key_id"]
jwk = next(k for k in jwks["keys"] if k["kid"] == key_id)
x = jwk["x"]
raw = base64.urlsafe_b64decode(x + "=" * (-len(x) % 4))
public_key = ed25519.Ed25519PublicKey.from_public_bytes(raw)
pem = public_key.public_bytes(
encoding=Encoding.PEM, format=PublicFormat.SubjectPublicKeyInfo
)
claims = jwt.decode(
contract["integrity"]["signature"],
pem,
algorithms=["EdDSA"],
options={"verify_aud": False},
)
return claims["payload_hash"] == contract["integrity"]["payload_hash"]
Runs live, in this page, against the example selected on the left — via SubtleCrypto (SHA-256 always; Ed25519 where the browser's WebCrypto implements it).
const canonical = JSON.stringify(sortedSections); // sort-keys, Python-compatible
const digest = await crypto.subtle.digest(
"SHA-256", new TextEncoder().encode(canonical)
);
const recomputed = toHex(digest);
// recomputed === contract.integrity.payload_hash ?
const publicKey = await crypto.subtle.importKey(
"jwk", jwk, { name: "Ed25519" }, true, ["verify"]
);
const valid = await crypto.subtle.verify(
{ name: "Ed25519" }, publicKey, signatureBytes, signingInput
);
GET /v1/rgc/jwks).
NeoMundi provides the measurement signal and its verifiable trace. It does not grant, revoke, or otherwise alter execution permission, and does not require access to your policy engine, thresholds, or enforcement logic.