addrbookFor publishers
← The evidence ledger

Evidence row 578120

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 52b42c9d-f3c1-4df1-b919-48156dcd04a2
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
5cdca3e6121c3cf9eaa9f22b5091798bc9d9206aa640bfd5129018f9285b99a7
Leaf
0xfd0c2a67b20fc90d6b3fe88cfa98b09a0961fd4076607a6752901de4f9c2504c

What was observed

{
  "count": 6,
  "tools": [
    {
      "description": "Book a specific photographer for a specific package, date/time, and address on the user's behalf — no login required. This only places a 15-minute hold; it does NOT charge any money and does NOT require or accept any payment information. Immediately follow this with get_payment_link and give that URL to the human — they open it themselves to verify their phone number and pay. start_time must be an ISO 8601 timestamp at least 6 hours in the future. Pass a stable idempotency_key if you might retry this call, so a retry can't create a second reservation.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "address_detail": {
            "description": "Human-readable address text for the shoot location.",
            "type": "string"
          },
          "address_latitude": {
            "type": "number"
          },
          "address_longitude": {
            "type": "number"
          },
          "city_id": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "guest_display_name": {
            "description": "The customer's name, if known.",
            "type": "string"
          },
          "idempotency_key": {
            "description": "A key you generate to make retries safe. Reuse it only when retrying the exact same request.",
            "type": "string"
          },
          "package_id": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "photographer_uid": {
            "type": "string"
          },
          "shoot_detail": {
            "description": "Free-text notes about the shoot for the photographer.",
            "type": "string"
          },
          "shoot_type_id": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "start_time": {
            "description": "ISO 8601 timestamp, at least 6 hours from now.",
            "type": "string"
          }
        },
        "required": [
          "shoot_type_id",
          "package_id",
          "city_id",
          "photographer_uid",
          "start_time",
          "address_latitude",
          "address_longitude",
          "address_detail"
        ],
        "type": "object"
      },
      "name": "create_reservation"
    },
    {
      "description": "Get a URL for the human to open in their own browser to finish this reservation: verify their phone number by SMS code and pay. This is the last step this server ever takes — never ask the user for a card number, OTP code, or password, and never try to open, submit, or complete this URL yourself. Just hand the URL to the user.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "The slug returned by create_reservation.",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_payment_link"
    },
    {
      "description": "List the real, currently bookable packages (with prices, in Toman) a specific photographer offers for a given shoot_type_id. Rejects the shoot_type_id if that photographer doesn't actually offer it. Use the returned package id with create_reservation.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "photographer_uid": {
            "description": "A photographer uid from search_photographers.",
            "type": "string"
          },
          "shoot_type_id": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "photographer_uid",
          "shoot_type_id"
        ],
        "type": "object"
      },
      "name": "get_photographer_packages"
    },
    {
      "description": "Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', 'confirmed', and 'rejected'. 'paid_awaiting_photographer_confirmation' means the customer paid but the photographer has not yet accepted the booking and could still decline or ask to reschedule — do not tell the user their booking is final until status is exactly 'confirmed'.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "The slug returned by create_reservation.",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_reservation_status"
    },
    {
      "description": "Find real, bookable photographers for a given shoot_type_id (from search_shoot_types), optionally narrowed to a city_id. Returns each photographer's uid (needed for every later call), display name, rating, review count, and city.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "city_id": {
            "description": "Optional Kadro city id to narrow the search.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "shoot_type_id": {
            "description": "A shoot_type_id from search_shoot_types.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "shoot_type_id"
        ],
        "type": "object"
      },
      "name": "search_photographers"
    },
    {
      "description": "List the photography/videography service types Kadro offers (e.g. wedding, industrial, portrait), each with a numeric shoot_type_id. Call this first if you don't already know the id for the kind of shoot the user wants.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "search_shoot_types"
    }
  ]
}

What the leaf hashes

{"body":"5cdca3e6121c3cf9eaa9f22b5091798bc9d9206aa640bfd5129018f9285b99a7","id":578120,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793142868080307,"prev":null,"subject":"52b42c9d-f3c1-4df1-b919-48156dcd04a2","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. 0xfd0c43fd9b4600e399b1ca73416041f7ad43ca2b6eeff3fefdca5cc31625ee48
  2. 0x215a81630343159ae334cbb471f622346d5bddc21456868021bd7aae9380a80f
  3. 0x569433d7e50cdf749a7f8eb190ee5f4639341608495529aad16edd7049cf8a74
  4. 0x37879f874091e817ecb40bf9da2a137fe8b864624bfa8aad5935d6cabdd1ed7a
  5. 0x5c2d043722a8921d86e752836a54d76f5c60594dcd4c07b1045ac456d39e6578
  6. 0xd119933c6fb05210e3e408c1cdb3a04d6ace94edc4535f41ee251a29193e1b5b
  7. 0x41404d26fad1b89f19b8c04bab4ec7c610e2619c2423db4baae88ee4acd1e087
  8. 0x0fccb6968bc6a47cf77f237d9fafa5d4b109c4a544d12c94d6f440107e6fec08
  9. 0x11d918f78d0af62c93797d35a3e7688d1baf3dbb165f6a0761dd2d76c564ffba
  10. 0x5943b7c2a87ba36d413415050817f9a38998089d1ceec112a43fc5f1f8e900f1
  11. 0x913c1ab81bd3a3abbf855573e8ced45a41df599bd9b6062b6a769ca205198aa7
  12. 0x405c03a710a7150f5182f236dbd76258bf856f8cdf3ac954821ac082524f65da
  13. 0x56e872147e60f01cdcee33340b018a7ad7be91ec5b5daef0d2c629c3ca13cbd8
  14. 0xb5b652bba4a5afca56c21031d89b1c06361563aaf54ccc8541c296ceeb2b66fa
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON