← 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).
- 0x20729da0127f07005d3b0742669d09ac17c1228dd62bc060dbe3851cb531cfde
- 0x55e1751fbefc668f47a999d1e5a710ec5ba94eb1f7d1576f1fbff7121b937624
- 0x35d8b61e906927697b84ac04bd7af371923436531c4b5978300e11b971a44441
- 0x0f9800b65a2e3101d0892ee8c1088d348f74b30e8a1decd164ba1a8e9b3d6e81
- 0xd3d9f07035d650e0390ab1aa3f973caaa2314f8ed5b51f8f51a9391e5f8d693e
- 0x2b62277dbab968540e6b4c3e6904511dbc9a3aebb3f035048146d4b8f3f59b31
- 0x7d43f887cd4b42637e35a2650e58f83cb245b1174d40267d8418c10350420dca
- 0x512a97631ade888ec48e1d71155afbd94537d2625686efeb3303cd54687e44dc
- 0x314052056750178c24c94e3fe30fd99e4ae1ec1695b593a3a92d17f04d7fdd4b
- 0x59746ec7d0880b830553004bdb17be54951fdba6bc7ed354cf1d13e2f92464a2
- 0x68d978f56018035e7a20ac8a2580189f290769c9589bcede39c11c158d428cf7
- 0xe0c6e8e8fb900d9a6980f3ca49963e1c565ddfdca02db71905a206e8075acdf3
- 0xd962e1b3842b353598d79ca5fe0b84b02369d05fe8f6e6103d51bf4d4d1edce4
- 0x175afd1319b72670e83bf74eef6f87ab2173061f5bacdfe981a6b0789c963022
- 0xb9d6fdc8e6fb3f4feffa2c18849d74fc34d8708b574a778ae149241a90aaf20b
- 0xa856ad79e6f29a2b5516257f0d4817172cca11251fe2e7e8f3911b105fe2b622
- 0x02b3554752e71a19b12d7a76dbff436e85387226ceec89fdebdcdaf0122c2932
- 0x1973893697931b7512ae5dc1a3c92ef92f633ae3574dce9029a35b5e94d2d364
- 0x3315fd2757fdd435852cc277377234a3f3909a6d2a089d0e36f6d59aacfda910
- Day root
- 0x7fa2cba1cf3d6b35630896f5fe1a650adb307ea2c376e80a5f2d9276b7cb5ab3
- Chained
- 0x577ff89ba012beeff3197bcff7fa86752074bdf54205a24359cc437be2a952a4
- Published
- On Arc Testnet, block 70262758: 0x435bc1b9331471d72e1998f2e420983b5189d4da65ffbd6f27ef40daf5e1ea90