receipt-ledger: bill what the work spends — bytes out, a package's work per run and its storage by byte-time, every hop's energy, the output its hop delivered #556

Merged
dcharlot merged 1 commit from wai/ledger-physics into main 2026-10-31 12:26:27 -04:00

2026-10-31

Transaction Science
receipt-ledger: bill what the work spends; live-metering: a receipt of version 2 prices bytes out
All checks were successful
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m39s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 10m36s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 57s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 4m20s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (pull_request) Successful in 30s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 17m6s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m22s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 5m27s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Successful in 12m48s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 5m45s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 35m40s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 5m12s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 38m28s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m51s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 23m16s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 20m57s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 14s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 1m7s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m46s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 21m31s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 15m44s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m21s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 7m3s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 22s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m43s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m27s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 1m55s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 8m53s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 4m22s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h23m20s
A job's output receipt is of an object its served hop states it delivered (route-record
version 2's `outputs`, by content hash), once, or the source is refused
`output_not_delivered`; under tariff version 4 a record of version 1 holds its outputs to
none. Routing figures (cost, expected cost and time, failures) are never charges: a line bills
the billed attempt at the tariff's price.

The room-session receipt's version 2 states `bytes_out`, the bytes its hops sent the session's
sessions from their ledgers, prices them per 10^9 bytes in its tariff and counts them in each
grant's consumption and funds.

Tariff and invoice version 4 bill a room's bytes out, a package's work once per run that made
it (a routed job of `package.build`, per job and per work unit, its receipt the product each
run cites, a replayed run refused), a package's storage by byte-days for each invoice period
it is held through, read from the chain, and state every hop's energy, the hops not billed in
a scope of their own.

The ledger corpus adds jobs routed under the route record's version 2 and version 4's chain
with their controls; the metering corpus adds receipts of version 2; both second
implementations read the new versions and catch every new rule.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 10:34:57 -04:00