{ "$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/target.v1.json", "title": "wai.quantum.target/1", "description": "A device target: its qubits, the pairs it couples, its native gates with their errors and durations, and the calibration snapshot they come from. A value not known is left out, never written as zero. Every field but format, name, source, qubits, gates and coupling is optional, and a field the format does not name is refused, so a misspelt one never reads as absent. Its canonical text is its RFC 8785 form, and the BLAKE3 of that text, the target's hash, names the snapshot in a receipt.", "type": "object", "required": [ "format", "name", "source", "qubits", "gates", "coupling" ], "additionalProperties": false, "properties": { "format": { "const": "wai.quantum.target/1" }, "name": { "type": "string", "minLength": 1, "maxLength": 200 }, "source": { "type": "object", "required": [ "format" ], "additionalProperties": false, "properties": { "format": { "type": "string", "description": "The format the target was read from (wai-quantum targets import --help lists them)." }, "note": { "type": "string", "maxLength": 400 } } }, "calibration": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "maxLength": 400, "description": "The calibration snapshot's id, as the source names it, or a content id of the snapshot read." }, "timestamp": { "type": "string", "maxLength": 400, "description": "When the snapshot was taken, as the source writes it." } } }, "qubits": { "type": "array", "minItems": 1, "maxItems": 2048, "description": "Every qubit, in order.", "items": { "type": "object", "required": [ "qubit" ], "additionalProperties": false, "properties": { "qubit": { "type": "integer", "minimum": 0, "description": "Its index: its place in the list." }, "label": { "type": "string", "description": "The source's own name for it, when that is not its index." }, "resonator": { "const": true, "description": "A computational resonator, not a qubit: a qubit's state is moved into it (move, listed on the qubit and the resonator) so that a cz on it acts on that state, and moved back out. It takes no one-qubit gate, is never measured and is never paired with another resonator. Written only when true." }, "t1_us": { "type": "number", "minimum": 0, "description": "T1, microseconds." }, "t2_us": { "type": "number", "minimum": 0, "description": "T2 (the echo or Ramsey time the source reports), microseconds." }, "frequency_ghz": { "type": "number", "minimum": 0, "description": "Its frequency, gigahertz." }, "readout": { "type": "object", "required": [ "p01", "p10" ], "additionalProperties": false, "properties": { "p01": { "type": "number", "minimum": 0, "maximum": 1, "description": "P(reads 1 | holds 0)." }, "p10": { "type": "number", "minimum": 0, "maximum": 1, "description": "P(reads 0 | holds 1)." } } }, "measure_ns": { "type": "number", "minimum": 0, "description": "The measurement's duration, nanoseconds." } } } }, "gates": { "type": "array", "maxItems": 262144, "description": "Each native gate where the device runs it, sorted by gate then qubits.", "items": { "type": "object", "required": [ "gate", "qubits" ], "additionalProperties": false, "properties": { "gate": { "type": "string", "pattern": "^[a-z0-9_]{1,40}$" }, "qubits": { "type": "array", "minItems": 1, "maxItems": 2, "items": { "type": "integer", "minimum": 0 } }, "error": { "type": "number", "minimum": 0, "maximum": 1, "description": "The average gate infidelity." }, "duration_ns": { "type": "number", "minimum": 0, "description": "Nanoseconds." }, "error_sd": { "type": "number", "minimum": 0, "maximum": 1, "description": "One standard deviation of the error, as the source states it." }, "leakage": { "type": "number", "minimum": 0, "maximum": 1, "description": "Of the error, the chance the gate leaves a qubit outside its two levels." }, "coherent": { "type": "object", "required": [ "theta_rad", "phi_rad" ], "additionalProperties": false, "description": "A two-qubit gate's coherent error: the angles by which the gate it runs differs from the one it is meant to be, read as an exchange-and-phase gate.", "properties": { "theta_rad": { "type": "number", "minimum": -3.141592653589793, "maximum": 3.141592653589793, "description": "The difference in its exchange (swap) angle, radians." }, "phi_rad": { "type": "number", "minimum": -3.141592653589793, "maximum": 3.141592653589793, "description": "The difference in its conditional phase, radians." } } } } } }, "crosstalk": { "type": "array", "description": "The static ZZ interaction between pairs of qubits, sorted by pair, each once. Written only when the source states one.", "items": { "type": "object", "required": [ "qubits", "zz_khz" ], "additionalProperties": false, "properties": { "qubits": { "type": "array", "minItems": 2, "maxItems": 2, "description": "The pair, the lower qubit first.", "items": { "type": "integer", "minimum": 0 } }, "zz_khz": { "type": "number", "description": "The shift of one qubit's frequency when the other holds 1 rather than 0, both idle, kilohertz; it may be negative." } } } }, "layer_fidelity": { "type": "array", "description": "Layered benchmarks the source measured, sorted by the chain's length, then its qubits. Written only when the source states one.", "items": { "type": "object", "required": [ "qubits", "fidelity" ], "additionalProperties": false, "properties": { "qubits": { "type": "array", "minItems": 2, "description": "The chain, in its order: each qubit coupled to the next.", "items": { "type": "integer", "minimum": 0 } }, "fidelity": { "type": "number", "minimum": 0, "maximum": 1, "description": "The fidelity of every two-qubit gate along the chain, run in two layers between random one-qubit gates on every qubit: the product of the layers' process fidelities." } } } }, "coupling": { "type": "array", "description": "The pairs a two-qubit gate may act on, each once, the lower qubit first, sorted.", "items": { "type": "array", "minItems": 2, "maxItems": 2, "items": { "type": "integer", "minimum": 0 } } } } }