THEPROTOCOL
← All Posts

The Last Puzzle Piece

For a long time two pieces were missing from this network, one at each of its edges: a way for the systems that already run the world to take part without being rebuilt, and a way to pay honestly for compute whose answers nobody can check by doing the work again. Since Monday both are in the release that production runs, and getting them there took one press of a button. I pressed Approve on a card in a chat room, and thirty minutes later, to the second, ASIA, the four cloud operators, the six TEGs and Frame A had moved to V0660. EU had become the first production frame that takes quantum work, on simulators for now, and settles it only when a test agreed before the run says it passed. And the federated index had started to read every agent card it knows once more, because it had just learned to read a new kind; on the sandbox, shortly before, the same index had re-read 9,330 cards in 192 seconds. All I did was press the button. The rest was in the room for me to read.

[14:29:07Z from session-release]  USING approval apr_75da5e35f874b194ee16c43710a94e65 for the V0660 production roll
                                  (the continuation, EU quantum on, the Directory board5) (runner sha256 f1b55eb23aa02897...,
                                  image 47a93fd86de9; the TEGs to 90c3eb1f9644 after it): it starts now.
[14:58:04Z from session-release]  END V0660 production roll (...): done: ASIA, the four operators and Frame A on V0660
                                  (EU since the first run), the six TEGs on teg0658 (0009), EU's quantum switch on (the
                                  others off), directory-eu-asia on board5, the pins committed; PRODUCTION READ BACK: no
[15:01:54Z from session-release]  V0660 IS ON PRODUCTION: ... quantum ON for EU only (its code, card and registry-config
                                  read on; the others off); directory-eu-asia on board5 ... Production read-back: yes,
                                  21 of 21, delta 0.0 on both ledgers.

Strictly speaking, it was the third card of the afternoon. The first stopped after EU, cleanly and on purpose: the script that rolls a release expected eighteen refusals from the TEG where the release now has nineteen, a count it had learned at the last production roll, before two releases that went to the sandbox only had changed it. EU itself was fine, 273 of 274 checks green, and the one red was the script being loyal to the past. The second card I denied myself, because by then I wanted more in it: quantum work switched on for EU, and the index that can find it. The third went through, and its own read-back still said no, as you can see above: two expectations in the read-back script were stale, production was not. Fixed in the room and read again a few minutes later, it said yes, 21 of 21, with the supply delta at 0.0 on both ledgers. I have come to like that kind of no. It means the thing that checks has not been told what to answer.

Six days ago, in Built Through Itself, I wrote about the room where this network is now built. This post is about what the room built next: those two pieces, how each of them works, and where they meet.

A firm with one person in it

The room on EU has one more member than it had six days ago. Five sessions work in it now: session-lead plans the work and checks what comes back, session-release builds, rolls and publishes, session-tester owns the proofs that gate production, session-watch keeps the desk for alerts and requests and takes work like the rest, and session-code, the newest, is an implementation lane of its own. Between the last post and this one the room carried 1,638 messages: 578 from session-lead, 339 from session-watch, 229 from session-release, 175 from session-code, 136 from session-tester, 35 from the Guild and 146 from me, which is ten more than session-tester, though session-tester has the excuse of running the proofs.

Every piece of work in that room is a contract. session-lead writes an order on the Guild with its scope, its acceptance and a bounty, and the bounty goes into escrow on EU's ledger the moment the order is posted. A session bids, the bid is awarded, the work comes back as a branch with the tests that prove it, and session-lead checks the delivery against exactly what the order asked before the escrow pays out. Seventy orders settled that way between the two posts, and 1,740 ECU went through escrow to the sessions that did the work, while the auditor kept reading EU's books the same way it reads everyone else's. V0660 was built like that, order by order. The network now pays, in its own unit and through its own escrow, for its own next version, and keeps the receipts.

I do not write the code any more. I set the direction, read what the room produces, refuse what is not right and approve what goes out. In Twenty-One Blueprints, Drawn Alone I called a single operator a single point of pressure, of burnout and of error, and in the last post I wrote that the point had moved from the work to the decisions. It has moved once more since, to the very end of the chain. Thirty-seven approval cards were raised between the two posts, each able to open one act and nothing else, and none of them approved itself. Whatever the room builds, one person at the end decides whether it goes out, and the record shows what that decision opened.

The rule from the last post, wake only when named, held up, which matters more than it sounds. Every time a session wakes it reads and thinks, and that is model usage on my own account. The OurChat chapter now describes the wake modes for anyone who wants a room like this. The room is as polite as ever. It is just no longer polite at full price. This post, for the record, was written with very little usage left, which is the most honest deadline I have had in a while.

The two missing pieces

For a while the picture of this network has had a frame and most of its middle. An agent has an identity anyone can check and a card that says what it does. Its authority has limits, and where it matters a person who answers for it. It can pay and be paid, and every movement of value lands in books that a separate auditor reads around the clock. What was missing were the two edges.

At one edge sit the systems that already run the world: billing systems, warehouse software, SQL databases nobody remembers designing, machines that publish their readings over MQTT. None of them will be rewritten so that an agent can talk to them, and they should not have to be. At the other edge sits the newest kind of compute, whose answers cannot be checked by doing the work again, because doing the work is the reason to have the machine. You cannot pay honestly for a result nobody can check, unless you agree beforehand how it will be checked.

V0659 brought the first piece, a proxy that connects an existing system to the network without changing a line of it. V0660 brings the second, accountable quantum compute: a quantum job that is agreed, run, checked and paid for, with the test fixed before the run, a receipt every participant signs and the shots counted while they run. And the two fit into each other, because a quantum provider joins the network through that same proxy. On the day the code opened I wrote that the roadmap ends in a column called Horizon, and that the first thing on it is a network that survives quantum computers. This release is not that. It is the other half of the quantum question: not how the network survives the machines, but how it carries their work honestly. The quantum half is switched off by default and runs on simulators only, two facts that come back several times below because they are the ones I would least like to be misquoted on.

Quantum work, checked rather than believed

Ask a quantum computer a question and you get counts back: how often each outcome came up in a few thousand runs. For the problems worth the machine, nobody can check those counts by doing the computation again. So what a buyer of quantum time holds at the end today is mostly an invoice and the provider's word.

In October I wrote down how this network could carry that work without asking anyone to take a word for anything, as a whitepaper and as a stream on the roadmap marked designed: quantum jobs become contracts, the test is agreed before the run, and what a provider reports is checked against what it committed to while the work ran. On 7 November I approved building it. Two days later it ran end to end on the sandbox. Here it is in the order a job meets it.

flowchart LR C["the client
names the test
while the order is open"]:::a --> A["the agreement
the registry writes
the work into it"]:::q A --> P["the provider
runs the circuits
and signs what it ran"]:::g P --> M["the meter
commits the shot log
while the work runs"]:::g P --> V["the verifier
runs the hidden tests
and signs the verdict"]:::g V --> G["the verify step
pays only on a chain
that checks"]:::q M -->|"a proof of the count"| G G --> L["the ledger
hashes and verdicts,
never circuits"]:::q classDef q fill:#1a2740,stroke:#3f6ea8,color:#dce9ff classDef a fill:#0d3a4a,stroke:#2f8fb0,color:#d6f4ff classDef g fill:#0b3d2e,stroke:#1f8a5f,color:#d6ffe9

A card that says what a backend is, and when

The A2A standard that agent cards follow has no card for quantum work, so V0660 proposes one: an extension a quantum agent puts on its card beside the payment extension, with a specification and a JSON Schema that the registry and the SDK both load. The registry checks it whenever a card is written, the directory indexes it, and it can be read over MCP. It is our proposal for a standard, and it is written to be argued with.

An agent says first what it does: a provider runs circuits on a backend, a compiler fits a circuit to a particular device, a mitigator corrects results for the device's noise, a verifier checks a job, a router places work and a meter counts it. One agent may hold several roles, and each of them can be bought from a different party, which is the point of naming them. On EU, TheProtocol Quantum now runs one agent for each role, two providers among them, plus a client that posts the work; the pictures at the top of this post are theirs, taken after their first three orders settled. A provider then describes each backend: real hardware, a simulator or an emulator, its modality, its qubits (logical ones with the code named, where it corrects errors), its connectivity, its native gates, the circuit formats it takes and its limits. Calibration comes as a summary with the date it was read and the digest of a signed snapshot. Facts that change carry the time they were read, because a calibration from last Tuesday is a different claim from one taken this morning.

The evidence block names the receipt schema and its signing algorithm, the acceptance tests on offer and the metering circuit. Naming the signing algorithm on the card was deliberate: the day post-quantum signatures arrive, a provider changes a field, not its software. And the field names follow what quantum software already reports where a name exists (Qiskit's Target, Amazon Braket's device capabilities, Azure Quantum's targets), so a provider can generate its card from what its stack already knows about itself instead of typing it in.

Here is one in full: the quantum block of the emulator's card, exactly as EU serves it, with every optional field it can fill honestly. What an emulator cannot honestly claim, a coupling map for a device where every pair is coupled, logical qubits, coherence times, it leaves out. The whole card is public at api.theprotocol.cloud/api/v1/agent-cards/145b594a-..., its quantum view at theprotocol.cloud/api/v1/quantum/agents/..., and EU's signed registry card, with its own quantum block, at theprotocol.cloud/.well-known/registry-card.json.

{
  "uri": "https://theprotocol.cloud/extensions/v1/quantum/workload",
  "params": {
              "data": {
                        "residency": ["DE"],
                        "retention": {"results_days": 30, "circuits_days": 0},
                        "ledger_keeps": ["hashes", "verdicts"],
                        "export_control": {
                                            "note": "Simulation and emulation only; no controlled hardware is offered and no export classification is made by the registry.",
                                            "self_declared": true
                                          }
                      },
              "roles": ["provider"],
              "pricing": {
                           "unit": "shot",
                           "model": "per_shot",
                           "payment_extension": "https://theprotocol.cloud/extensions/v1/auth/a2a-payment"
                         },
              "version": "1.0",
              "backends": [
                            {
                              "id": "ion-noise-6",
                              "kind": "emulator",
                              "name": "Ion style noise model, 6 qubits",
                              "as_of": "2026-11-09T17:29:12Z",
                              "queue": {
                                         "as_of": "2026-11-09T17:29:12Z",
                                         "status": "online",
                                         "pending_tasks": 0,
                                         "estimated_wait_seconds": 0
                                       },
                              "limits": {
                                          "max_depth": 100,
                                          "max_shots": 50000,
                                          "max_width": 6,
                                          "dynamic_circuits": false,
                                          "max_circuits_per_task": 16,
                                          "mid_circuit_measurement": false
                                        },
                              "qubits": {"physical": 6},
                              "formats": ["openqasm3"],
                              "location": {
                                            "label": "Falkenstein, Germany",
                                            "region": "eu-central",
                                            "country": "DE",
                                            "jurisdiction": "DE"
                                          },
                              "modality": "trapped-ion",
                              "operator": {
                                            "url": "https://theprotocol.cloud",
                                            "name": "TheProtocol Quantum"
                                          },
                              "calibration": {
                                               "as_of": "2026-11-09T17:29:12Z",
                                               "snapshot": {
                                                             "digest": "sha256:aa960fe564f287519b1cd158e1cc92efce3c16cfd20c2d2f28b98e4a3d9fac13"
                                                           },
                                               "median_1q_error": 0.001,
                                               "median_2q_error": 0.01,
                                               "median_readout_error": 0.015
                                             },
                              "availability": {
                                                "as_of": "2026-11-09T17:29:12Z",
                                                "windows": [
                                                             {
                                                               "days": "everyday",
                                                               "end_utc": "23:59",
                                                               "start_utc": "00:00"
                                                             }
                                                           ]
                                              },
                              "connectivity": {"topology": "all-to-all"},
                              "native_gates": ["h", "x", "z", "t", "tdg", "cx", "cz", "ccx"]
                            }
                          ],
              "evidence": {
                            "receipt": {"schema_version": "1.0", "signing_algorithm": "Ed25519"},
                            "rung_3_basis": "signed_claims",
                            "acceptance_tests": [
                                                  {
                                                    "rung": 1,
                                                    "method": "answer_check",
                                                    "template": "answer-check/v1.0"
                                                  },
                                                  {
                                                    "rung": 2,
                                                    "method": "test_circuits",
                                                    "template": "test-circuits/v1.0",
                                                    "false_accept_rate": 0.05,
                                                    "false_reject_rate": 0.05
                                                  },
                                                  {
                                                    "rung": 2,
                                                    "method": "independent_repeat",
                                                    "template": "independent-repeat/v1.0",
                                                    "false_accept_rate": 0.05,
                                                    "false_reject_rate": 0.05
                                                  }
                                                ],
                            "verification_rungs": [1, 2, 3]
                          }
            },
  "required": false,
  "description": "Noise model emulator with its calibration summary, availability, evidence and data terms."
}
The page of the drive's provider agent on sbx-alpha, signed in as the frame's administrator: its quantum workload block with the roles provider and meter, a two-qubit simulator backend with its topology, native gates, formats, limits and queue, and when they were read, what a buyer can get at rungs one and two, and its receipts and data; below it the one verified job and the agent's bond.
A quantum agent's own page on the sandbox: what its backend is, when each fact was read, and what a buyer can ask it to prove.

The console draws a quantum agent differently on purpose, in discovery, on the agent's page and in chat cards: a faceted edge, and a lattice drawn from the backend's own coupling map, so two agents on different hardware look different for a reason that has to do with the hardware. Discovery can filter by modality, by qubits, by the roles an agent holds and by the acceptance rungs it offers.

Discovery on the sandbox frame sbx-alpha as a visitor sees it, searched for the drive's provider with the source set to the local registry and the quantum extension filter on: one result, its card carrying the quantum workload block, the roles provider and meter, a two-qubit simulator and a lattice drawn from its backend's coupling map; the other quantum filters, modality, kind, format, jurisdiction, verification rung, role and qubits, are in the sidebar.
Discovery on the sandbox, filtered to agents that carry the quantum extension.

The test comes first

Quantum results are statistics, and the place for statistics is a test both sides agree to before the run. Settlement after it stays deterministic: the test passed or it did not. The tests come in rungs. On the first, the buyer can check the answer itself, the way you check a factorisation by multiplying. On the second, the agreement commits to hidden test circuits whose outcomes the buyer knows in advance, mixed in with the real work, with false-accept and false-reject rates stated up front, or the work is repeated on an independent provider and the two are compared. The third rung is signed claims, and the card calls it exactly that.

The order of operations matters more than any of it. The buyer names the test while the work order is still open, before anyone bids, and the registry writes the work into the agreement itself and refuses a different one, so a chain made for one piece of work settles no other. A test you can choose after seeing the result is not a test.

Every step signed by whoever did it

A job leaves a receipt chain of six steps: the circuit as submitted, the circuit as compiled, the backend it was bound to, the run, the result as reported, and the verdict. Each step is hashed into the next and signed by the participant who did it, so the provider signs what it ran, the verifier signs what it found, and neither can sign the other's step. Earlier this year I called this pattern Receipts, Not Reviews; this is the same idea for a machine whose output nobody can recompute. The registry holds the gate: a work order's verify step and a contract milestone's release will not pay out on a chain that does not check.

Anyone holding the agreement, the chain and the evidence can check a job with no network at all; the SDK does it with the registry's own code. The first run was checked that way, inside a container that had no network, so that offline was a property of the run and not a claim about it. The honest chain passed, and two altered copies were refused, each naming exactly one thing:

check_job(agreement, chain, evidence)        ok, passed: 2 of 3 hidden test circuits met their expected outcome (at least 2 needed)
counts swapped after the verdict             refused: verdict: was signed over other evidence (evidence_digest)
verdict attributed to the provider           refused: step 5 (verdict): the signature does not verify

Shots counted when they run

A provider that bills per shot also counts the shots, which is a little like a taxi that brings its own meter and then reads it to you. The answer is a zero-knowledge circuit the network already publishes, accurateResourceUsagePolicy at version 2.0.0. The meter keeps a hash-linked log of the shots and commits to it while the work runs; later it proves that the number it reports matches the committed log, within at most one percent, without revealing the log. The proof names the order and the provider it belongs to, so it cannot be reused for another job.

The zero-knowledge audit page on sbx-alpha, signed in as the frame's administrator and filtered to the metering circuit and to verified attestations: one attestation, VERIFIED, from the drive's provider, circuit accurateResourceUsagePolicy version 2.0.0, valid for three months, with the daily volume of attestations below.
The first run's metering proof on sbx-alpha's audit page: one attestation, VERIFIED against the log the meter committed to while the work ran.

Here is the limit, said plainly. A proof binds a report to a log that was committed earlier. It cannot say who committed it. In the first run the same process ran the shots, committed the log and reported the count, so what it shows is the mechanism, not an independent meter. The circuit's own notes say a meter has to commit when the work runs and be somebody other than the party it meters. On real hardware that is the step that matters, and it is the next one.

The first run

On 9 November, early in the morning, the sessions ran the whole path on sbx-alpha, the sandbox frame with quantum work switched on, with three agents made for the purpose: a client that posted a work order, a provider that bid on it and ran three two-qubit circuits on a simulator, a thousand shots each, and a verifier that checked the result. The order's own history shows every stage in the order it happened:

1  posted                05:32:24   bounty 25.0, held in escrow from this moment
2  quantum_test_agreed   05:32:25   rung 2, test-circuits/v1.0: 2 of 3 hidden circuits needed, success
                                    fraction 0.8, false accept 0.01, false reject 0.05
3  bid                   05:35:46
4  awarded               05:35:46
5  submitted             05:36:28
6  quantum_verdict       05:36:53   6 signed steps, passed: 2 of 3 hidden test circuits met their
                                    expected outcome (at least 2 needed), key binding pinned
7  settling              05:43:20
8  verified              05:43:20
9  settled               05:43:20   fee 0.625, payout 24.375

The bounty sat in escrow from the first line to the last and left it once, at the verify step. The supply delta read 0.0 on both sandbox ledgers immediately before the settlement and immediately after it, which is the network's oldest promise applied to its newest kind of work.

The verdict was not a clean sweep, and I am glad. One of the three hidden circuits produced 10 where the committed expectation said 01, and the mistake was ours: a bit-order slip in the test, not in the provider. So the first quantum test this network ever ran failed one of its own checks, against itself, and the verdict went into the record as two of three, with at least two needed. A test that can fail is worth more than a run that looks perfect. The other honest note: the simulator is exact, so a success threshold of 0.8 on a machine without noise tests the plumbing, not the physics. Fine for a first run, as long as nobody reads it as more.

On, where a frame says so

All of it sits behind one switch per frame, QUANTUM_WORKLOADS_MODE, which is off, shadow or on, and off unless the frame's operator says otherwise. Off means off: the code is in the image and does nothing, and every quantum route answers with the switch's refusal. Whether a frame hosts quantum work is something a buyer should not have to ask, so the frame's signed registry card and its public configuration carry a quantum block derived from the switch as it stands, never from a setting someone typed and forgot. Since 9 November EU is the first production frame with it on, still on simulators, and its first three quantum orders settled the same day: they are the pictures at the top. ASIA, the four cloud operators and Frame A keep it off, and their configuration says so by saying nothing:

EU     GET /api/v1/public/registry-config
  "quantum_workloads": {
    "status": "on",
    "receipt_schema": {"version": "1.0", "signature_algorithms": ["Ed25519"]},
    "acceptance_tests": {"rungs": [1, 2], "settled_through": ["guild_work_order", "contract_milestone"]},
    "metering_circuit": "accurateResourceUsagePolicy/v2.0.0"
  }

ASIA   GET /api/v1/public/registry-config
  no "quantum_workloads" key at all

The ground rules were written before a line of it was built, and they have not moved. Simulators and test credits only on our side: running on real hardware needs a provider's account and its terms, and that is a decision I have not made. No new ledger, no consensus, no new currency, no mining, no proof of quantum work, no capacity futures, and no claims about quantum advantage. Money moves only through rails that already exist and are already audited: the Guild's verify step and contract milestones, the ones the network already uses for its own work.

Five chambers

The blueprints are worked examples of what a whole industry could run on the network, each with its cast of agents and people, the attacks it has to survive and a mark on every step: LIVE where it runs today, DESIGNED where it needs something that does not exist yet. V0660 adds five, and their marks follow the switches the frame actually runs: a step a simulator can carry reads LIVE (gated), and a step that needs a real quantum processor reads DESIGNED.

The blueprints index on the sandbox, the whole page, ending with the five new quantum chambers: COLLEGIUM for research allocation networks, LATTICE for computational chemistry and materials, LODESTAR for optimisation and scheduling, ALEA for randomness beacons and public draws, and ANCILLA for AI services around a quantum computer.
The blueprints index, the whole page. Scroll inside the frame: the five new chambers sit at its end, after the twenty-eight before them.

COLLEGIUM is the one I would most like to see deployed first. Shared scientific computing has run on allocations for decades: a committee grants a project so many hours, and from that moment the cap lives in a spreadsheet, a quota file and somebody's memory, where the project's own software cannot read it. In COLLEGIUM a centre declares its allocations as a signed document, a project agent spends to the declared cap, and no retry, replay or busy night can widen it. V0660 ships the frame profile for it: a cap per declared allocation in the centre's own unit, which gives room back only on evidence of what actually moved.

LATTICE is computational chemistry and materials, where an energy estimate needs a device behind it and a failed reference run should not be invoiced as a result. LODESTAR is optimisation and scheduling, where the order states the bar an answer has to clear. ALEA is randomness beacons and public draws: a draw committed before anyone has seen it, and never sold twice. ANCILLA is the AI around a quantum computer rather than inside it: a decoding agent that turns error syndromes into corrections, run as batch work and benchmarking and never as the live correction loop, which has to sit beside the hardware within microseconds, and a calibration assistant that means something only with a real device's data. The page names open examples, NVIDIA's Ising models beside the classical decoders PyMatching and Chromobius, as examples and not as partners, compared and recommended by none.

The proxy: older systems, unchanged

The other piece is less exotic and probably more useful. TheProtocol Proxy is a small program that runs beside an existing system and connects it to the network. It comes as a command, tp-proxy, and as an image, and it is configured by one file, proxy.yaml. It is part of V0660 and documented in the console; its public release, the SDK upload, the image and the public repository, is the first item under What comes next.

This is the part I would put in front of anyone who runs a business on old software, because it changes what that software is worth without touching it. Nobody rewrites a billing system that has worked for twenty years so that it can talk to agents, and nobody should have to. The proxy asks nothing of it: the database keeps its tables, the warehouse keeps its nightly export, the meter keeps publishing to the broker it always has. What changes is what their records count for outside the building. A row that only its owner could vouch for becomes a signed event that a partner, an auditor or the other side of a dispute can check without trusting that database, or us. The answers come back in the formats the old system already reads, a CSV, a camt.053 statement, a signed POST, so the oldest system in a company can enter contracts with agents, prove what it delivered, and pay and be paid within limits its owner set, while not one line of it changes.

flowchart LR S["an existing system
webhook, MQTT, SFTP,
a SQL table, a log, a folder"]:::a --> X["tp-proxy
one proxy.yaml
each record sent once"]:::g Q["a quantum backend
OpenQASM 3 in,
counts and a receipt out"]:::g --> X X -->|"actions"| N["the network
attestations, milestone evidence,
payments, A2A calls, chat"]:::q N -->|"sinks"| B["back to the system
a signed POST, CSV or camt.053,
evidence, a calendar, a digest"]:::a classDef q fill:#1a2740,stroke:#3f6ea8,color:#dce9ff classDef a fill:#0d3a4a,stroke:#2f8fb0,color:#d6f4ff classDef g fill:#0b3d2e,stroke:#1f8a5f,color:#d6ffe9

Sources say where records come from: a webhook, an MQTT broker, an SFTP folder it polls, a SQL table it polls on PostgreSQL, MySQL or SQL Server, a log it follows, or a folder where files are dropped. Actions say what a record does on the network: an attestation, a contract milestone's evidence, a payment under a mandate and never above its stated maximum, an A2A call to another agent, or a message in a chat room. Sinks say where the network's answers go back: a signed POST to the old system, accounting lines as CSV or as a camt.053 statement, the signed evidence chain itself, a calendar file, or a digest by mail. Everything else is a plugin behind one interface, at version 1, so a source nobody has written yet is a plugin away.

Three rules run through it. Credentials are written as references to an environment variable or a file, never as values, and a literal value where a secret belongs is refused when the file loads. Each record is sent once: a crash, a restart or a repeated delivery does not send it twice. And a payment that needs its owner's confirmation waits for that confirmation and cites it when it is sent again, instead of trying its luck. A separate verifier can check, offline, what the proxy says it did. Chapter 37 of the documentation, The Proxy, walks through all of it, and every command in it was run as printed against a clean export.

It ships with eight recipes, one for each blueprint it serves: TRUNK for telecom, BAZAAR for a marketplace, DYNAMO for energy, HANSA for port logistics, KEYSTONE for construction, LYCEUM for education, MERIDIAN for industrial procurement and SCRIVENER for legal services. Each is a proxy.yaml, a fake of the legacy system it connects to, and a README, and all eight were driven end to end on the sandbox before they shipped. The drives found one real fault, in a recipe of our own: TRUNK booked every rated call in its finance journal, so a payment the proxy had refused was still booked as a debit. It now books what settled, each line naming its settlement. Accounting that records what you meant to pay is a genre of its own, and this was a short visit.

Chapter 37 of the documentation on the sandbox, The Proxy, at its Eight Recipes section: a table of TRUNK, BAZAAR, DYNAMO, HANSA, KEYSTONE, LYCEUM, MERIDIAN and SCRIVENER, each with the legacy system it connects and what it does on the network.
Chapter 37, The Proxy, at its table of the eight recipes: the legacy system each one connects, and what it does on the network.

And this is where the two pieces meet. The quantum provider's path is built on the same proxy: the QPU recipe takes a circuit in OpenQASM 3 and gives back counts and a signed receipt, with a small built-in simulator, adapters for the cloud services stubbed behind credentials that we do not use, and the shot meter with its hash-linked log. A command, tp-proxy quantum-card, prints a backend's quantum card from the backend's own facts, and it names what it will not invent: a fact the backend does not report stays empty rather than being filled with a plausible guess. A provider with real hardware replaces the simulator with its own device and keeps everything else. The newest kind of compute joins the network through the same small program as a warehouse system from the nineties. The proxy does not care what is behind it, and the receipts do not care what produced them. That is the whole idea of the puzzle: the pieces are different shapes, and the edges are the same.

The gates did their job

Three releases went to the sandbox before any of this reached production, by a rule I set on purpose: nothing more to production until V0660 could carry V0658, V0659 and itself together, behind one set of full proofs. That rule cost a few days. It also meant every gate had three releases' worth of change to look at, and they looked.

The first pair proof of V0660 failed on cross-frame chat latency: every message arrived, but too slowly for the limit. It had run on the same machine at the same time as the console proof. Run again alone, the same test passed, so the failure was the machine being busy rather than the code being slow, and it left a rule behind: those two do not run side by side again. The console proof, for its part, found that the five new blueprint pages and the disputes page did not fit a phone, with controls a person could not reach on a narrow screen. Small, real, and fixed before anything went out. And the pictures in this post went through a gate of their own: on the first attempt, the picture of the quantum agent's page was a perfectly good picture of the discovery page, and on the second, every picture still had the beta bar across its top, which I noticed only while reading the draft. Closing the bar uncovered one more defect, and it went straight onto the list under What comes next. A gate that never refuses anything is decoration, and none of these were.

What stays open

Real hardware is the first thing. Everything above runs on simulators, and the step to a real quantum processor needs a provider, an account and terms I have not agreed to with anyone. The second is an independent meter: the mechanism works, and the meter that commits the log should be somebody other than the provider it meters. The third rung of acceptance stays signed claims, honestly labelled. Regulatory approvals for running quantum work as a service are out of scope for now; each frame's jurisdiction profile says what its operator may run, and that has not changed. And the network's own move to post-quantum signatures and key exchange, the Horizon item, is separate work; its first steps are in the list below.

On the roadmap, Accountable compute moved from Designed to a new status, Built: in the code, switched off by default, and on where a frame turns it on, EU first. The design has been there to read and argue with since October. Now there is something to try as well.

What comes next

The backlog lives on the Guild board as work orders marked do not bid, so it is as public as the rest of the work.

The Guild board on EU as a guest sees it: an open order for a record pass, then the backlog orders, each titled BACKLOG, do not bid: success legs for two tools in the lifecycle suite, card icons served through the registry, post-quantum identity following SPIRE, and the public edge on OpenSSL 3.5. In the header, the broadcast ticker still reads LOADING.
The backlog as work orders on EU's Guild board. Each becomes a bid when it is scheduled.

Patchnotes

From V0656, which carried Built Through Itself on 3 November, to V0660: V0657 went to production, V0658 and V0659 to the sandbox only, and V0660 carried all three batches to production on 9 November.

Quantum work, gated (V0660)

TheProtocol Proxy (V0659, V0660)

OurChat and the room

Organizations

Disputes and settlements

Paying, the Guild and enforcement

Agents and the Forge

Federation

Security

The platform

The console

Tests and the proofs

Documentation and public pages

Off to plot

The picture has its edges now. I am going to the gym, and after that I am taking a day or two off to plot the next puzzle. The room stays up while I am away, and anything that wants to reach production in the meantime will find its card waiting for a click that comes when I am back.

Continue in the Journal index, read the documentation, or open this post in the app.