Receipts And Settlement
Signed receipts, payout batches, settlement roots, payout proofs, and public-safe commitment boundaries.
Receipts and settlement turn completed work into public-safe evidence without publishing private payloads.
Receipt Commitments
Receipts can commit to:
- Node ID.
- Model ID.
- Usage totals.
- Payout rate references.
- Receipt hash.
- Receipt status.
- Optional attestation hash for future verified-confidential jobs.
Receipts must not publish raw prompts, model outputs, customer identity, API keys, customer tokens, exact private routes, raw request logs, or raw TEE quotes.
Payout Batches
Payout batches aggregate node payout rows into a public-safe root. The batch can include counts, total amount, merkle root, transaction hash, block reference, status, and timestamps.
| Field | Public-safe? | Notes |
|---|---|---|
| batch_id | Yes | Opaque batch identifier |
| payout_count | Yes | Number of payout rows included |
| total_amount_wei | Yes | Aggregate amount only |
| merkle_root | Yes | Commitment root, not raw private metadata |
| transaction_hash | Yes | Public settlement transaction reference |
| customer_id | No | Keep customer identity out of public settlement payloads |
| prompt/output | No | Never include raw request or response content |
Current Settlement Pilot
The B3IQSettlement payout-proof reference emits canonical payout batch proof
logs on the settlement network. The control plane can finalize payout batches
from real settlement receipt evidence.
The public settlement surface publishes live counts — finalized payout batches and rows, and accepted receipts. Pending rows are expected between settlement batches.
Settlement Flow
Accept receipts
Completed work submits signed receipt evidence to the control plane.
Create payout rows
Settlement creates immutable usage and node payout evidence.
Batch payouts
Pending payout rows are batched into a public-safe root with aggregate totals.
Submit proof
The payout batch root is submitted to the settlement contract and emits a public proof log.
Finalize control-plane state
The control plane verifies configured contract/event evidence before marking rows settled.
Operator And Cron Boundary
Secured operator settlement can create, broadcast, submit, and finalize payout batches from a local machine that holds the settlement key in ignored local env or a secret manager. Worker cron can finalize already-submitted or submitting batches when auto-finalize is enabled, but it does not hold the private key, create batches, sign transactions, or broadcast payout roots.
Normal settlement should batch payout rows for efficiency. Singleton batches are reserved for proof runs, incident recovery, or end-of-day cleanup.
Roadmap
Payout proof deployment and real payout batch finalization exist.
Run the secured local settlement scheduler for batch creation, broadcast, submit, verify, finalize, and recovery paths while keeping Worker cron on no-key finalization only.
Add receipt roots, availability roots, reputation snapshots, and epoch summaries after formats stabilize.

