The system of record
for quantum computing.
Bind every quantum run to the exact calibration and hardware state that produced it — so results are reproducible, comparable, citable and auditable across IBM, IonQ, Braket, Azure and simulators.
pip install quantumledger
Capture your first run offline in ~5 minutes — no account required.
An example of a public, citable Result Card.
From a run to an audit-ready result
Four steps, all built on one immutable, hash-chained record.
Wrap your job with @ql.capture. The circuit, backend, calibration and result are recorded locally — offline, no account.
Re-run against a drifted device state and score how much changed, with a Hellinger fidelity and a plain-language verdict.
Turn any run into a public, citable Result Card with a DOI, provenance hash and embeddable badges.
Map runs to standards like FAIR or IEEE P7131 and issue signed, publicly-verifiable attestations.
Everything a result needs to be trusted
A Merkle run-hash binds circuit, backend, calibration and result into a tamper-evident, hash-chained ledger.
Deterministic drift profiles + Hellinger / TVD scoring show exactly why a result changed.
Public cards with DOIs, citations (BibTeX/RIS) and shields.io-style badges.
Evidence auto-collected from your runs; issue Ed25519-signed, revocable attestations.
A longitudinal, public calibration corpus powering the hardware leaderboard.
One @ql.capture decorator; pluggable connectors for IBM, IonQ, Braket, Azure & simulators.
Earn trust, one rung at a time
Every result advances a maturity ladder that others can see at a glance.
Built for how you work
Make results reproducible and citable. Publish a Result Card with a DOI and prove it hasn't changed — free for academic email domains.
Start free →Compliance frameworks, continuous monitoring, signed attestations and a public Trust Center to share your posture.
See Pro & Lab →Self-hosting, SSO/SAML, data residency and an SLA — the vendor-neutral record of every quantum workload.
Talk to us →One decorator. Any backend. Fully offline.
Capture runs from your existing code with no rewrites, inspect them with the ql
CLI, and push to a hosted or self-hosted server when you're ready. The provenance format is open and
verifies its own hash without us.
import quantumledger as ql
from qiskit_aer import AerSimulator
@ql.capture(project="bell")
def run():
return AerSimulator().run(qc, shots=4096)
# $ ql list
# $ ql reproduce <id> --days 90 --profile bad_day
# $ ql push
Make your next quantum result reproducible.
Start free — no account needed to try it locally.