What runtime verification checks
Every attestation containsruntimeVersion and runtimeHash — the identity of the runtime that produced the decision. Runtime verification confirms:
- The runtime’s self-reported version and hash match the release manifest
- The release manifest is signed by a trusted key
- The runtime capabilities are compatible with the attestation’s schema version
Using verifyRuntime from @parmanasystems/core
Using verifyRuntimeCompatibility
Checks that a runtime manifest is compatible with a given set of schema requirements:Via the REST API
The/runtime/manifest endpoint returns the running runtime’s manifest:
runtimeHash in this response with the runtimeHash embedded in attestations produced by this runtime. They must match.
Checking an attestation against the runtime
When you receive an attestation, verify that itsruntimeVersion and runtimeHash match a runtime you trust:
Expected result
A successfulverifyRuntime call returns:
valid: false with a reason indicating which check failed.
Troubleshooting
verifyRuntime returns valid: false — The release manifest signature does not verify against the public key, or the manifest has been tampered with. Do not trust attestations from this runtime until the issue is resolved.
runtimeHash in attestation differs from /runtime/manifest — The attestation was produced by a different runtime version than the one currently running. This is expected when the runtime is updated. For historical attestation verification, use the runtimeHash from the attestation itself — not the current runtime’s hash. Verify the historical runtime’s hash against the release manifest from that version.
verifyRuntimeCompatibility returns compatible: false — The runtime version or schema version does not appear in the supported* lists. The attestation may have been produced by a newer or older runtime than the one performing verification.