Deliveries and provenance
The flight recorder. Every fact sent to your agent is logged with its lead; an attestation can be expanded into a signed report of what the account knew when it acted; any market can be exported as a signed evidence pack.
Receipts prove what Langbot emitted and when. Deliveries prove what reached you and when, and a provenance report binds the two to an action your agent took. Together they answer the question a desk, a counterparty or a regulator asks after the fact: what did the agent know at the moment it traded, and can anyone check it without trusting Langbot?
Open it in the dashboard at Deliveries.
Deliveries (CONTRACTS §12)
The feed records a row every time it sends an event to an account on any channel: the WebSocket or SSE stream (socket, sse), an MCP session (mcp, recognised by the X-Langbot-Channel: mcp header the MCP server sends) and a signed webhook (webhook, joined to the delivery attempt that succeeded). The insert is batched off the hot path; stream latency is unchanged.
GET /v1/deliveries?limit=100&before=&event_id=&evt_id=Authorization: Bearer lb_…Each row carries the fact's own fields (evt_id, event_id, phrase, speaker, market_refs, hash, chain_seq), the channel, t_delivered, lead_ms (t_delivered − t_spoken), lag_vs_public_ms where the public stream was measured, the token and agent that received it, the webhook result when there was one, and the id of your attestation against it when you made one. next_before pages backwards.
GET /v1/deliveries/summary returns the last 24 hours: count, median and p90 lead, and the same per channel.
Agent identity (CONTRACTS §15)
A token may name the agent it belongs to:
POST /v1/tokens{"name": "vps", "agent": {"name": "mention-sniper", "version": "1.4.0"}}The stream's hello, every delivery row and every attestation then carry that agent, so a report says which agent received a fact and which one acted. The signed attestation message (§11.6) is unchanged; agent sits beside it.
Provenance reports (CONTRACTS §13)
An attestation says "I acted on this fact". A provenance report is the feed's signed statement of everything it had delivered to that account for the same call up to the moment of the action.
GET /v1/provenance/{attestation_id}Authorization: Bearer lb_…{ "v": 1, "report": "provenance", "id": "att_…", "attestation": { "evt_id", "event_hash", "action_hash", "t_acted", "agent", "signature", … }, "fact": { "event": { … the fact, with hash, prev_hash, chain_seq … }, "chain": { "source_id", "chain_seq", "prev_hash" }, "hash_matches_attestation": true, "rights": "restricted" }, "known_before": [ … every delivery to this account for this event with t_delivered <= t_acted, oldest first … ], "known_before_count": 2, "checkpoint": { … the signed checkpoint covering the fact … }, "generated_at": 1761645305000, "key_id": "…", "signature": "<Ed25519 over canonical(body minus signature)>"}?format=jsonl flattens it like a replay bundle. Verify one anywhere with POST /v1/receipts/verify {"reports": [report]}: the feed re-checks the signature and every carried fact's hash. The SDKs verify offline against the published key.
The report is evidence, not a verdict. It never says whether the action was a good one.
Evidence packs (CONTRACTS §14)
For any market Langbot listens to, the feed assembles everything it heard that bears on that market's phrases, with receipts, in one signed document:
GET /v1/markets/{ticker}/evidence # public; ?format=jsonlIt holds the market (ticker, venue, question, rules text, phrases), the call and its sources with their rights, every phrase_detected fact for those phrases with its chain position, transcript excerpts around each fact only where the source's rights allow text to be redistributed (otherwise transcript_excerpts: null with a reason), the checkpoints that cover the facts, and a signature over the whole body. Your plan's delay applies to the facts, like every public surface.
No field in an evidence pack says yes, no or resolved. Langbot is never a named settlement source; a pack is what a resolver can check.
Machine-readable pricing
Agents can read what the service costs before they use it:
GET /.well-known/langbot-pricing.jsonPlans are flat monthly fees with no per-call or per-event charge, so every MCP tool advertises langbot/price_usd: 0 and the plan it needs in its _meta, and the MCP server exposes a get_pricing tool and a langbot://pricing resource that return this document.