receipt-ledger: tariff version 6 prices an endpoint and a third party's usage, and bills an upscale and a tone mapping by what re-derives them #579

Closed
dcharlot wants to merge 1 commit from wai/tariff-v6 into main

2026-11-02

Transaction Science
receipt-ledger: tariff version 6 prices an endpoint and a third party's usage, and bills an upscale and a tone mapping by what re-derives them
All checks were successful
WAI examples / WAI examples · portable · linux (pull_request) Successful in 10m32s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 3m34s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 3m47s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 17m29s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 1m2s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 4m24s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 6m22s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 15m14s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 20m44s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 5m59s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m45s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 12m3s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 12m4s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 21m31s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 18m42s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 7m37s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 50s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 19m25s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 1m54s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 47s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m23s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 13m59s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 12m38s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 6m7s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m44s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 32s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m37s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m56s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m3s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h7m2s
Two providers of one capability have different list prices, and one price
per capability overprices one or underprices the other. A job price now names
an endpoint, or none for every endpoint. A price of any endpoint beside a
price of one is refused: it would bill one job at both.

A third party's hop is billed by what its record states the provider bills
(route-record §6.2), in a new unit, `usage`, at the price of its endpoint and
its unit. Only the billed hop's record reaches a line: what a provider billed
for a failed hop is what the router's operator owes, and no line reads it. A
record's `charge` reaches no line either, since a line adds jobs and a
provider's figure is in its own terms; the line cites the record, which
states it signed. The proposal to put it on the line is dropped.

An upscale and a tone mapping get their own output forms. Each record is
proved by its own extension's verifier from what it read, and what the hop
delivered is held to what that proves, so the subpixels billed are what the
derivation gives. Their records are evidence, as an output receipt is, and a
new hop's run may cite them again.

These three moves share one version, so a buyer signs one new tariff and not
two. The tariff of versions 1 to 5 reads and bills as before.

The corpus's `invoice_version` control used version 6 as unknown, and now
uses 7. The fixtures are small enough that the corpus's debug test takes as
long as it did without them, about 11.5 minutes on the Framework, and the
README's commands use a release build, which regenerates it in about a minute.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 11:04:56 -05:00