addrbookFor publishers
← The evidence ledger

Evidence row 578270

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 81d222f8-3114-42bc-9f58-444e682850bf
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
3fa169e46dd15159d1114470e13087e6ac5b1a567238e053a0b79e209764996a
Leaf
0x82285761d9bfcf764a52d01a1e94870bb7ffcc59774028ba80075e311e4fbdca

What was observed

{
  "count": 9,
  "tools": [
    {
      "description": "Read-only. Returns your current APIHub credit balance (in microdollars and USD), total lifetime spending (microdollars and USD), and total completed request count. Requires a valid API key. Use before apihub_call or apihub_call_external to confirm sufficient funds for a paid request, or periodically to audit usage. Does not modify state, send payments, or call upstream APIs; for top-ups use apihub_topup.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "apihub_balance"
    },
    {
      "description": "Sends payment. Calls a paid endpoint on an onboarded APIHub service. Debits the endpoint's price from your credit balance and forwards the request to the upstream provider. Returns an object with the upstream response body, HTTP status, and credits_charged_microdollars. Requires a valid API key and sufficient credit balance; if balance is insufficient the call returns a 402 with payment requirements (use apihub_topup to add credits, apihub_balance to check). Use this for services already onboarded to APIHub (find slugs via apihub_search or apihub_list_services); use apihub_call_external for arbitrary x402 URLs not onboarded here, or apihub_read_content for content gateways.",
      "inputSchema": {
        "properties": {
          "body": {
            "description": "Optional. Request body as a JSON string for POST/PUT. Ignored for GET/DELETE. The proxy forwards this verbatim with Content-Type: application/json.",
            "type": "string"
          },
          "endpoint_path": {
            "description": "Required. The endpoint path including any leading slash, e.g. '/latest/USD' or '/v1/forecast'. Get valid paths from apihub_get_service.",
            "type": "string"
          },
          "method": {
            "description": "Optional HTTP method, default GET. Must match the method declared on the endpoint or the request will fail.",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "DELETE"
            ],
            "type": "string"
          },
          "service_slug": {
            "description": "Required. The service slug as returned by apihub_search or apihub_list_services, e.g. 'exchange-rates' or 'weather'.",
            "type": "string"
          }
        },
        "required": [
          "service_slug",
          "endpoint_path"
        ],
        "type": "object"
      },
      "name": "apihub_call"
    },
    {
      "description": "Call an external x402-protected URL (any provider in the marketplace or any x402 API). APIHub pays the provider on your behalf using the platform wallet and debits your credit balance for the exact amount. No wallet or gas required.",
      "inputSchema": {
        "properties": {
          "body": {
            "description": "Request body (object or string). Omit for GET."
          },
          "headers": {
            "description": "Additional request headers. Do not set Authorization or X-PAYMENT - handled automatically.",
            "type": "object"
          },
          "method": {
            "description": "HTTP method (default POST)",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "DELETE"
            ],
            "type": "string"
          },
          "url": {
            "description": "The full URL to call (e.g. https://hub.atxp.ai/...)",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "apihub_call_external"
    },
    {
      "description": "Get full details for a specific API service including all endpoints, schemas, and pricing.",
      "inputSchema": {
        "properties": {
          "service_slug": {
            "description": "The service slug (e.g., 'exchange-rates')",
            "type": "string"
          }
        },
        "required": [
          "service_slug"
        ],
        "type": "object"
      },
      "name": "apihub_get_service"
    },
    {
      "description": "Read-only. Lists onboarded APIHub services alphabetically, returning each service's slug, name, description, category, provider, endpoint count, and lowest per-endpoint price in microdollars. No authentication required. Use this to browse the full onboarded catalog when you don't have a specific capability in mind; prefer apihub_search when filtering by query, category, or price. Does not include external x402 APIs (use apihub_search_external for those) and does not return endpoint-level details (use apihub_get_service for that).",
      "inputSchema": {
        "properties": {
          "limit": {
            "description": "Optional max number of services to return. Default 20, minimum 1, hard cap 100. Values above 100 are clamped.",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "apihub_list_services"
    },
    {
      "description": "Read web content through a paid content gateway. Returns clean, structured text extracted from the URL. Use this for content services (service_type = 'content').",
      "inputSchema": {
        "properties": {
          "service_slug": {
            "description": "The content service slug",
            "type": "string"
          },
          "url": {
            "description": "The full URL to read (must match a verified domain on the service)",
            "type": "string"
          }
        },
        "required": [
          "service_slug",
          "url"
        ],
        "type": "object"
      },
      "name": "apihub_read_content"
    },
    {
      "description": "Read-only. Searches onboarded APIHub services by free-text query, with optional category, price, and type filters. Returns up to 10 matches ranked by uptime and endpoint count, each with slug, description, endpoints array, min price in microdollars, provider name, and quality score. No authentication required. Use this when you need to find an API by capability; use apihub_list_services to browse without a query, apihub_search_external to include the external x402 catalog, or apihub_get_service when you already know a slug. Does not call any upstream API or debit credits.",
      "inputSchema": {
        "properties": {
          "category": {
            "description": "Optional exact-match filter. Valid values: ai, data, search, finance, media, infra, communication, content, travel.",
            "type": "string"
          },
          "max_price_microdollars": {
            "description": "Optional upper bound on price per request in microdollars (1 USD = 1,000,000 microdollars, so 10000 = $0.01). Services whose cheapest endpoint exceeds this are excluded.",
            "type": "number"
          },
          "query": {
            "description": "Required free-text query matched against service name and description (case-insensitive substring match). Use 1-3 keywords describing the capability you want, e.g. 'weather' or 'stock price'.",
            "type": "string"
          },
          "type": {
            "description": "Optional filter. 'api' = standard REST APIs, 'content' = content gateways that proxy a fixed upstream URL.",
            "enum": [
              "api",
              "content"
            ],
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "apihub_search"
    },
    {
      "description": "Search external x402-protected APIs (not operated by APIHub, but callable via credits). Returns listings with endpoint counts, prices, and tx_count_7d (USDC payments received on Base in the last 7 days), most used first.",
      "inputSchema": {
        "properties": {
          "category": {
            "description": "Filter by category (ai, search, finance, media, other)",
            "type": "string"
          },
          "limit": {
            "description": "Max results (default 10, max 50)",
            "type": "number"
          },
          "query": {
            "description": "Search text matched against name/description",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "apihub_search_external"
    },
    {
      "description": "Purchase APIHub credits via x402 (USDC on Base). Returns payment instructions including a web URL for browser-based payment, a CLI command, and raw x402 requirements for agents with wallet support. Credits are added to your account instantly once payment confirms on-chain.",
      "inputSchema": {
        "properties": {
          "amount_dollars": {
            "description": "Amount to top up in USD. Minimum $5.00, maximum $10,000 per call. Example: 10 for $10.",
            "type": "number"
          }
        },
        "required": [
          "amount_dollars"
        ],
        "type": "object"
      },
      "name": "apihub_topup"
    }
  ]
}

What the leaf hashes

{"body":"3fa169e46dd15159d1114470e13087e6ac5b1a567238e053a0b79e209764996a","id":578270,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793142926861426,"prev":null,"subject":"81d222f8-3114-42bc-9f58-444e682850bf","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0x82288b4bd05dfe122db4921b6e506f678e4807487aff77e7922fa236ef8d9707
  2. 0x9391f0d6608bd221a89dee7656c11d5fe4d59bd6e4f063076acb4d0afb675356
  3. 0x830111a9f741b9d2f9611f1b9c0c6ce67f4a21f0e425f5477bda52306385734e
  4. 0x49e3dea721211739f0cae4a28d3e181e93ab349817b9e371aeb2715238269a4d
  5. 0xa4184e22596a91a572c6c1a2a4261d729e86cd449e11b0c97d2dd7556970d259
  6. 0x15d229f233cca98d778c2fe0bb5eb31e1a0abe650cc85fc6f07c6feed9d45bb7
  7. 0x0518eec77a413f763941163c5d34377ada6cfb388459c68969bec7028032b756
  8. 0x3820eaf91524304443952752ccaeba12f787ae46eda374da48e21feba847a6a7
  9. 0x87955502b06eabbe569bfe0dd97c1b308c4a25ac3ddeb7e54e6d43a6a9b16bb9
  10. 0xa353e91f2ffc2fba2189ca04fea8b40a85257331c62b528369e8ba2322997237
  11. 0x164039927a75bda6275a106556896901626c20428ab1c29de73c4cd508bb0969
  12. 0x4cf7b6120bfa84e107b8f1b7be613b553fa250042dc0db95890566416a94d682
  13. 0xe38e66e8bf48306ee42504c4df50c2052cc9230af02e2ae6ff66da20232bf797
  14. 0xfa0c8e8f1a1710ff197533b0a28208f2e168afe71abb7bb3416e09d1ac371d60
  15. 0x3c500ec3d3edf0c74b87a6ca8fcd77656bfbe03db3d478bd0c184d0c88839c6b
  16. 0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d
  17. 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON