Scope fence – read before use A span receipt proves this exact span content, at this position in the span tree, was attested by whoever holds the signing key, at generation time. It does not prove the underlying operation was computationally correct (that is OCG §18, a separate claim), and it does not prove real-world timing accuracy – it binds to whatever startTimeUnixNano/endTimeUnixNano the trace already carries. The gen_ai attribute namespace has zero tagged upstream releases, so semconv_snapshot is this tool's own dated pin, stamped into every receipt, and expected to drift as the upstream spec moves. Signing keys here are ephemeral (or pasted by you), not anchored to any external identity registry. Zero network export: this page never opens an OTLP or network connection. Everything stays in the browser; use the download buttons to save files.
๐Ÿ”’ All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data โ€” use synthetic or anonymised inputs only.
Step 1 · Load or Paste an OTLP/JSON Trace
resourceSpans → scopeSpans → spans · any valid OTLP/JSON trace works
Step 3 · Verify a Trace + Receipt Bundle
Recompute digests · walk parent chain · rebuild Merkle root · attested vs unattested vs tampered