addrbookFor publishers
← The evidence ledger

Evidence row 4156113

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint bfe87816-884c-472c-9567-a221708b4e97
Recorded
Previous row
#3470079
Body SHA-256
16192ba8ce738de474f85c071b1a67239a1e58bcd3ce3ea3ae3c77f4880a84b3
Leaf
0x19502ebb13160f26e20dc03b62d5164a86c6538411dca4452d2da5d24c57c5a2

What was observed

{
  "count": 8,
  "tools": [
    {
      "description": "Use this when someone asks what a photo book (Dutch: fotoboek) costs, how foto foto's price compares with other services, how long delivery takes or the last day to order for Christmas, or which services sell a layflat book, a linen cover or fine-art paper. Prices one book (binding, cover, paper, pages) at foto foto and at albelli, CEWE, Fotofabriek, Pixum, smartphoto, Kruidvat, Profotonet and Saal Digital, cheapest first, with each service's published delivery time and Christmas order-by date and the page each price was read from. List prices in euros with VAT, without shipping or discounts. For a book that was already made, get_book gives its price with shipping. Free, changes nothing.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "binding": {
            "description": "perfect: the standard binding, where the pages curve towards the spine. layflat: opens completely flat, up to 120 pages.",
            "enum": [
              "perfect",
              "layflat"
            ],
            "type": "string"
          },
          "cover": {
            "description": "smooth: the standard hardcover. linen: a linen hardcover.",
            "enum": [
              "smooth",
              "linen"
            ],
            "type": "string"
          },
          "pages": {
            "description": "Printed pages, an even number from 24 to 300, layflat up to 120. An odd count is rounded up and a count outside the range is moved inside it. Default 74.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "paper": {
            "description": "glossy (the standard), matte or fine-art.",
            "enum": [
              "glossy",
              "matte",
              "fine-art"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "compare_photo_book_prices"
    },
    {
      "description": "Use this when the person wants a photo book (Dutch: fotoboek) made from photos they attached, direct image links, or a public iCloud Shared Album link. Designs a draft book from the photos in the supplied order; nothing is ordered or charged. Photos the person attached in this chat go in attachments, which ChatGPT fills in; never pass local file paths. Otherwise provide direct CDN image URLs or uploadIds from POST /api/connector/photos in photos, or a public iCloud Shared Album link as sharedAlbumUrl (https://www.icloud.com/sharedalbum/#TOKEN). A book needs at least 24 pages to be printed, so a handful of photos gives a book that can be viewed but not yet ordered. Returns a preview and a private link to save the book by email. No account setup. Allow up to 180 seconds for imports.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "attachments": {
            "description": "Photos the person attached in this chat. ChatGPT supplies the file objects; never invent them.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "download_url": {
                  "type": "string"
                },
                "file_id": {
                  "type": "string"
                },
                "file_name": {
                  "type": "string"
                },
                "mime_type": {
                  "type": "string"
                }
              },
              "required": [
                "download_url",
                "file_id"
              ],
              "type": "object"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          },
          "idempotencyKey": {
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "language": {
            "description": "Two-letter code of the language the person writes in, such as nl or en.",
            "maxLength": 35,
            "type": "string"
          },
          "photos": {
            "description": "Public https image URLs on a known CDN, or uploadIds. Not for chat attachments or local paths.",
            "items": {
              "properties": {
                "filename": {
                  "default": "photo.jpg",
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "uploadId": {
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                  "type": "string"
                },
                "url": {
                  "format": "uri",
                  "maxLength": 4096,
                  "type": "string"
                }
              },
              "type": "object"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          },
          "productId": {
            "maxLength": 100,
            "type": "string"
          },
          "sharedAlbumUrl": {
            "description": "Public iCloud Shared Album link, used instead of photos.",
            "format": "uri",
            "maxLength": 2048,
            "type": "string"
          },
          "title": {
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "idempotencyKey",
          "title"
        ],
        "type": "object"
      },
      "name": "create_book"
    },
    {
      "description": "Prepare an optional Stripe checkout link after email claim, using the bookToken. No charge occurs until the user confirms payment at Stripe. Collect the destination country first. Reuse idempotencyKey on retry.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "bookId": {
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          },
          "bookToken": {
            "pattern": "^[a-f0-9]{64}$",
            "type": "string"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "idempotencyKey": {
            "maxLength": 100,
            "minLength": 8,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          },
          "quantity": {
            "default": 1,
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "bookId",
          "bookToken",
          "country",
          "idempotencyKey"
        ],
        "type": "object"
      },
      "name": "create_checkout"
    },
    {
      "description": "Prepare a fixed payment quote for a printed book, including shipping, for MPP and, when listed, x402 (USDC on Base). Requires a complete delivery address. No charge yet. Ask the user to confirm before paying: pay_book for MPP, or POST paymentUrl with an x402 client for USDC. Quote expires after 15 minutes.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "bookId": {
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          },
          "bookToken": {
            "pattern": "^[a-f0-9]{64}$",
            "type": "string"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "idempotencyKey": {
            "maxLength": 100,
            "minLength": 8,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          },
          "quantity": {
            "default": 1,
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "shippingAddress": {
            "properties": {
              "addressLine1": {
                "maxLength": 160,
                "minLength": 1,
                "type": "string"
              },
              "addressLine2": {
                "maxLength": 160,
                "type": "string"
              },
              "city": {
                "maxLength": 100,
                "minLength": 1,
                "type": "string"
              },
              "firstName": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "lastName": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "phone": {
                "maxLength": 40,
                "minLength": 5,
                "type": "string"
              },
              "postalCode": {
                "maxLength": 20,
                "minLength": 1,
                "type": "string"
              },
              "state": {
                "maxLength": 100,
                "type": "string"
              }
            },
            "required": [
              "firstName",
              "lastName",
              "addressLine1",
              "city",
              "postalCode",
              "phone"
            ],
            "type": "object"
          }
        },
        "required": [
          "bookId",
          "bookToken",
          "country",
          "idempotencyKey",
          "shippingAddress"
        ],
        "type": "object"
      },
      "name": "create_payment_quote"
    },
    {
      "description": "Use this to show a book that was already made, or to get its price for one copy including shipping when country is supplied. Needs the book's private bookToken. Photos, cover, title, layout and materials are changed in the foto foto editor.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "bookId": {
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          },
          "bookToken": {
            "pattern": "^[a-f0-9]{64}$",
            "type": "string"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "language": {
            "description": "Two-letter code of the language the person writes in, such as nl or en.",
            "maxLength": 35,
            "type": "string"
          }
        },
        "required": [
          "bookId",
          "bookToken"
        ],
        "type": "object"
      },
      "name": "get_book"
    },
    {
      "description": "List book types, shipping countries and photo requirements. Free.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_catalog"
    },
    {
      "description": "Buy the exact quoted book using native MPP. Only after the buyer approves its total and delivery address. Supply quoteId and bookToken. A payment challenge is returned through JSON-RPC; retry the same call with the authorized payment credential in _meta. This charges the buyer.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "bookToken": {
            "pattern": "^[a-f0-9]{64}$",
            "type": "string"
          },
          "quoteId": {
            "pattern": "^[a-f0-9]{64}$",
            "type": "string"
          }
        },
        "required": [
          "quoteId",
          "bookToken"
        ],
        "type": "object"
      },
      "name": "pay_book"
    },
    {
      "description": "Use this when someone wants to make a printed photo book (Dutch: fotoboek) or photo album but has not shared any photos yet. Shows a card where they pick the photos, in order, right here. Nothing is ordered or charged.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "language": {
            "description": "Two-letter code of the language the person writes in, such as nl or en.",
            "maxLength": 35,
            "type": "string"
          },
          "title": {
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "start_photo_book"
    }
  ]
}

What the leaf hashes

{"body":"16192ba8ce738de474f85c071b1a67239a1e58bcd3ce3ea3ae3c77f4880a84b3","id":4156113,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1794152383901837,"prev":3470079,"subject":"bfe87816-884c-472c-9567-a221708b4e97","subject_kind":"endpoint"}

Proof

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

  1. 0x1950784720fb99b10fb520b1fb76cf947d122925c466c48cc0b5e44e88bf5d42
  2. 0x8ef645499eddea8ad1f3b1634c39383854641f45784604a0ba0713023434aaf9
  3. 0x02fa947272dffb3622ba7ef4db8044ceb910f91592cb1b4d5872cc192c57c24b
  4. 0x14617bfbbce8acb406b11a9fff4a4030c326ece2ee901ac1ab8dfd03783d3b40
  5. 0x95ab3a96a9552367583f100b2e147516d57f022b20df206e3e393f6f4a50c68b
  6. 0xe24043c8ac35f9a9c065e47ad37b087cb512605a2912830a44442b18f6aa0fc6
  7. 0x8b344180686594c91c289999364baafa590031f19f1cb16b69e24e6c33c57bde
  8. 0x7a050b97a8fd7f470f10343b24df593dae733c9edb73d1653eb359bbb4f250e6
  9. 0xc374412262a981a2d77dfbf74b45b319012e34ac9734218ad0ff5a778d5b20bd
  10. 0x215229408da71f8935144939b725444c0a757675fb5a5b48d6c6242150f12ae3
  11. 0x6d5d99174ed78bbd9005fad7f1006fcc783c8574399fa719d7b13b65aed8006f
  12. 0xc6052096a683ef6c8588723aa9ea81d1a3e072e13462c9b05470ed7b3a27caf3
  13. 0xa3132b725b3703f6e3a386ca1485015b55b2c875ab23623d53f65eae326c7cc9
  14. 0x814d6226e69b51edadcbbc29c357ae0d6b836e2ff129f76481a15ea582ddd6bc
  15. 0x09d2e17fa8f3e9a2f4f828fdf6cdcead1db258ec62d192ca8393958c2b06f6cd
  16. 0x1962b987e02fbb17a8951e440b8c94ffca5debb84fd17d27b5f1c60361f21c36
  17. 0x2031bf8fabeeff87db710efedafb2b06df0de0b25ca93fb078786a0ebfe9bbc5
  18. 0x1f0ff2af9da38fef1beef5d2dbcf41f592dca17729b7ab9b9c0b6ef354dc3b83
Day root
0xbf84ec37f88c5f23d2144bd7dbc1ea0f8edc93b3764a885a7164b7923ff3460b
Chained
0x9fea188e4965f50de727e97c40e18d5ff2c2ddbfd4f1ae65e22ddd6f676bccfc
Published
On Arc Testnet, block 71451618: 0xb5273480942a54cd07f291b8319e59976f8d9d0583181c764eed04c9b3f7a022

How to check it · This row as JSON