An answer an agent cannot check is a risk. If a model reads "18,442 unique wallets" from an API, it has no way to tell whether that number is right, out of date, or invented. It has to trust the source.
That kind of trust does not scale to systems that run on their own. So we made provenance a first-class tool that uses the same bound identity and window as the data read.
What provenance means here
For a materialized result, you can ask where it came from. Testril reports the contributing blocks and hashes, or the dependency rows a period result used, along with a digest. The Function's description and row schema state what was computed.
Why computing on demand helps
Testril computes answers from indexed source data rather than serving every possible table in advance. Because materialization records its source evidence, the provenance tool can expand the path from contributing blocks or dependency rows to a result.
This has a useful side effect. Two agents that ask the same question get the same answer, and both can trace it back to the same blocks.
Verifiable by construction
Self-describing JSON tells an agent the shape of a result. A provenance request tells it where the result came from. Together they let an agent confirm an answer before acting on it. That is the point of giving agents data they can reason about rather than data they have to take on faith.