addrbookFor publishers
← The evidence ledger

Evidence row 1731396

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 450d6722-2bb0-49fc-b76c-a092a2e1f236
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
5a0040b2d1728daf60e42080ed404fd9686fe9a6fc35626000d2c04cfd9c93e4
Leaf
0x2072606f1b52ca048c11ace0a544857a418c4907a5c9b9ea9130ab16f0af7118

What was observed

{
  "count": 19,
  "tools": [
    {
      "description": "Save a pickup or dropoff address. The reply's serviceZoneId is null when we don't pick up there. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "city": {
            "type": "string"
          },
          "label": {
            "description": "e.g. \"Home\"",
            "maxLength": 120,
            "type": "string"
          },
          "line1": {
            "description": "Street address, e.g. 123 Main St",
            "type": "string"
          },
          "line2": {
            "description": "Apartment or unit",
            "maxLength": 200,
            "type": "string"
          },
          "note": {
            "description": "Address notes: a gate code, where the bags will be, where to leave the clean laundry",
            "maxLength": 500,
            "type": "string"
          },
          "postalCode": {
            "description": "ZIP code",
            "type": "string"
          },
          "state": {
            "description": "e.g. UT",
            "type": "string"
          }
        },
        "required": [
          "line1",
          "city",
          "state",
          "postalCode"
        ],
        "type": "object"
      },
      "name": "add_address"
    },
    {
      "description": "A link where the customer adds their card on our site; booking needs one. You can't take card details yourself. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "add_card"
    },
    {
      "description": "One pickup on a date (check it with quote_one_time_pickup first). Get the customer's go-ahead on the price first. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "addressId": {
            "description": "Pickup address",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "bags": {
            "anyOf": [
              {
                "const": 1,
                "type": "number"
              },
              {
                "const": 2,
                "type": "number"
              }
            ],
            "description": "Bags each pickup is booked with: 1 or 2 (the 1-bag or 2-bag price)"
          },
          "date": {
            "description": "YYYY-MM-DD",
            "format": "date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "type": "string"
          },
          "discountCode": {
            "maxLength": 30,
            "type": "string"
          },
          "dropoffAddressId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "express": {
            "description": "24-hour turnaround, for a fee",
            "type": "boolean"
          }
        },
        "required": [
          "addressId",
          "date",
          "bags"
        ],
        "type": "object"
      },
      "name": "book_one_time_pickup"
    },
    {
      "description": "Cancel one upcoming pickup (a subscription carries on). Before 8:00 AM on the day, nothing is charged. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "pickupId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "pickupId"
        ],
        "type": "object"
      },
      "name": "cancel_pickup"
    },
    {
      "description": "Moves a subscription to another option, address or number of bags: it starts again, with its pickups booked right away, each at the price for its date. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "addressId": {
            "description": "New pickup address",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "bags": {
            "anyOf": [
              {
                "const": 1,
                "type": "number"
              },
              {
                "const": 2,
                "type": "number"
              }
            ],
            "description": "Bags each pickup is booked with: 1 or 2 (the 1-bag or 2-bag price)"
          },
          "dropoffAddressId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "serviceZoneScheduleId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "subscriptionId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "subscriptionId"
        ],
        "type": "object"
      },
      "name": "change_subscription"
    },
    {
      "description": "Whether we pick up at an address, and if we do, its pickup options: each day and how often (every week or every other week), the first pickup, when it comes back, and the prices with any subscriber discount.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "city": {
            "type": "string"
          },
          "line1": {
            "description": "Street address, e.g. 123 Main St",
            "type": "string"
          },
          "postalCode": {
            "description": "ZIP code",
            "type": "string"
          },
          "state": {
            "description": "e.g. UT",
            "type": "string"
          }
        },
        "required": [
          "line1",
          "city",
          "state",
          "postalCode"
        ],
        "type": "object"
      },
      "name": "check_address"
    },
    {
      "description": "The customer's profile, addresses (with their ids), Laundry preferences, whether a card is saved, subscriptions and one-time bookings, and upcoming pickups. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "get_account"
    },
    {
      "description": "The subscriptions the customer can start at one of their addresses: each option's serviceZoneScheduleId, day, how often, first pickup (nextDate), when it comes back (backDate), and prices with their discount. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "addressId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "addressId"
        ],
        "type": "object"
      },
      "name": "get_pickup_options"
    },
    {
      "description": "The areas we pick up in, the current prices (in cents, before tax) and the subscriber discount, and the first day a pickup can be booked.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "get_service_info"
    },
    {
      "description": "Leave an email for an address we don't pick up at yet; we email them when we do.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "city": {
            "type": "string"
          },
          "email": {
            "format": "email",
            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
            "type": "string"
          },
          "line1": {
            "description": "Street address, e.g. 123 Main St",
            "type": "string"
          },
          "postalCode": {
            "description": "ZIP code",
            "type": "string"
          },
          "state": {
            "description": "e.g. UT",
            "type": "string"
          }
        },
        "required": [
          "email",
          "line1",
          "city",
          "state",
          "postalCode"
        ],
        "type": "object"
      },
      "name": "join_waitlist"
    },
    {
      "description": "The customer's last 20 finished pickups, newest first. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "list_past_pickups"
    },
    {
      "description": "What a one-time pickup at one of their addresses would cost on a date, whether that date can be booked, and when it would come back. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "addressId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "date": {
            "description": "YYYY-MM-DD",
            "format": "date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "type": "string"
          }
        },
        "required": [
          "addressId",
          "date"
        ],
        "type": "object"
      },
      "name": "quote_one_time_pickup"
    },
    {
      "description": "The detergent and scent every load is washed with, unless a subscription or pickup says otherwise. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "detergent": {
            "description": "free_clear is fragrance-free, and takes no scent",
            "enum": [
              "regular",
              "athletic",
              "free_clear"
            ],
            "type": "string"
          },
          "scent": {
            "anyOf": [
              {
                "enum": [
                  "fresh_linen",
                  "island_breeze",
                  "amberwood",
                  "warm_vanilla"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "null = unscented"
          }
        },
        "required": [
          "detergent",
          "scent"
        ],
        "type": "object"
      },
      "name": "set_laundry_preferences"
    },
    {
      "description": "Regular pickups on an option from get_pickup_options. Get the customer's go-ahead on the day and price first. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "addressId": {
            "description": "Pickup address",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "bagCount": {
            "description": "Bags every pickup has, extra ones included (extras cost more)",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "bags": {
            "anyOf": [
              {
                "const": 1,
                "type": "number"
              },
              {
                "const": 2,
                "type": "number"
              }
            ],
            "description": "Bags each pickup is booked with: 1 or 2 (the 1-bag or 2-bag price)"
          },
          "discountCode": {
            "maxLength": 30,
            "type": "string"
          },
          "dropoffAddressId": {
            "description": "Where it comes back; the pickup address if left out",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "serviceZoneScheduleId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "addressId",
          "serviceZoneScheduleId",
          "bags"
        ],
        "type": "object"
      },
      "name": "start_subscription"
    },
    {
      "description": "Bring back a pickup canceled by mistake, as it was (until 1:00 AM on its day). Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "pickupId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "pickupId"
        ],
        "type": "object"
      },
      "name": "uncancel_pickup"
    },
    {
      "description": "Change an address's label or Address notes, or its street (only until a pickup has been booked there). Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "addressId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "city": {
            "type": "string"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "line1": {
            "type": "string"
          },
          "line2": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Address notes"
          },
          "postalCode": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "addressId"
        ],
        "type": "object"
      },
      "name": "update_address"
    },
    {
      "description": "Change one upcoming pickup before we collect it: its bag count, Job notes, 24-hour turnaround, or detergent and scent. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "bagCount": {
            "description": "Bags every pickup has, extra ones included (extras cost more)",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "express": {
            "description": "24-hour turnaround, for a fee",
            "type": "boolean"
          },
          "jobNotes": {
            "anyOf": [
              {
                "maxLength": 280,
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "pickupId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "wash": {
            "anyOf": [
              {
                "properties": {
                  "detergent": {
                    "description": "free_clear is fragrance-free, and takes no scent",
                    "enum": [
                      "regular",
                      "athletic",
                      "free_clear"
                    ],
                    "type": "string"
                  },
                  "scent": {
                    "anyOf": [
                      {
                        "enum": [
                          "fresh_linen",
                          "island_breeze",
                          "amberwood",
                          "warm_vanilla"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "null = unscented"
                  }
                },
                "required": [
                  "detergent",
                  "scent"
                ],
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Detergent and scent; null goes back to their Laundry preferences"
          }
        },
        "required": [
          "pickupId"
        ],
        "type": "object"
      },
      "name": "update_pickup"
    },
    {
      "description": "Change the customer's name or phone number. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          },
          "phone": {
            "description": "A US phone number",
            "maxLength": 40,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "update_profile"
    },
    {
      "description": "Pause (until a date, or until resumed), resume or cancel a subscription, or change its bag count, Job notes, or detergent and scent. Canceling also cancels its upcoming pickups. Needs the customer's Happy Hamper login.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "action": {
            "enum": [
              "pause",
              "resume",
              "cancel"
            ],
            "type": "string"
          },
          "bagCount": {
            "description": "Bags every pickup has, extra ones included (extras cost more)",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "cancelReason": {
            "maxLength": 500,
            "type": "string"
          },
          "jobNotes": {
            "anyOf": [
              {
                "maxLength": 280,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Job notes for every pickup; blank clears them"
          },
          "pausedUntil": {
            "description": "With pause: pickups start again on this date (YYYY-MM-DD)",
            "format": "date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "type": "string"
          },
          "subscriptionId": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "wash": {
            "anyOf": [
              {
                "properties": {
                  "detergent": {
                    "description": "free_clear is fragrance-free, and takes no scent",
                    "enum": [
                      "regular",
                      "athletic",
                      "free_clear"
                    ],
                    "type": "string"
                  },
                  "scent": {
                    "anyOf": [
                      {
                        "enum": [
                          "fresh_linen",
                          "island_breeze",
                          "amberwood",
                          "warm_vanilla"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "null = unscented"
                  }
                },
                "required": [
                  "detergent",
                  "scent"
                ],
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Detergent and scent; null goes back to their Laundry preferences"
          }
        },
        "required": [
          "subscriptionId"
        ],
        "type": "object"
      },
      "name": "update_subscription"
    }
  ]
}

What the leaf hashes

{"body":"5a0040b2d1728daf60e42080ed404fd9686fe9a6fc35626000d2c04cfd9c93e4","id":1731396,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793501256597196,"prev":null,"subject":"450d6722-2bb0-49fc-b76c-a092a2e1f236","subject_kind":"endpoint"}

Proof

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

  1. 0x20729da0127f07005d3b0742669d09ac17c1228dd62bc060dbe3851cb531cfde
  2. 0x55e1751fbefc668f47a999d1e5a710ec5ba94eb1f7d1576f1fbff7121b937624
  3. 0x35d8b61e906927697b84ac04bd7af371923436531c4b5978300e11b971a44441
  4. 0x0f9800b65a2e3101d0892ee8c1088d348f74b30e8a1decd164ba1a8e9b3d6e81
  5. 0xd3d9f07035d650e0390ab1aa3f973caaa2314f8ed5b51f8f51a9391e5f8d693e
  6. 0x2b62277dbab968540e6b4c3e6904511dbc9a3aebb3f035048146d4b8f3f59b31
  7. 0x7d43f887cd4b42637e35a2650e58f83cb245b1174d40267d8418c10350420dca
  8. 0x512a97631ade888ec48e1d71155afbd94537d2625686efeb3303cd54687e44dc
  9. 0x314052056750178c24c94e3fe30fd99e4ae1ec1695b593a3a92d17f04d7fdd4b
  10. 0x59746ec7d0880b830553004bdb17be54951fdba6bc7ed354cf1d13e2f92464a2
  11. 0x68d978f56018035e7a20ac8a2580189f290769c9589bcede39c11c158d428cf7
  12. 0xe0c6e8e8fb900d9a6980f3ca49963e1c565ddfdca02db71905a206e8075acdf3
  13. 0xd962e1b3842b353598d79ca5fe0b84b02369d05fe8f6e6103d51bf4d4d1edce4
  14. 0x175afd1319b72670e83bf74eef6f87ab2173061f5bacdfe981a6b0789c963022
  15. 0xb9d6fdc8e6fb3f4feffa2c18849d74fc34d8708b574a778ae149241a90aaf20b
  16. 0xa856ad79e6f29a2b5516257f0d4817172cca11251fe2e7e8f3911b105fe2b622
  17. 0x02b3554752e71a19b12d7a76dbff436e85387226ceec89fdebdcdaf0122c2932
  18. 0x1973893697931b7512ae5dc1a3c92ef92f633ae3574dce9029a35b5e94d2d364
  19. 0x3315fd2757fdd435852cc277377234a3f3909a6d2a089d0e36f6d59aacfda910
Day root
0x7fa2cba1cf3d6b35630896f5fe1a650adb307ea2c376e80a5f2d9276b7cb5ab3
Chained
0x577ff89ba012beeff3197bcff7fa86752074bdf54205a24359cc437be2a952a4
Published
On Arc Testnet, block 70262758: 0x435bc1b9331471d72e1998f2e420983b5189d4da65ffbd6f27ef40daf5e1ea90

How to check it · This row as JSON