Receipts
Signed inference receipts as the network’s proof primitive.Every response emitted by a Malibu provider is bound to a signed receipt tuple — an Ed25519 signature over the canonical
(prompt, output, model, provider, timestamp) binding. The receipt is what turns the network from “trust the coordinator” into “verify the provider’s signature.”
For a buyer-facing guide including capture and verification, see Guides → Signed receipts.
The v0.3 tuple
Nine fields, canonicalized in a fixed order:
Signed as
Ed25519(canonicalize(tuple)). Streaming responses emit a settlement-capable receipt too.
Trust source
The verifier resolvesprovider_pubkey through /v1/receipt-keys/{provider_id} on the coordinator. The endpoint returns the currently-active key plus any keys within the operator-defined grace window for recent rotations. Verifications against an expired key outside the grace window return invalid.
For offline verification, pass --pubkey explicitly and skip the resolver. --pubkey is the trust root — an explicit key wins over live resolution.
Version compatibility
Locked 1.0.x verifiers report v0.3 receipts as
invalid. Operators rolling out v0.3-emitting providers must release v1.1.x to buyers before that provider rollout reaches them.
Where receipts get used
- Buyer audit trails. Batch verification of a day’s receipts for dispute resolution.
- Verified model settlement. Coordinator receipt verdicts drive gateway buyer debit/refund. Missing or invalid receipts settle with zero provider credits. See Operations → Verified model settlement.
- Reputation. Aggregate receipt validity by provider surfaces to the public Reputation view.
What a valid receipt proves
Avalid result proves:
- A holder of the provider signing key signed the canonical tuple.
- The verifier resolved that key through the configured trust source.
model_hash matching the catalog), timestamp honesty, response uniqueness, privacy, replay resistance, or absolute trust in the coordinator. Full text: Security & trust model.