Most blockchain data tooling was built for people. You define a schema, deploy a subgraph, run a pipeline, and query the tables it produces. That works when a person is in the loop to design the pipeline and read the result.
Agents work differently. An agent asks a question, gets an answer, and acts on it. When you hand an agent raw blocks, logs, and traces, you push the pipeline's work into the agent itself. It has to load a large amount of data into context and reason across all of it to reach a single number.
The cost shows up twice
Raw data costs an agent twice. It pays once to read the data into context, and again to reason over that context to produce a result. A question like "how did USDC transfer volume change over the past year" can pull millions of events into the model to return one figure. The answer is slow and expensive, and you cannot reliably reproduce it. Ask the same question twice and you can get two different numbers.
Ask for the answer instead
Testril takes a different approach. You ask a question in plain language over MCP, directly or through its CLI relay, and get a catalog Function bound to the scope you meant. If its requested window is already materialized, Testril can serve the stored rows; otherwise it can quote the missing work. The agent never holds the raw source data in context.
This keeps the token cost per answer low. Each bound Function covers one chain, so a cross-chain total is assembled from explicit per-chain results. The agent can request provenance for the contributing block evidence before it acts.
Raw data is the input to a pipeline. An agent wants the output of one.