addrbookFor publishers
← The evidence ledger

Evidence row 3354466

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 2c60284d-392f-4d63-a254-94469e6afce3
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
312d33ee261f21f31a65ea18d98906bc53b6515ee758ae9daf8940e1339655d2
Leaf
0x743ba948d18305078db562528a06ec053f3519e8a5455be5c75e2a5bb7a0f9df

What was observed

{
  "count": 8,
  "tools": [
    {
      "description": "Narrow towards a purchase without inventing keywords. One call returns children[] and childrenDeep[] with estimated counts, brands[] each with an engineParam you can pass straight back to search_products.engineParam, the shop's own facets[], aspectTiles[], siblings[], related[] and a deals[] rail. GET /api/agent/browse/tree/<slug>, or GET /api/agent/browse/tree/<slug>/<nodeId> for any category under a department. No wallet and no signature. contentAt is when those deal prices were read: send it as a candidate's priceAt to compare_landed_cost, which is the shortlist this call is meant to fill. Counts are estimates and countScope says so. A shelf already read answers from cache; a cold one costs one call against the catalogue quota shared with shoppers, so read the shelf you want rather than walking the tree.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "nodeId": {
            "description": "A category id under that department, from children[].id or childrenDeep[].id. Omit for the department itself.",
            "type": "string"
          },
          "slug": {
            "description": "The `slug` field of a department from list_categories.",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_category"
    },
    {
      "description": "For a \"find something on offer\" task. GET /api/agent/browse/deals?tab=<tab>, where tab is markdowns, refurbished, top-rated, brands, or door:<slug> for one department. No wallet and no signature. Every item carries cachedAt, which is when that price was true: pass it as a candidate's priceAt to compare_landed_cost. A selection over rows this site has already cached, so it costs no catalogue call. An unknown tab is refused with 400 rather than guessed at. A sticker discount is not a cheaper order: rank with compare_landed_cost before you quote.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "tab": {
            "description": "markdowns, refurbished, top-rated, brands, or door:<slug> with a slug from list_categories.",
            "type": "string"
          }
        },
        "required": [
          "tab"
        ],
        "type": "object"
      },
      "name": "get_deals"
    },
    {
      "description": "Every department, the groups under it and the links under those, for picking a shelf in one read rather than walking down to it. GET /api/agent/browse/directory. No wallet and no signature. Built ONLY from rows already cached, so it costs no catalogue call at all and a picture or count nobody has fetched yet comes back null rather than being fetched for you. Prefer this over repeated get_category calls when you are still deciding where to look.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_directory"
    },
    {
      "description": "The current fee schedule and delivery rates, so a total can be explained before anyone pays it. GET /api/config/fees. No wallet and no signature.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_fees"
    },
    {
      "description": "Current USD prices of the coins shown on Escrova. GET /api/prices. No wallet and no signature. Checkout on this deployment takes USDC only.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_prices"
    },
    {
      "description": "Returns the current Terms of Service and Privacy Policy version and document hash. These are the exact values accept_terms will record; they are read server-side and never taken from your request. GET /api/agent/legal/terms. No wallet and no signature.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_terms"
    },
    {
      "description": "Start a shopping task here instead of guessing search words. Returns the sixteen departments, each with the slug get_category takes and a picture. A keyword search is one guess at what somebody meant; a department is the shop's own shelf, and get_category on one hands you the brands, the filters and a page of listings in a single call. GET /api/agent/browse/categories. No wallet and no signature. Served from cache; a department whose picture has gone cold costs one call against the catalogue quota this site shares with its shoppers.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "list_categories"
    },
    {
      "description": "Search products across the marketplaces Escrova can actually buy from today. Six sources are searchable: amazon, ebay, walmart, bestbuy, homedepot, wayfair, or \"all\". GET /api/products/search. No wallet and no signature. Send q, cat, or both; page and every selected filter are preserved together. A brands[].engineParam returned by get_category goes into engineParam here and is sent as the typed eBay aspect filter, while Google refinements use shoprs. The REST pagination and degraded-source metadata are returned unchanged. A search is one guess at what somebody meant and it spends a paid provider call; when you know roughly what department a thing is in, list_categories and get_category narrow further for less.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "cat": {
            "description": "Department slug, category id, or <id>-<slug> returned by get_category.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "ebayAspectFilter": {
            "maxLength": 4000,
            "minLength": 1,
            "type": "string"
          },
          "ebayCategoryId": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "ebayConditionIds": {
            "maxLength": 500,
            "minLength": 1,
            "type": "string"
          },
          "engineParam": {
            "description": "A brands[].engineParam from get_category; sent only as ebayAspectFilter.",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          },
          "freeShipping": {
            "type": "boolean"
          },
          "limit": {
            "maximum": 60,
            "minimum": 1,
            "type": "integer"
          },
          "maxPrice": {
            "minimum": 0,
            "type": "number"
          },
          "minPrice": {
            "minimum": 0,
            "type": "number"
          },
          "minRating": {
            "maximum": 5,
            "minimum": 0,
            "type": "number"
          },
          "page": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "q": {
            "description": "What to search for. Optional when cat is supplied.",
            "maxLength": 300,
            "type": "string"
          },
          "shoprs": {
            "description": "A Google filter option whose engineParamType is shoprs.",
            "maxLength": 4000,
            "minLength": 1,
            "type": "string"
          },
          "sort": {
            "enum": [
              "price_asc",
              "price_desc"
            ],
            "type": "string"
          },
          "source": {
            "enum": [
              "amazon",
              "ebay",
              "walmart",
              "bestbuy",
              "homedepot",
              "wayfair",
              "all"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "search_products"
    }
  ]
}

What the leaf hashes

{"body":"312d33ee261f21f31a65ea18d98906bc53b6515ee758ae9daf8940e1339655d2","id":3354466,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793848822049937,"prev":null,"subject":"2c60284d-392f-4d63-a254-94469e6afce3","subject_kind":"endpoint"}

Proof

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

  1. 0x743b8f5b38342af3a4778db2dbdb18a06be7afa894b6b50a80d2105af0bd9d50
  2. 0x208cd58b804bb4d78d0642b0b4b7d817aa846b68a5bd5807f6c856260caf63b0
  3. 0x04f48a714732baf90a266b36c47d4cce919e0abe24be3e2b90b48a5575946cbf
  4. 0xe3d7c32c54a58758c752f7879ef3d16d7bad41be3c572a083b0f11c4584182b0
  5. 0x4e3c57667aca55db15f08cce74a4f07db825a3b130ea63bcc53816ed3d78be3c
  6. 0x769204f69e21f9f11083251c18fea38cb964157ac1594c3ff41ad33a203ccb72
  7. 0xd16e65b41116949f6794053e86768ea63fff1f6fbfb4974609cdc506488de949
  8. 0xe436fdc3b557bc3159372619adccc52c47804a9ea0e199821e840e91177802f7
  9. 0xdd26a51b4df618ca4e0014d7b66ec73597f0b7ce98214e019d2c88c130e69a9a
  10. 0x8a740280ef1ce693beb7cf358c591fcff48cc630d809efb9d39e7af7e792e893
  11. 0x7e4cd7fcffe45b54cb2ca85ef3edcf02fbad60bd74942df42112aa30cf3f1166
  12. 0x7d961fd0f6a72244e8b15a26a354e745e57a89861761c1b8fe6b707ec5464fc2
  13. 0xcd10cdac83e7a4f14b285d956e9d7858d35953837d438fafb62fb1e7b319f218
  14. 0x7a97b9b4888ef386a7abe73f8d9c076a7ebfba8bf58a95a273cd4304e478a2a5
  15. 0xb5ea076f0a9490f58daaa0cbe915aa5dfdfe460bfc500eaea09b59c1d753d699
  16. 0x3b5d12e41df15017099876c1435af6ce1c7a30cfddd96040c3878ac62de1dbc3
  17. 0x7e5b4628b4269525ce0744fb873651b9d7be5748de44b7e6b858af09c7e30bd8
  18. 0xfb4e1f4d701ae273fb0cd57757f659e327608e5561a752b2099b436618493c84
  19. 0xf72fe7c4860b9addb17aac4a00b8afc2f8085836173f10f31697c3d192df119b
Day root
0x9f0215efb0252701dc86d5600ce95f276cccc716759bf112525ae863f698d128
Chained
0xc54ddff800630c6cd9656f99e7d6a61adce99bf1cea37121600598b0a9a720d2
Published
On Arc Testnet: 0x88f612ad94ca63af4e4e9faab9f34b665b41f03828afac1571ad013cc62bba94

How to check it · This row as JSON