A result you can re-check.
Without asking us.
Runs that QCOS executes come back with a record of what ran, where, with which seed and parameters, at what cost, returning what — sealed under a SHA-256 Merkle root. Keep the file. Anyone can recompute the seal on their own machine.
Eight sections.
One hash each, one root.
QCOS writes the record as JSON, hashes each section with SHA-256 and combines the eight hashes into a Merkle root. The rule for recomputing it — canonical JSON, sorted keys, no whitespace — sits inside the seal, so nobody has to guess how it was built.
Run and job ids, timestamps, and the hashes of the input circuit and of the result.
Software environment, random seeds, algorithm parameters, and the shot, cost and time limits.
Where it ran: execution mode, backend, and the hardware snapshot when the provider reports one.
The circuit's logical metrics, and the compiled ones wherever QCOS compiled it.
Status, attempts, configuration, timings, resource use, and any error mitigation applied.
The raw distribution, quality metrics, and how many requested shots produced an outcome.
The control path the run took, field by field. What nobody knows is marked unknown, not left out.
Estimated and actual cost, and the credits the run required.
The eight section hashes, the Merkle root, and the exact rule for recomputing both.
Change one field and its section hash changes, and so does the root. The audit block also carries a single hash of the whole record.
Three commands.
The last one needs no network.
Fetch the record once and keep it with your results. The offline check recomputes every section hash and the root on your machine, then compares them with what the record claims. Nothing is sent anywhere.
The same check ships in the Python SDK, so a pipeline can refuse a record that does not verify.
# install the CLI pip install softqcos # keep your own copy — the server store is a cache softqcos evidence get <evidence_id> --out record.json # recompute every hash on this machine, no network softqcos evidence verify record.json --offline # prints VERIFIED, or NOT VERIFIED and exits 1
What the seal proves.
And what it does not.
A seal is integrity: the record you hold is the record that was made. It is not origin: anyone can compute a hash over content they control. Every record states its own claim level, and a record with hashes only says SEALED_UNSIGNED.
Integrity
Edit any field and the recomputed root no longer matches. The offline check reports NOT VERIFIED.
Reproducibility
Seeds, parameters, shots and the software environment are inside the seal, so someone else can run it again.
Not origin
A hash does not say who made the record. We call a record signed only when it carries a signature you can check.
Two kinds of record
Runs QCOS executes are Merkle-sealed. The quick simulator in SynapseX Labs keeps a content-hashed manifest of the code, seed and shots instead.
What people ask
before they cite a result.
Keep the record.
Check it anywhere.
Simulator runs on QCOS cost 0 credits and come back sealed. Install the CLI, run a circuit, and verify the record on a machine that has never talked to us.