{"key_id":"ed25519:718f9ccff1cef500235425ce","algorithm":"Ed25519","public_key_pem":"-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAOBZbfZMCrAvZiX8P6XBY1n+tODXGOwQgzsep74/xIOc=\n-----END PUBLIC KEY-----\n","status":"active","ephemeral":false,"generated_at":"2026-10-14T23:20:24.748Z","verification":{"encoding":"RFC 8785 JSON: recursively sort object keys by UTF-16 code units, keep array order, JSON.stringify with no whitespace, encode as UTF-8.","canonical_excludes":["signature","generated_at","manifest_digest"],"artifact":{"canonical_excludes":["signature","generated_at","manifest_digest","serveEvaluatedAt","serveEvaluationId","serveExplanation","readinessCheckedAt","obtainReady","serveVerdict","reason","reasonCodes"]},"artifact_rule":"Use the artifact exclusions only for manifest_version=2, manifest_digest_kind=\"signed-manifest\", artifact.id and repo strings. Otherwise use the three common exclusions. Do not accept arbitrary exclusions from the document.","signature":{"digest":"SHA-256 of the signed bytes must match both manifest_digest and signature.canonical_digest.","verify":"Match signature.key_id to this active key, base64url-decode signature.value and verify Ed25519 over the signed bytes with public_key_pem (node:crypto verify with algorithm null)."},"scope":"Signs the file record, not the model author or model safety. SHA-256 separately checks downloaded bytes.","persistence":"The server loads a configured Ed25519 private key; its key_id is ed25519: plus the first 24 hex characters of SHA-256 of the public SPKI DER. Keep the configured key across restarts and releases. Without it, signing is unavailable and no signature is published.","example":"See apps/web/docs/manifest-signing.md for verification of the downloaded JSON document."}}