{"service":"wai-quantum-service","version":"0.2.2","versions":{"schema":"wai.quantum.versions/1","engine":{"name":"wai-quantum","version":"0.9.0"},"schemas":{"job_request":"wai.quantum.job-request/1","job_result":"wai.quantum.job-result/1","job":"wai.quantum.job/1","receipt":"wai.quantum.receipt/2","plan":"wai.quantum.plan/1","tools":"wai.quantum.tools/1","versions":"wai.quantum.versions/1","verdict":"wai.quantum.verdict/1","target":"wai.quantum.target/1","estimate":"wai.quantum.estimate/1","compile_result":"wai.quantum.compile-result/1","set":"wai.quantum.set/1","provenance":"wai.quantum.provenance/1","qec":"wai.quantum.qec/1","pulse":"wai.quantum.pulse/1","landscape":"wai.quantum.landscape/1","distance":"wai.quantum.distance/1","mitigation":"wai.quantum.mitigation/1","answer":"wai.quantum.answer/1","telemetry":"wai.quantum.telemetry/1","views_bundle":"wai.quantum.views-bundle/1","course":"wai.quantum.course/1","exercise":"wai.quantum.exercise/1","course_check":"wai.quantum.course-check/1","algorithms":"wai.quantum.algorithms/1","service_tools":"wai.quantum.service-tools/1","receipt_keys":"wai.quantum.receipt-keys/1"},"policy":"https://git.transaction.science/Transaction-Science/open-standards/src/branch/main/wai/wai-quantum/VERSIONING.md","deprecations":"https://git.transaction.science/Transaction-Science/open-standards/src/branch/main/wai/wai-quantum/DEPRECATIONS.md","host":{"name":"wai-quantum-service","version":"0.2.2"},"protocols":{"mcp":["2025-11-25","2025-06-18","2025-03-26"]}},"methods":[{"method":"exact","accuracy":"bit-exact","circuits":"every angle a dyadic multiple of 2π (2πm/2^k, k ≤ 32)","max_qubits":26,"answers":["counts","expectations","amplitudes","state_hash"],"options":{"controls":"whole: a gate whose standard gates would double runs as one, under as many as 255 controls, with other bits than the default (standard)"}},{"method":"statevector","accuracy":"exact","circuits":"any","max_qubits":32,"answers":["counts","expectations","amplitudes"],"options":{"controls":"standard: a gate under many controls runs in standard gates, reproducing a result made that way bit for bit (default whole: it runs as one, under as many as 255 controls)"}},{"method":"statevector_single","accuracy":"single","circuits":"any, gates on at most four qubits","max_qubits":33,"available":true,"answers":["counts","expectations","amplitudes"],"options":{"fusion":"the widest fused gate (default 3, at most 3)"}},{"method":"stabilizer","accuracy":"exact; with Pauli noise, counts are noisy samples and expectations estimates","circuits":"Clifford (rotations by whole quarter turns, controlled phases by whole half turns), optionally with depolarizing, dephasing and readout noise","max_qubits":32768,"answers":["counts","expectations"],"options":{"trajectories":"with noise: the shots expectation values are estimated from (default: the shots, at least 10000)"}},{"method":"pauli","accuracy":"bounded","circuits":"any","max_qubits":1024,"answers":["expectations"],"options":{"threshold":"coefficients below it are dropped (default 1e-5); the bound covers what was dropped","max_weight":"Pauli strings heavier than this are dropped","ladder":"also report the value at up to three thresholds a decade apart above it, to show it settling (default true)","max_terms":"the most Pauli terms to hold (default: what the job's memory holds); past it the threshold rises, and the bound covers what drops"}},{"method":"mps","accuracy":"exact when nothing is truncated, otherwise heuristic","circuits":"any; best on low-entanglement circuits","max_qubits":4096,"answers":["counts","expectations","amplitudes"],"options":{"max_bond":"the largest bond dimension kept (default 64, at most 256)","cutoff":"singular values whose squared share is below it are dropped (default 1e-12)"}},{"method":"stabilizer_rank","accuracy":"exact; with terms or epsilon, an estimate with its bound","circuits":"Clifford+T (t, tdg, and p, rz, rx, ry at odd multiples of π/4, cp at odd multiples of π/2, ccz and ccx), each T gate doubling the sum's terms: the state as a sum of stabilizer states","max_qubits":32768,"answers":["amplitudes","expectations"],"options":{"terms":"the sampled mode: this many branches drawn, seeded, the result an estimate with the bound on its distance from the state that holds with the confidence stated","epsilon":"the sampled mode with as many branches as that bound needs","confidence":"the probability the sampled bound holds (default 0.95)"}},{"method":"tensor_network","accuracy":"exact","circuits":"any","max_qubits":65536,"answers":["amplitudes"],"options":{"path_restarts":"independent contraction-path searches, the cheapest kept (default 8; 1 in a browser tab)"}},{"method":"cutrank","accuracy":"exact; single when only a single-precision table fits","circuits":"a Clifford circuit, then one layer of one-qubit gates at any angles: each qubit's gates from its first non-Clifford one on act on that qubit alone; the cost is set by the state's cut-rank along an order of the qubits, not by their number","max_qubits":4096,"answers":["counts","amplitudes"]},{"method":"cutrank_single","accuracy":"single","circuits":"as for cutrank; the table on a GPU, its arithmetic in single precision","max_qubits":4096,"max_cut":31,"available":true,"answers":["counts","amplitudes"]},{"method":"density_matrix","accuracy":"exact","circuits":"any, with noise","max_qubits":16,"answers":["counts","expectations"]},{"method":"trajectories","accuracy":"estimate","circuits":"any, with noise","max_qubits":32,"answers":["counts","expectations"],"options":{"trajectories":"how many (default: the shots, or 1000 for expectations alone); shots that take the same errors share one state"}},{"method":"pulse","accuracy":"bounded","circuits":"pulse programs: OpenPulse calibrations (cal, defcal) on physical qubits, every gate called with its calibration","max_qubits":4,"answers":["counts","populations","captures"],"options":{"pulse":"dt_ns, levels, tolerance, substeps, qubits, couplings, ports (the request's \"pulse\")"}}],"accuracy_classes":{"bit-exact":"the same bits on every machine: amplitudes in 30-bit fixed point, every output an exact function of them; counts are seeded samples","exact":"no approximation beyond IEEE double-precision rounding; counts are seeded samples of the exact distribution","bounded":"an approximation with a rigorous bound on |exact − value| reported beside each value","estimate":"a statistical estimate, reported with its standard error, or with a bound on its error and the probability that the bound holds","heuristic":"an approximation reported with the standard estimate of its error (a matrix product state's fidelity estimate), not a bound"},"components":{"format":"wai.quantum.components/1","engine":{"name":"wai-quantum","version":"0.9.0"},"methods":[{"kind":"method","name":"exact","version":"0.9.0","digest":"2af1b126f5dd1f8dff4adcae69c74ed17c77fe84e5dba94d895b37ecba261e4c","origin":"built-in","descriptor":{"declared":{"accuracy":"bit-exact","circuits":"every angle a dyadic multiple of 2π (2πm/2^k, k ≤ 32)","answers":["counts","expectations","amplitudes","state_hash"],"options":{"controls":"whole: a gate whose standard gates would double runs as one, under as many as 255 controls, with other bits than the default (standard)"}},"classes":["bit-exact"],"models_noise":false,"reads_program":false,"auto":{"counts":20,"expectations":20,"amplitudes":10}}},{"kind":"method","name":"statevector","version":"0.9.0","digest":"9f1b69b1edcea444e0fae3a55cda65a711d82f3ea77cac404362217355f3c612","origin":"built-in","descriptor":{"declared":{"accuracy":"exact","circuits":"any","answers":["counts","expectations","amplitudes"],"options":{"controls":"standard: a gate under many controls runs in standard gates, reproducing a result made that way bit for bit (default whole: it runs as one, under as many as 255 controls)"}},"classes":["exact"],"models_noise":false,"reads_program":false,"auto":{"counts":30,"expectations":30,"amplitudes":20}}},{"kind":"method","name":"statevector_single","version":"0.9.0","digest":"34e4da705345beb4a02dde1866e9ec6d8fa97b7e8080f6cf724f33b7c2df724e","origin":"built-in","descriptor":{"declared":{"accuracy":"single","circuits":"any, gates on at most four qubits","answers":["counts","expectations","amplitudes"],"options":{"fusion":"the widest fused gate (default 3, at most 3)"}},"classes":["single"],"models_noise":false,"reads_program":false,"auto":{"counts":40,"expectations":40,"amplitudes":30}}},{"kind":"method","name":"stabilizer","version":"0.9.0","digest":"13a4ae05e2b053b61cdbf7c4d44f743af751fd10665ac315e385a01d0ca7794a","origin":"built-in","descriptor":{"declared":{"accuracy":"exact; with Pauli noise, counts are noisy samples and expectations estimates","circuits":"Clifford (rotations by whole quarter turns, controlled phases by whole half turns), optionally with depolarizing, dephasing and readout noise","answers":["counts","expectations"],"options":{"trajectories":"with noise: the shots expectation values are estimated from (default: the shots, at least 10000)"}},"classes":["exact","estimate"],"models_noise":true,"reads_program":false,"auto":{"noise":20,"counts":10,"expectations":10}}},{"kind":"method","name":"pauli","version":"0.9.0","digest":"6611d7431ab45bf3450c8e494e488b0a7458bf7c59c69e17d17b453ce82ebfd0","origin":"built-in","descriptor":{"declared":{"accuracy":"bounded","circuits":"any","answers":["expectations"],"options":{"threshold":"coefficients below it are dropped (default 1e-5); the bound covers what was dropped","max_weight":"Pauli strings heavier than this are dropped","ladder":"also report the value at up to three thresholds a decade apart above it, to show it settling (default true)","max_terms":"the most Pauli terms to hold (default: what the job's memory holds); past it the threshold rises, and the bound covers what drops"}},"classes":["bounded"],"models_noise":false,"reads_program":false,"auto":{"expectations":60}}},{"kind":"method","name":"mps","version":"0.9.0","digest":"40281e064b8f8e5514cc8def146c4ae70ce430ccc00993798e7674da2032460f","origin":"built-in","descriptor":{"declared":{"accuracy":"exact when nothing is truncated, otherwise heuristic","circuits":"any; best on low-entanglement circuits","answers":["counts","expectations","amplitudes"],"options":{"max_bond":"the largest bond dimension kept (default 64, at most 256)","cutoff":"singular values whose squared share is below it are dropped (default 1e-12)"}},"classes":["exact","heuristic"],"models_noise":false,"reads_program":false,"auto":{"counts":60,"expectations":70,"amplitudes":70}}},{"kind":"method","name":"stabilizer_rank","version":"0.9.0","digest":"d8077204f0333dc01cb0375e602358a32b0093c5ef6f69690ec31d47c2ff6b61","origin":"built-in","descriptor":{"declared":{"accuracy":"exact; with terms or epsilon, an estimate with its bound","circuits":"Clifford+T (t, tdg, and p, rz, rx, ry at odd multiples of π/4, cp at odd multiples of π/2, ccz and ccx), each T gate doubling the sum's terms: the state as a sum of stabilizer states","answers":["amplitudes","expectations"],"options":{"terms":"the sampled mode: this many branches drawn, seeded, the result an estimate with the bound on its distance from the state that holds with the confidence stated","epsilon":"the sampled mode with as many branches as that bound needs","confidence":"the probability the sampled bound holds (default 0.95)"}},"classes":["exact","estimate"],"models_noise":false,"reads_program":false,"auto":{"expectations":50,"amplitudes":50}}},{"kind":"method","name":"tensor_network","version":"0.9.0","digest":"610891af1f79f6c9492fdd6390d52c448e499d6f7b6424de984f186a930679db","origin":"built-in","descriptor":{"declared":{"accuracy":"exact","circuits":"any","answers":["amplitudes"],"options":{"path_restarts":"independent contraction-path searches, the cheapest kept (default 8; 1 in a browser tab)"}},"classes":["exact"],"models_noise":false,"reads_program":false,"auto":{"amplitudes":60}}},{"kind":"method","name":"cutrank","version":"0.9.0","digest":"852871312e290edbe745602304afeae1d6c41351edd95bf79962213fc017f13a","origin":"built-in","descriptor":{"declared":{"accuracy":"exact; single when only a single-precision table fits","circuits":"a Clifford circuit, then one layer of one-qubit gates at any angles: each qubit's gates from its first non-Clifford one on act on that qubit alone; the cost is set by the state's cut-rank along an order of the qubits, not by their number","answers":["counts","amplitudes"]},"classes":["exact","single"],"models_noise":false,"reads_program":false,"auto":{"counts":50,"amplitudes":40}}},{"kind":"method","name":"cutrank_single","version":"0.9.0","digest":"b596173a1366161ce584bc53d827035f924ff4beefd0b7c249d924f2cdf6a694","origin":"built-in","descriptor":{"declared":{"accuracy":"single","circuits":"as for cutrank; the table on a GPU, its arithmetic in single precision","answers":["counts","amplitudes"]},"classes":["single"],"models_noise":false,"reads_program":false,"auto":{}}},{"kind":"method","name":"density_matrix","version":"0.9.0","digest":"a6699c67758bb94bc7ed7dc5db31b01922eae8c798be7817cba3a88186ab64d2","origin":"built-in","descriptor":{"declared":{"accuracy":"exact","circuits":"any, with noise","answers":["counts","expectations"]},"classes":["exact"],"models_noise":true,"reads_program":false,"auto":{"noise":10}}},{"kind":"method","name":"trajectories","version":"0.9.0","digest":"ec8753d8d2879d7787458d4aa07318ae0b60e0c3c820af1639f56e001a68d9f4","origin":"built-in","descriptor":{"declared":{"accuracy":"estimate","circuits":"any, with noise","answers":["counts","expectations"],"options":{"trajectories":"how many (default: the shots, or 1000 for expectations alone); shots that take the same errors share one state"}},"classes":["estimate"],"models_noise":true,"reads_program":false,"auto":{"noise":30}}},{"kind":"method","name":"pulse","version":"0.9.0","digest":"5b9d58ba66b7d2cd25c6d3709df5e7f673344afbfa37a8a7c95f00ef9d108005","origin":"built-in","descriptor":{"declared":{"options":{"pulse":"dt_ns, levels, tolerance, substeps, qubits, couplings, ports (the request's \"pulse\")"},"accuracy":"bounded","circuits":"pulse programs: OpenPulse calibrations (cal, defcal) on physical qubits, every gate called with its calibration","answers":["counts","populations","captures"]},"classes":["bounded"],"models_noise":false,"reads_program":true,"auto":{}}}],"passes":[{"kind":"pass","name":"lower","version":"0.9.0","digest":"72386de92053b4812ccd8d632678848d1fac335bd0185d186e23a5db9928852f","origin":"built-in","descriptor":{"declared":{"does":"every gate in the basis h x y z s sdg t tdg cx cz swap rz, each decomposition checked against its gate's matrix"},"takes":"any","gives":"basis","check":{"by":"fidelity","max_distance":1e-12}}},{"kind":"pass","name":"simplify","version":"0.9.0","digest":"a5bfd67f29f84c859bb07edcccdfa27efc683d2ded3080f3c0250d71f58a68e3","origin":"built-in","descriptor":{"declared":{"does":"the engine's rewrites (cancel, merge, conjugate, carry past), each checked on the qubits it touches"},"takes":"any","gives":"any","check":{"by":"ladder"}}},{"kind":"pass","name":"phase_fold","version":"0.9.0","digest":"f792d44877d66129bb4a2c6371af75ecf6f0c9fb5763dfb7a08564be77e2f98f","origin":"built-in","descriptor":{"declared":{"does":"phase gates on one parity merged into one, checked by recomputing the phase polynomial"},"takes":"any","gives":"any","check":{"by":"ladder"}}},{"kind":"pass","name":"resynth_1q","version":"0.9.0","digest":"c30c1394f037ac36fb8595b3e20d19aaeeaff98b97fa20d5d70577f46f169093","origin":"built-in","descriptor":{"declared":{"does":"each run of one-qubit gates written again when shorter: Clifford+T runs in normal form (fewest T), others as one rotation"},"takes":"any","gives":"any","check":{"by":"fidelity","max_distance":1e-12}}},{"kind":"pass","name":"resynth_2q","version":"0.9.0","digest":"7f8f68dc2cb148dc3bdf09cae0180f6c0ce0012e3e106c1670eb293843cb589d","origin":"built-in","descriptor":{"declared":{"does":"each block on one pair of qubits written again with at most three CNOTs (KAK) when that uses fewer"},"takes":"any","gives":"any","check":{"by":"fidelity","max_distance":1e-9}}},{"kind":"pass","name":"approximate","version":"0.9.0","digest":"6c06f7adddf1d85378b8845f6e0555542840ce241f2ba7f22c1e9fb8e2ff9735","origin":"built-in","descriptor":{"declared":{"does":"every rotation off the multiples of π/4 written as a Clifford+T word within its share of the ε budget"},"takes":"basis","gives":"clifford_t","check":{"by":"fidelity","max_distance":0.5}}},{"kind":"pass","name":"twirl","version":"0.9.0","digest":"27c1310a588603c64a06ceb44541512bcb4beae5620da0c6b73fade1ca67fd6d","origin":"built-in","descriptor":{"declared":{"does":"each two-qubit Clifford gate framed by a seeded random Pauli and its image through the gate: the same gate, its noise made Pauli on average"},"takes":"any","gives":"any","check":{"by":"ladder"}}},{"kind":"pass","name":"dd","version":"0.9.0","digest":"0afbff698ae1d4feba184ca39221b843d8e14f05758fdb2eea095186d029d9e6","origin":"built-in","descriptor":{"declared":{"does":"a dynamical-decoupling sequence (xx or xy4) in each window where a qubit idles long enough, spread across the window"},"takes":"any","gives":"any","check":{"by":"ladder"}}}],"channels":[{"kind":"channel","name":"depolarizing_1q","version":"0.9.0","digest":"9a2f10afed7c0b19041b34b98e96b734a9945b04d687c3501fbaa7e13eeaeb5a","origin":"built-in","descriptor":{"declared":{"does":"X, Y and Z each with probability p/3 after each gate on other than two qubits, on each qubit it touched"},"title":"one-qubit depolarizing noise","arity":1,"placement":"after_gate","params":[{"name":"p","min":0.0,"max":1.0,"meaning":"a probability"}]}},{"kind":"channel","name":"depolarizing_2q","version":"0.9.0","digest":"06f0c6ef86de6f72f39d14ea797b3a5d088c0bd6cca3a1d48ed7d5770b275e54","origin":"built-in","descriptor":{"declared":{"does":"each of the 15 non-identity two-qubit Paulis with probability p/15 after each two-qubit gate"},"title":"two-qubit depolarizing noise","arity":2,"placement":"after_gate","params":[{"name":"p","min":0.0,"max":1.0,"meaning":"a probability"}]}},{"kind":"channel","name":"amplitude_damping","version":"0.9.0","digest":"120418c9263dca084d99295b40350ab725ded2b6d58b3f80a9cb0dd208eac6f1","origin":"built-in","descriptor":{"declared":{"does":"amplitude damping of strength p after each gate, on each qubit it touched"},"title":"amplitude damping","arity":1,"placement":"after_gate","params":[{"name":"p","min":0.0,"max":1.0,"meaning":"a probability"}]}},{"kind":"channel","name":"dephasing","version":"0.9.0","digest":"ef70a37341206f93ec907d1438147ec1b6f8511269f4ee5ef004c987da372fa9","origin":"built-in","descriptor":{"declared":{"does":"Z with probability p after each gate, on each qubit it touched"},"title":"dephasing","arity":1,"placement":"after_gate","params":[{"name":"p","min":0.0,"max":1.0,"meaning":"a probability"}]}},{"kind":"channel","name":"readout","version":"0.9.0","digest":"c1abc17136f12549feb4d00de36583bf5a20051f38d58dade55f9b0adb6216bd","origin":"built-in","descriptor":{"declared":{"does":"each measured bit read flipped with probability p"},"title":"readout error","arity":1,"placement":"on_readout","params":[{"name":"p","min":0.0,"max":1.0,"meaning":"a probability"}]}}],"front_ends":[{"kind":"front_end","name":"qasm","version":"0.9.0","digest":"98e5ca63124517d0d02e648b3a9f9ff8cdbe3247693e28a1831162f606ee2da8","origin":"built-in","descriptor":{"declared":{"reads":"OpenQASM 3, and the OpenQASM 2 forms in common use","writes":"OpenQASM 3"},"title":"OpenQASM 3","binary":false,"extensions":["qasm","inc"],"profiles":[]}},{"kind":"front_end","name":"qir","version":"0.9.0","digest":"2d9cd6c3b3e12776607b06d54bca16c77f0b08d36efe46b70e8b2234824a9314","origin":"built-in","descriptor":{"declared":{"reads":"QIR as LLVM text, under its base and adaptive profiles","writes":"QIR 2.0 under the base or the adaptive profile"},"title":"QIR","binary":false,"extensions":["ll","qir"],"profiles":["base","adaptive"]}},{"kind":"front_end","name":"jeff","version":"0.9.0","digest":"2649e6bd09ba0451dcd184e135613cb6f3c732b22d3d7ef9f125227b62c55e0a","origin":"built-in","descriptor":{"declared":{"reads":"jeff, its Cap'n Proto message","writes":"jeff, its Cap'n Proto message"},"title":"jeff","binary":true,"extensions":["jeff"],"profiles":[]}}],"registered":0},"limits":{"body_bytes":1048576,"verify_body_bytes":4194304,"verify_body_values":524288,"job_memory_bytes":77309411328,"job_seconds":900,"active_jobs_per_client":3,"memory_per_client_bytes":77309411328,"client":"an IPv4 address, or an IPv6 /64","worker_sandbox":true,"submissions_per_window":30,"window_seconds":600,"queue":{"per_kind":256,"kinds":["circuit jobs","writes"],"about":"each kind of job fills the queue up to per_kind alone"},"result_retention_seconds":86400,"set_items":100,"result_bytes":67108864,"unread_results_per_client_bytes":268435456,"intents":16,"read_steps":22000000},"load":{"queued":0,"running":0,"memory_held_bytes":0},"uptime_seconds":13076,"store":{"kind":"files","durable":true,"addresses":"BLAKE3 digests of each program, request, result and receipt","restored":{"finished":97,"interrupted":0,"requeued":0,"rerun":0,"unreadable":0}},"energy":{"meter":"process","attribution":"process","covers":"the CPU energy of each job's worker process"},"write":{"available":false,"why":"this service has no model to write with (it was started without WAI_QSVC_MODEL), so POST /v1/write and write_circuit are refused (J080)"},"receipt_key":"06092a831e0a22da5bbfe5264e6160f47dcbe887feef31acdd213b7e037ccbf4","receipt_keys":"https://wai.transaction.science/quantum-jobs/.well-known/wai-quantum-receipt-keys","api_keys":false,"idempotency":{"header":"Idempotency-Key","argument":"idempotency_key","key_bytes":255,"on":["POST /v1/jobs","POST /v1/run","POST /v1/write","run_quantum_circuit","run_quantum_set","run_on_target","write_circuit"],"kept":"while its job is kept, whatever its status, but for a job the service interrupted, which the key runs again"},"endpoints":["GET /v1","GET /v1/health","GET /v1/methods","GET /v1/examples","GET /v1/targets","GET /v1/openapi.json","GET /.well-known/wai-quantum-receipt-keys","POST /v1/jobs","GET /v1/jobs/{id}","GET /v1/jobs/{id}/events","DELETE /v1/jobs/{id}","POST /v1/run","POST /v1/verify","POST /v1/critique","POST /v1/equivalent","POST /v1/improve","POST /v1/shortcuts","POST /v1/compile","POST /v1/estimate","POST /v1/repair","POST /v1/convert","POST /v1/qec/code","POST /v1/qec/decode","POST /v1/qec/threshold","POST /v1/gradient","POST /v1/optimize","POST /v1/vqe","POST /v1/qaoa","POST /v1/build","POST /v1/write","POST /mcp"],"mcp":"https://wai.transaction.science/quantum-jobs/mcp","console":"https://wai.transaction.science/quantum-run/"}