{
  "reference_kind": "existing_product_editorial_copy_not_api_contract",
  "api_reference": "/agents/",
  "product": {
    "name": "Testril",
    "website": "https://testril.si/",
    "provider": {
      "name": "Ormi",
      "url": "https://ormilabs.com"
    }
  },
  "homepage": {
    "hero": {
      "modes": {
        "agents": {
          "label": "I'm an SI Agent",
          "heading": "A Universe of Blockchain Data",
          "sub": "For agents. They pay for what they need. Nothing else. No signups. No commitments."
        },
        "devs": {
          "label": "I'm a Developer",
          "heading": "Point your agents at Testril",
          "sub": "Wire it up once. Your agents ask for blockchain data in plain language and get answers back. No schemas to maintain, no pipelines to build."
        }
      },
      "chips": [
        "Live-discovered chains",
        "On-demand functions",
        "x402"
      ]
    },
    "how": {
      "kicker": "How it works",
      "heading": "From question to verified data",
      "steps": [
        {
          "num": "Step 1 / ask",
          "title": "Ask what you want",
          "body": "Create new data or retrieve existing data."
        },
        {
          "num": "Step 2 / get a quote",
          "title": "Get the price up front",
          "body": "Testril returns a detailed bill."
        },
        {
          "num": "Step 3 / pay",
          "title": "Pay for the work",
          "body": "Select a complete x402 option and repeat the same request with payment attached. There is no separate payment call."
        },
        {
          "num": "Step 4 / verify",
          "title": "Wonder where the data came from?",
          "body": "Ask for provenance. We'll tell you where the data came from and how we computed it."
        }
      ]
    },
    "problem": {
      "kicker": "The problem",
      "heading": "Agents don't need raw blockchain data",
      "stats_kicker": "With Testril",
      "problems": [
        {
          "title": "Agent pays too much",
          "body": "Raw blocks, logs, and traces create a huge context. Agents pay to ingest and then to reason over all that data."
        },
        {
          "title": "APIs lack data coverage",
          "body": "If your question fits an existing endpoint, you're fine. If it doesn't, you're stuck. APIs were built for humans."
        },
        {
          "title": "Data cannot be audited",
          "body": "Agents have to trust the data they work with. Without provenance they can't verify anything."
        }
      ],
      "stats": [
        {
          "value": "93–99%*",
          "body": "fewer inference tokens per answer than an agent crunching raw data."
        },
        {
          "value": "Live",
          "body": "chain and Function availability discovered from the connected service."
        },
        {
          "value": "Source-backed",
          "body": "values can be checked against the Function contract and contributing block evidence."
        }
      ],
      "footnote": "* Range across internal benchmark queries: a Testril endpoint versus an agent computing the same result over raw indexed tables."
    },
    "architecture": {
      "kicker": "The architecture",
      "heading": "Compute and store only what's needed",
      "versus": [
        {
          "tag": "Index everything",
          "title": "Traditional Model",
          "body": "Compute and store everything, just in case.",
          "bullets": [
            "Compute and storage used for data no ever asks for",
            "Schemas are fixed at indexing time, so new questions need a new pipelines",
            "Data interpretation falls to the agent, at inference prices",
            "Data isn't auditable"
          ],
          "highlight": false
        },
        {
          "tag": "Index on demand",
          "title": "Testril Model",
          "body": "Compute and store only the data agents ask for.",
          "bullets": [
            "No data is indexed or stored unless it's needed",
            "Data is organized by internal agents, as needed",
            "Agents receive answers, not piles of data to analyze",
            "Function definitions and source evidence stay attached to results"
          ],
          "highlight": true
        }
      ]
    },
    "useCases": {
      "kicker": "What becomes possible",
      "heading": "Ask for the onchain measures the live catalog supports",
      "cases": [
        {
          "tag": "Stablecoins",
          "title": "Flow analysis",
          "body": "Compare USDC and USDT volume across any block range and keep the numbers current."
        },
        {
          "tag": "Liquidity",
          "title": "DEX monitoring",
          "body": "Track pool changes, net liquidity, asset exposure, and protocol activity."
        },
        {
          "tag": "Wallets",
          "title": "User cohorts",
          "body": "Find wallets by behavior, value, or activity."
        },
        {
          "tag": "Risk",
          "title": "Exposure checks",
          "body": "See which wallets or protocols touched a given asset, pool, bridge, or contract."
        },
        {
          "tag": "Reporting",
          "title": "Metrics",
          "body": "Feed current, verifiable numbers into products, dashboards, and internal reports."
        },
        {
          "tag": "Research",
          "title": "The unexpected question",
          "body": "Ask the thing nobody built a dashboard for, and let Testril identify whether a catalog Function can answer it."
        }
      ]
    },
    "audience": {
      "kicker": "Who it's for",
      "heading": "Built for agents.",
      "audiences": [
        {
          "title": "SI agent teams",
          "body": "Give agents live and historical chain data without loading raw data into every request.",
          "tags": "agents · tools · workflows"
        },
        {
          "title": "dApps and protocols",
          "body": "Power custom metrics, alerts, liquidity views, and reporting from a single endpoint.",
          "tags": "apps · analytics · monitoring"
        },
        {
          "title": "Financial products",
          "body": "Use current, verifiable chain data for risk, research, and reporting.",
          "tags": "risk · research · reporting"
        }
      ]
    }
  },
  "faq": {
    "kicker": "FAQ",
    "heading": "Common questions",
    "questions": [
      {
        "q": "Is this an MCP server?",
        "a": "Testril is an on-demand blockchain indexer exposed to agents through MCP. Its public tools cover discovery, binding, materialization, reads, provenance, and lifecycle operations."
      },
      {
        "q": "Is this another blockchain indexer?",
        "a": "Yes, in a sense. Traditional indexers prepare datasets before anyone asks. Testril starts with the question and computes on demand, so nothing is computed or stored until someone asks for it."
      },
      {
        "q": "Why not just point an MCP at indexed data?",
        "a": "Three reasons:\n\n1. Using raw data is expensive!\n2. APIs are pre-organized, but maybe not the way you need.\n3. Index and API data isn't auditable.\n"
      },
      {
        "q": "How does pricing work?",
        "a": "You get a quote before anything runs. Pay to index and pay to query. If you index, you get paid any time someone queries your eligible coverage while its claim right earns. Payment networks and settlement options come from the quote returned by the connected service. No subscription required."
      },
      {
        "q": "Can I get real-time data?",
        "a": "You can prepay a future block window. Testril indexes the tail as the chain produces those blocks; check finality separately if your use case requires it."
      },
      {
        "q": "How do I know the data isn't hallucinated?",
        "a": "Each Function has a declared row contract, and the provenance tool expands the contributing block evidence behind a result."
      },
      {
        "q": "Which chains are supported?",
        "a": "Chain availability is deployment-specific. Ask the connected service for its configured chains before binding or paying."
      },
      {
        "q": "How do I get paid for indexing data?",
        "a": "An eligible materialization purchase receives a claim-right NFT on its payment network. Inspect the wallet's claim-right cards to see accounting, then claim an eligible NFT's rewards through MCP."
      }
    ]
  },
  "blog": [
    {
      "title": "x402 Basics",
      "excerpt": "x402 is an open payment standard with no signups, no API key and no credit cards. This post explains the standard in plain terms and then shows how Testril, our pay-per-call blockchain indexer for agents, uses it.",
      "url": "https://testril.si/blog/x402-basics/"
    },
    {
      "title": "I asked my human for a private key: how a bot earns a wallet to use an x402 service",
      "excerpt": "Specs built a test runner for Testril, asked for a funding wallet, and learned how to earn that trust with spending caps, signature checks, and reconciliation.",
      "url": "https://testril.si/blog/a-bot-earns-a-wallet/"
    },
    {
      "title": "Coinbase's x402 Dollar Store: Fixed Prices, and Nothing Under a Penny",
      "excerpt": "Coinbase's x402 Bazaar lists every service at one fixed price and relies on individual settlements to rank them, which leaves metered and sub-cent services out. Here's what it should change.",
      "url": "https://testril.si/blog/coinbase-x402-micropayments/"
    },
    {
      "title": "x402 as agent UX",
      "excerpt": "Why x402 agent payments need quote-first UX. Give agents prices before execution and batch micropayments so they can compare, refuse, route, and optimize.",
      "url": "https://testril.si/blog/x402-as-agent-ux/"
    },
    {
      "title": "Why SI Agents Waste 97% of Their Tokens on Raw Data",
      "excerpt": "We measured what 18 stats cost an agent computing them from raw rows instead of asking for the finished answer. 12,476 tokens versus 395, a 97% cut.",
      "url": "https://testril.si/blog/why-ai-agents-waste-tokens-on-raw-data/"
    },
    {
      "title": "Why SI agents don't need raw blockchain data",
      "excerpt": "Feeding an agent raw blocks, logs, and traces is slow and expensive. What an agent needs is the answer, and a way to check that it is right.",
      "url": "https://testril.si/blog/agents-dont-need-raw-data/"
    },
    {
      "title": "Provenance by default: making onchain answers verifiable",
      "excerpt": "Testril can expand a result's contributing block evidence and source digest. That is what lets an agent check an answer.",
      "url": "https://testril.si/blog/provenance-by-default/"
    },
    {
      "title": "See the price before anything runs",
      "excerpt": "Testril quotes every request before it runs, so an agent sees the cost first and nothing happens until it agrees to pay.",
      "url": "https://testril.si/blog/see-the-price-first/"
    },
    {
      "title": "What x402 means for machine payments",
      "excerpt": "When an agent pays for each query, the payment rail matters. A short explanation of x402 and per-request pricing.",
      "url": "https://testril.si/blog/x402-mpp-machine-payments/"
    }
  ]
}
