{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://git.transaction.science/Transaction-Science/open-standards/raw/branch/main/wai/wai-quantum/schemas/provenance.v1.json", "title": "wai.quantum.provenance/1", "description": "What a result came from, under the five categories cross-platform provenance surveys use: the circuit, the computer, the compilation, the execution and the software. A host adds it to the results it seals (the job service does, and each item of a set); a result without it reads as it always did. wai-quantum-service/docs/provenance.md maps every field to where it is and whether the receipt seals it.", "type": "object", "required": [ "schema", "circuit", "computer", "compilation", "execution", "software" ], "properties": { "schema": { "const": "wai.quantum.provenance/1" }, "circuit": { "type": "object", "description": "The program: the BLAKE3 digest of its text as given, its qubits and its gates.", "required": [ "program" ], "properties": { "program": { "type": "string", "description": "BLAKE3 of the program's text, in hex." }, "qubits": { "type": "integer", "minimum": 0 }, "gates": { "type": [ "integer", "null" ] } } }, "computer": { "type": "object", "description": "What ran it: a classical simulator, the method and its accuracy class, a device target's hash when the job named one, and the fabric's members when the result names where its state ran.", "required": [ "kind", "method" ], "properties": { "kind": { "const": "simulator" }, "method": { "type": "string" }, "accuracy": { "type": [ "string", "null" ] }, "target": { "type": "string", "description": "The device target's hash; its layout, routes and noise are in the result's own target." }, "fabric": { "type": "object", "description": "The kernel and the member that ran the state, or each partition's, as the result's fabric names them.", "properties": { "kernel": { "type": "string" }, "members": { "type": "array", "items": { "type": "string" } } } } } }, "compilation": { "type": "object", "description": "Whether the job asked to be compiled; if it did, each pass in order with its check's verdict, the certificate's digest, the gate set compiled to (its basis), the level, the ε budget and the distance the result carries, and that no pass draws a random number.", "required": [ "asked" ], "properties": { "asked": { "type": "boolean" }, "passes": { "type": [ "array", "null" ], "items": { "type": "object", "properties": { "pass": { "type": "string" }, "verdict": { "type": [ "string", "null" ] } } } }, "certificate": { "type": [ "string", "null" ] }, "basis": { "type": [ "string", "null" ], "description": "The gate set compiled to: clifford_t or standard." }, "level": { "type": [ "integer", "null" ] }, "epsilon": { "type": [ "number", "null" ] }, "distance": { "type": [ "number", "null" ] }, "seeded": { "const": false }, "device": { "type": "string", "description": "A job on a device target, compiled exactly to its gates: where its layout and routes are." }, "status": { "const": "not-applicable" }, "why": { "type": "string" } } }, "execution": { "type": "object", "description": "The shots, the seed and the plan the job ran under; its identifier and times are the host's, outside the result.", "required": [ "plan" ], "properties": { "shots": { "type": [ "integer", "null" ] }, "seed": { "type": [ "integer", "null" ] }, "plan": { "type": "object", "properties": { "method": { "type": "string" }, "why": { "type": "string" }, "memory_bytes": { "type": "integer", "minimum": 0 }, "work": { "type": "integer", "minimum": 0 } } } } }, "software": { "type": "object", "description": "The engine's name and version, and the host's.", "required": [ "engine", "host" ], "properties": { "engine": { "type": "string" }, "host": { "type": "string" } } } } }