Skip to main content
An agent that reports a number without a source is asking you to trust it. Hive attaches provenance to every material response so the number can be checked.

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.
Errors add 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.