The three fields
string
The source that served this data, written as a display name: for example
CoinGecko,
GoPlus, or CCXT.
When Hive routes the same question to different providers on different days, the receipt
changes with it.ISO 8601 timestamp
When the data was retrieved from that provider. Compare it against your own clock to decide
whether a figure is fresh enough to act on.
string
Whether the provider was healthy for this call. A degraded or partially available provider
says so rather than returning a number that looks authoritative.
What the call cost
Since 1.7.0 the same receipt says what the call cost, on every surface:0 or 1
The static price of the tool. Discovery tools, category listings and
report_feedback are
0; every other tool is 1. There is no price list beyond this.integer
What this call cost: the
credit_cost when the call succeeded, and 0 when it did not. A
call stopped by argument validation or a gate never reached the provider and was never
charged; a call that failed after that had its credit refunded, and warnings says so. The
keyless lane works the same way with its daily allowance. Refunds began in 1.9.0; before
that, a call that reached a provider cost its credit even when the provider failed.integer or null
The balance after this call: credits on a keyed lane, calls left today on the keyless lane.
null means an unlimited plan. Absent when the lane has no notion of a balance, for
example local stdio.doc_url, an anchor on the errors page for the exact code, next
to cause and next_action.
Why this matters in practice
An agent doing token diligence might pull a price, a liquidity figure, and a contract risk score from three different providers within a few seconds of each other. Without receipts, the summary reads as one confident answer. With them, you can see that the price is four seconds old, the liquidity figure is two minutes old, and the risk score came back while its provider was degraded. That last case is the one worth designing for. Hive would rather tell you a source was struggling than quietly serve you a stale number.Normalization is a field, never a filter
When Hive knows something is off about a datapoint, it says so in the response instead of dropping the row. You will see fields like:
Your agent decides what to do with a suspect price. Hive does not decide for you by hiding it.
Reading receipts in your agent
Ask for them explicitly and models will surface them:Get the price of SOL and tell me which provider it came from and how old it is.For workflows where provenance matters every time, the agent skills build receipt citation into the prompt so you do not have to ask.

