When you paste a Subspace Trace URL into an IC memo, you need the URL to still resolve to the same facts 6 months later. This page documents the contract that guarantees it.
"Byte-identical PDF" is intentionally NOT a guarantee — PDF metadata (creation timestamp embedded in the file) varies across regeneration runs. We hash the JSON, not the PDF bytes. Diligence verification proceeds against the JSON.
Given any Subspace snapshot URL — say one you found in an IC memo:
https://thesubspace.io/trace/cloudflare.com?snapshot=<HASH>&sig=<SIG>
You can verify it hasn't been tampered with in three steps:
1. Fetch the JSON payload:
curl https://thesubspace.io/api/v1/snapshots/<HASH>?sig=<SIG>
2. Canonicalize the response per RFC 8785 (JSON Canonicalization Scheme) and compute its SHA-256:
# Using the npm package canonicalize:
node -e "const c=require('canonicalize');const crypto=require('crypto');
const json=require('fs').readFileSync('/dev/stdin','utf8');
process.stdout.write(crypto.createHash('sha256').update(c(JSON.parse(json))).digest('hex'));"3. Compare the computed hash to the <HASH> in the URL — and to the hash printed in the PDF footer.
We canonicalize the JSON payload before hashing so that key reordering, whitespace, or number-format drift across JSON serializers does not change the hash. The canonical form:
Number.prototype.toString(); no trailing zeros, no scientific notation for typical magnitudes.The sig query parameter is an HMAC-SHA256 over {hash}|{owner_org}|{tier_at_creation} keyed by a server-side secret. It defends against a forged URL that claims a higher tier-at-creation (which would otherwise let a free-tier snapshot bypass the paid-tier-resolvability gate).
If the sig is invalid or missing, the /api/v1/snapshots/<HASH> endpoint returns 401. If the underlying hash is real but the sig was tampered, the same 401 fires — you can't bypass tier gating by rewriting query params.
If a fact in our pipeline turns out to be wrong, we issue a correction in the live /trace/<domain> view but we do not modify historical snapshots. The snapshot you cited remains exactly as it was at creation — including the now-known-wrong fact. This is the IC-memo-perpetuity promise; tampering with snapshot contents to "fix" facts would invalidate every prior citation.
If a snapshot must be redacted (e.g. legal takedown), we delete the row entirely and the URL begins returning 404. We log every such deletion in our internal audit log.