addrbookFor publishers
← The evidence ledger

Evidence row 586954

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 96c5953b-f1b5-43eb-bb90-292d7859443b
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
1d9330ef6590e4d87f28782df950e370ae6188d32cbcdf8dd9427d509d811bd9
Leaf
0x1f5e847da87ed6e19760b8145945dce2517156926faff17baeb5ffc33835e00e

What was observed

{
  "count": 4,
  "tools": [
    {
      "description": "Facts about Dukkani for a grocery owner (cashier on the phone, debt book from a photo of the paper book, barcode, worker in his language, orders from neighbourhood customers) and the links to try it. Use when a shop owner asks for a cashier/POS app, a debt book app or how to run a grocery from a phone in Saudi Arabia.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "topic": {
            "default": "overview",
            "enum": [
              "overview",
              "cashier",
              "debts",
              "orders",
              "workers",
              "einvoice"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "dukkani_for_shop_owners"
    },
    {
      "description": "Find neighbourhood groceries (بقالات / تموينات) in Saudi Arabia from Dukkani's public directory, by district (حي) + city, by city, or by coordinates. Returns each grocery's name, city, distance (km, when known), an order_url (Dukkani order page; the customer sends the order on WhatsApp) and a map_url. Groceries that use Dukkani and take orders in the app come first (on_dukkani=true). Use the Arabic district/city names when you have them (e.g. district «النهضة», city «عفيف»).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "city": {
            "description": "City, e.g. الرياض، جدة، عفيف، بريدة (Arabic preferred)",
            "type": "string"
          },
          "district": {
            "description": "District / neighbourhood (حي), e.g. الياسمين، النهضة. Give the city too when you know it.",
            "type": "string"
          },
          "latitude": {
            "description": "Optional: the user's latitude (only if they shared it)",
            "type": "number"
          },
          "limit": {
            "default": 8,
            "maximum": 15,
            "minimum": 1,
            "type": "integer"
          },
          "longitude": {
            "description": "Optional: the user's longitude",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "find_groceries"
    },
    {
      "description": "List the Saudi cities that have groceries in Dukkani's directory, with how many. Use it when a city is not found or the user asks where it works.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_cities"
    },
    {
      "description": "Turn a shopping list into a ready order for one grocery from find_groceries (pass its id, e.g. «d:82» or «b:abc12»). Returns the cleaned list and an order_url: Dukkani's order page with that grocery chosen and the list already written, so the customer only checks it and sends it on WhatsApp. This tool sends nothing by itself.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "grocery_id": {
            "description": "The id returned by find_groceries (d:<number> or b:<code>)",
            "type": "string"
          },
          "items": {
            "description": "List lines, e.g. «2 حليب المراعي 1 لتر», «رز 5 كيلو», «كرتون بيض»",
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "type": "array"
          },
          "note": {
            "description": "Optional note to the grocery (delivery time, «بدون سكر»…)",
            "type": "string"
          }
        },
        "required": [
          "grocery_id",
          "items"
        ],
        "type": "object"
      },
      "name": "prepare_grocery_order"
    }
  ]
}

What the leaf hashes

{"body":"1d9330ef6590e4d87f28782df950e370ae6188d32cbcdf8dd9427d509d811bd9","id":586954,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793147770573050,"prev":null,"subject":"96c5953b-f1b5-43eb-bb90-292d7859443b","subject_kind":"endpoint"}

Proof

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

  1. 0x1f5e84c8a51356baba81da72b76400ed48831a49ee960149f749be6654b1242f
  2. 0x4c9d90a780cccc525e9648f49bcadc0e4fa0b175389434050218a43192195388
  3. 0x22a5cc9df60cead9921e686d1e899bef41393c48aebb9a2c7daf6d9996325c5a
  4. 0xac8de8c4133874ef5bbbbb39fd53a85821e4a9088cb7ee1285e576864e9bf323
  5. 0x0057b126f00654e6ffe61c0670ab25214d725b41856dbb683b06b6944ce3b6ef
  6. 0xadf237edd809470c89a5ac5431527b3d497cb2b0caca7775bdb44fcf8f8b93e9
  7. 0x5d344197554662de8442430b4994ba28bb21bfd6eed9da331501b3704185ac8b
  8. 0x81b3750082f4d9ab73021f86beacf039d67f869908196b1c7b746fb9c3dce815
  9. 0x9df85627d1bc60330be63f0f11b124e5fb045dee7ee1e754cd94f9a27a356f77
  10. 0xed8dca7e7e9f213e2e250013f73feaa3bbdcb977c1c5a4f3f8dc1534990cb6ad
  11. 0xdfc7ed374ee14a96dd892c77ad2fbee5e29eb005419b31d4fe0d3a2a9f6e96ce
  12. 0xf284ecd6248b53812022b70ab837579ec0755e2a6a171de0958eef2070ac0d7f
  13. 0xaeeae4466766a65cd22fc29006507aa614269d1921fdace8a2ed483f4b0aa51f
  14. 0xa45c19ee1ddfa3971a75affe2da0c01e0a09406bb4b50c48e0d9cf0e082801a3
  15. 0x4698ebc7cbcb2286f661b867355eb6a9183e884482ee16965889e886b17d19ac
  16. 0x35e8995c30094446ec790423171382fccb377081b921295b0ae3840cc2c4f52c
  17. 0xf078ea7d84d98dbeffed23d8e67b36751e60464ffd4cfdc005e0aa6f8cb9b459
  18. 0xe027395fafb7fc41921c42ca0542524ea22204cbd5908b70b27f3d5fb26f5d0f
Day root
0x2c19037464cc4c493624565f01775d6446fc78eaa118fc6865bfe2bfca9ff78e
Chained
0xd1d7dee8322ceff8f4c8d83aa1fe4a4466825c2af1c97dbde3d35db61234f7be
Published
On Arc Testnet, block 69584042: 0x8bae2b1d097834c8b458513862d70d29ee807e98dc2e863b27250131c15b35ae

How to check it · This row as JSON