addrbookFor publishers
← The evidence ledger

Evidence row 306838

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 04b1c8ad-c832-4ab9-9b08-15421c79d808
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
3bd9b8aad1fbd6073789ed247c89f76823676b95c841f5a6ba957707e564b7a0
Leaf
0xbd3f81e9c19374997d51d8ea768a0e3443449123fbe57c60408a162ef945aa7b

What was observed

{
  "count": 13,
  "tools": [
    {
      "description": "PURPOSE: Calculates the price of an order (unit prices, quantity discounts, add-ons, travel fee, minimum order) for a postal code. Returns quote_id (valid 30 minutes).\nWHEN TO USE: Whenever the customer asks how much a cleaning costs and you know the service(s), quantity and postal code. Also the first step before check_availability.\nWHEN NOT TO USE: Not for checking dates and never as a booking - it reserves nothing.\nREQUIRED: postal_code; items[] with service (id from list_upholstery_services) and quantity. Add-ons optional (names from the catalog; close spellings are matched, unknown ones return error unsupported_addon with allowed_addons). If postal code, service or quantity is unknown, ask the customer - do not guess.\nSIDE EFFECTS: none for the customer (stores a 30-minute quote only).\nCONSTRAINTS: Report total_from exactly; never estimate or adjust prices. Area not served -> error unsupported_postcode. below_min_order=true -> ask the customer to add a service before booking.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "description": "Services to price",
            "items": {
              "additionalProperties": false,
              "properties": {
                "addons": {
                  "description": "Optional add-on names as listed for this service, e.g. \"Impregnacja Ochronna Przed Zabrudzeniami\"",
                  "items": {
                    "maxLength": 60,
                    "minLength": 2,
                    "type": "string"
                  },
                  "maxItems": 10,
                  "type": "array"
                },
                "quantity": {
                  "description": "Pieces (whole number), mattress sides (1-2) or square metres for carpets",
                  "maximum": 500,
                  "minimum": 0.5,
                  "type": "number"
                },
                "service": {
                  "description": "Service id from list_upholstery_services, e.g. pranie_naroznika_l_4_5_os",
                  "maxLength": 64,
                  "minLength": 2,
                  "pattern": "^[a-z0-9_\\-]+$",
                  "type": "string"
                }
              },
              "required": [
                "service",
                "quantity"
              ],
              "type": "object"
            },
            "maxItems": 20,
            "minItems": 1,
            "type": "array"
          },
          "postal_code": {
            "description": "Polish postal code NN-NNN, e.g. 80-180",
            "maxLength": 6,
            "minLength": 5,
            "pattern": "^\\d{2}[-\\s]?\\d{3}$",
            "type": "string"
          },
          "session_id": {
            "description": "Optional. session_id from the previous result, if you have it. The server also recovers the session from quote_id / slot_id / confirmation_id / customer_grant.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          }
        },
        "required": [
          "postal_code",
          "items"
        ],
        "type": "object"
      },
      "name": "calculate_quote"
    },
    {
      "description": "PURPOSE: Cancels the verified customer's existing booking. Irreversible.\nWHEN TO USE: Only after the customer explicitly confirmed they want to cancel this specific booking (reference and date read back to them).\nWHEN NOT TO USE: Not to change the date (use reschedule_booking), never on an unclear request.\nREQUIRED: booking_reference, customer_grant (or a signed-in customer). reason and idempotency_key optional.\nSIDE EFFECTS: cancels the booking and notifies the customer by SMS/e-mail. Repeating the same call returns the same result.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "booking_reference": {
            "maxLength": 20,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9\\-]{8,20}$",
            "type": "string"
          },
          "customer_grant": {
            "description": "customer_grant returned by verify_phone_code",
            "maxLength": 80,
            "minLength": 20,
            "type": "string"
          },
          "idempotency_key": {
            "description": "Optional. Same value when retrying the same request. If omitted, the server derives the key from the request, so a retry never creates a second booking.",
            "maxLength": 128,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:\\-]{8,128}$",
            "type": "string"
          },
          "reason": {
            "description": "Optional short reason given by the customer",
            "maxLength": 120,
            "type": "string"
          },
          "session_id": {
            "description": "Optional. session_id from the previous result, if you have it. The server also recovers the session from quote_id / slot_id / confirmation_id / customer_grant.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          }
        },
        "required": [
          "booking_reference"
        ],
        "type": "object"
      },
      "name": "cancel_booking"
    },
    {
      "description": "PURPOSE: Returns real, currently free appointment slots for a quote_id (new booking) or for an existing booking_reference (rescheduling, needs customer_grant).\nWHEN TO USE: When the customer asks when we can come, after calculate_quote. wanted.type: asap (earliest), date (one day), range (from-to), preferred (a day + nearby days, sorted by preferred_time); optional part_of_day. If type is omitted it follows the fields given (date -> date, from/to -> range, nothing -> asap).\nWHEN NOT TO USE: Never to book - it reserves nothing and holds no slot.\nREQUIRED: quote_id (or booking_reference + customer_grant). Dates as YYYY-MM-DD, Polish time.\nSIDE EFFECTS: none (read-only; slot_id values are valid ~15 minutes).\nRESULT: slots found -> success=true, slots[]. None in the requested period -> success=false, error=\"no_availability\", next_available (date or null) and alternative_slots[] - offer those. Past date -> error date_in_past; beyond the online booking horizon -> error date_out_of_range. Never invent a slot.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "booking_reference": {
            "description": "Existing booking to reschedule (requires customer_grant)",
            "maxLength": 20,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9\\-]{8,20}$",
            "type": "string"
          },
          "customer_grant": {
            "description": "customer_grant returned by verify_phone_code",
            "maxLength": 80,
            "minLength": 20,
            "type": "string"
          },
          "quote_id": {
            "description": "quote_id from calculate_quote (new booking)",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^q_[0-9a-z]{26}$",
            "type": "string"
          },
          "session_id": {
            "description": "Optional. session_id from the previous result, if you have it. The server also recovers the session from quote_id / slot_id / confirmation_id / customer_grant.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          },
          "wanted": {
            "additionalProperties": false,
            "description": "Optional preference; empty = earliest slots",
            "properties": {
              "date": {
                "description": "YYYY-MM-DD (for date / preferred)",
                "maxLength": 10,
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                "type": "string"
              },
              "from": {
                "description": "YYYY-MM-DD (for range)",
                "maxLength": 10,
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                "type": "string"
              },
              "part_of_day": {
                "description": "morning <12:00, afternoon 12-16, evening >=16:00",
                "enum": [
                  "morning",
                  "afternoon",
                  "evening"
                ],
                "type": "string"
              },
              "preferred_time": {
                "maxLength": 5,
                "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                "type": "string"
              },
              "to": {
                "description": "YYYY-MM-DD (for range, max 30 days)",
                "maxLength": 10,
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                "type": "string"
              },
              "type": {
                "enum": [
                  "asap",
                  "date",
                  "range",
                  "preferred"
                ],
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "name": "check_availability"
    },
    {
      "description": "PURPOSE: Checks whether SzuruSzuru serves a Polish postal code.\nWHEN TO USE: When the customer asks whether we come to their town/postal code.\nWHEN NOT TO USE: Not needed before calculate_quote (calculate_quote checks the area itself). Never use it to reserve anything.\nREQUIRED: postal_code (NN-NNN). SIDE EFFECTS: none (read-only).\nRESULT: served -> success=true, available=true, city. Not served -> success=false, error=\"unsupported_postcode\", available=false - tell the customer we do not serve this code; do not continue to quote or booking.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "postal_code": {
            "description": "Polish postal code NN-NNN, e.g. 80-180",
            "maxLength": 6,
            "minLength": 5,
            "pattern": "^\\d{2}[-\\s]?\\d{3}$",
            "type": "string"
          },
          "session_id": {
            "description": "Optional, ignored by this tool.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          }
        },
        "required": [
          "postal_code"
        ],
        "type": "object"
      },
      "name": "check_service_area"
    },
    {
      "description": "PURPOSE: Step 2 of 2 of booking. Creates the real, confirmed SzuruSzuru booking for a confirmation_id from prepare_booking, using the 6-digit SMS code the customer received.\nWHEN TO USE: Only after prepare_booking succeeded and the customer has typed the SMS code in the conversation.\nWHEN NOT TO USE: Never to check price or availability, never without a code from the customer, never with a guessed or example code.\nREQUIRED: confirmation_id, sms_code. idempotency_key optional. Missing data -> error missing_required_fields; nothing is created.\nSIDE EFFECTS: creates a booking (a technician is scheduled) and sends SMS/e-mail confirmation to the customer. Idempotent: repeating the call with the same confirmation_id and code returns the SAME booking - it never creates a second one.\nRESULT: success=true, booking_id, status, date, time (Polish time), price, currency. Give these to the customer. Wrong code -> error verification_failed with attempts_left.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "confirmation_id": {
            "description": "confirmation_id from prepare_booking",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^c_[0-9a-z]{26}$",
            "type": "string"
          },
          "idempotency_key": {
            "description": "Optional. Same value when retrying the same request. If omitted, the server derives the key from the request, so a retry never creates a second booking.",
            "maxLength": 128,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:\\-]{8,128}$",
            "type": "string"
          },
          "session_id": {
            "description": "Optional. session_id from the previous result, if you have it. The server also recovers the session from quote_id / slot_id / confirmation_id / customer_grant.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          },
          "sms_code": {
            "description": "6-digit code the customer received by SMS",
            "maxLength": 8,
            "minLength": 6,
            "pattern": "^\\s*\\d{3}\\s?\\d{3}\\s*$",
            "type": "string"
          }
        },
        "required": [
          "confirmation_id",
          "sms_code"
        ],
        "type": "object"
      },
      "name": "create_booking"
    },
    {
      "description": "PURPOSE: Lists the verified customer's bookings from the last 90 days (or one booking by booking_reference): reference, services, date, time, price, status, can_reschedule, can_cancel.\nWHEN TO USE: When the customer asks about their existing booking(s).\nWHEN NOT TO USE: Not for new bookings. Without customer_grant it returns error verification_required - then run start_phone_verification -> verify_phone_code.\nREQUIRED: customer_grant (or a signed-in customer). SIDE EFFECTS: none (read-only). Never shows other customers' data.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "booking_reference": {
            "description": "Optional: one booking instead of the list",
            "maxLength": 20,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9\\-]{8,20}$",
            "type": "string"
          },
          "customer_grant": {
            "description": "customer_grant returned by verify_phone_code",
            "maxLength": 80,
            "minLength": 20,
            "type": "string"
          },
          "session_id": {
            "description": "Optional. session_id from the previous result, if you have it. The server also recovers the session from quote_id / slot_id / confirmation_id / customer_grant.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_my_bookings"
    },
    {
      "description": "PURPOSE: Returns the details of ONE service: unit (piece / m2 / mattress side), allowed quantity, add-on names and prices, short description and FAQ.\nWHEN TO USE: When the request is ambiguous (e.g. which corner sofa size, carpet area in m2, which add-ons exist for this service).\nWHEN NOT TO USE: Not for prices of an order (use calculate_quote) or availability.\nREQUIRED: service (id from list_upholstery_services). SIDE EFFECTS: none (read-only).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "service": {
            "description": "Service id from list_upholstery_services, e.g. pranie_naroznika_l_4_5_os",
            "maxLength": 64,
            "minLength": 2,
            "pattern": "^[a-z0-9_\\-]+$",
            "type": "string"
          },
          "session_id": {
            "description": "Optional, ignored by this tool.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          }
        },
        "required": [
          "service"
        ],
        "type": "object"
      },
      "name": "get_service_requirements"
    },
    {
      "description": "PURPOSE: Lists SzuruSzuru services (mobile upholstery, corner sofa, armchair, carpet, rug and mattress cleaning at the customer's home, Pomeranian region, Poland) with service ids, unit prices in PLN, units and add-on names.\nWHEN TO USE: To find the service id and exact add-on names before calculate_quote, or when the customer asks what is offered.\nWHEN NOT TO USE: Not for a price of a concrete order (use calculate_quote), not for coverage (check_service_area) or dates (check_availability).\nREQUIRED: nothing. SIDE EFFECTS: none (read-only).\nCONSTRAINTS: Prices come only from this catalog and calculate_quote - never estimate a price.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "Optional filter (furniture = sofas, corner sofas, armchairs; leather = leather furniture)",
            "enum": [
              "chairs",
              "furniture",
              "leather",
              "mattress",
              "carpet"
            ],
            "type": "string"
          },
          "session_id": {
            "description": "Optional, ignored by this tool.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_upholstery_services"
    },
    {
      "description": "PURPOSE: Step 1 of 2 of booking. Holds the chosen slot for 10 minutes and sends a 6-digit SMS code to the customer's Polish mobile. Returns confirmation_id and a summary to show verbatim. Does NOT create a booking.\nWHEN TO USE: Only after the customer explicitly said they want to book THIS slot, gave first and last name, street address with number and mobile phone, and accepted the terms.\nWHEN NOT TO USE: Not for price or date questions, not when the customer says \"maybe\" or only asks how much / when. Never guess or invent missing data - ask.\nREQUIRED: quote_id, slot_id (from check_availability), customer.name, customer.address, customer.phone, terms_accepted=true. Missing data -> error missing_required_fields with missing_fields[].\nSIDE EFFECTS: one SMS to the phone + 10-minute slot hold. The identical call repeated returns the same confirmation_id, no new SMS.\nNEXT: ask the customer for the SMS code, then call create_booking.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "customer": {
            "additionalProperties": false,
            "properties": {
              "address": {
                "description": "Street and house/flat number, e.g. \"Grunwaldzka 12/3\"",
                "maxLength": 200,
                "minLength": 4,
                "type": "string"
              },
              "city": {
                "description": "Optional; derived from the postal code of the quote",
                "maxLength": 80,
                "type": "string"
              },
              "email": {
                "description": "Optional",
                "maxLength": 254,
                "type": "string"
              },
              "name": {
                "description": "First and last name, e.g. \"Jan Kowalski\"",
                "maxLength": 100,
                "minLength": 5,
                "type": "string"
              },
              "phone": {
                "description": "Polish mobile number (9 digits, optional +48) - receives the SMS code. Required unless the customer is signed in.",
                "maxLength": 20,
                "minLength": 9,
                "pattern": "^[+\\d][\\d\\s\\-]{8,19}$",
                "type": "string"
              }
            },
            "required": [
              "name",
              "address"
            ],
            "type": "object"
          },
          "invoice_data": {
            "additionalProperties": false,
            "description": "Optional, only if the customer wants a company invoice",
            "properties": {
              "address": {
                "maxLength": 200,
                "type": "string"
              },
              "company": {
                "maxLength": 150,
                "type": "string"
              },
              "nip": {
                "maxLength": 13,
                "minLength": 10,
                "pattern": "^[0-9\\-]{10,13}$",
                "type": "string"
              }
            },
            "type": "object"
          },
          "notes": {
            "description": "Optional note for the cleaner (fabric type, stains, parking)",
            "maxLength": 200,
            "type": "string"
          },
          "quote_id": {
            "description": "quote_id from calculate_quote",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^q_[0-9a-z]{26}$",
            "type": "string"
          },
          "session_id": {
            "description": "Optional. session_id from the previous result, if you have it. The server also recovers the session from quote_id / slot_id / confirmation_id / customer_grant.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          },
          "slot_id": {
            "description": "slot_id chosen by the customer from check_availability",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^s_[0-9a-z]{26}$",
            "type": "string"
          },
          "terms_accepted": {
            "description": "true only if the customer explicitly accepted the terms and consents. false -> the server returns the consent text to show.",
            "type": "boolean"
          }
        },
        "required": [
          "quote_id",
          "slot_id",
          "customer",
          "terms_accepted"
        ],
        "type": "object"
      },
      "name": "prepare_booking"
    },
    {
      "description": "PURPOSE: Moves the verified customer's existing booking to a new slot. Price and services stay the same.\nWHEN TO USE: Only after check_availability(booking_reference) and after the customer explicitly confirmed the new date and time.\nWHEN NOT TO USE: Not for new bookings, not to change services or price.\nREQUIRED: booking_reference, slot_id (from check_availability with that booking_reference), customer_grant (or a signed-in customer). idempotency_key optional.\nSIDE EFFECTS: changes the booking and notifies the customer by SMS/e-mail. Repeating the same call returns the same result.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "booking_reference": {
            "maxLength": 20,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9\\-]{8,20}$",
            "type": "string"
          },
          "customer_grant": {
            "description": "customer_grant returned by verify_phone_code",
            "maxLength": 80,
            "minLength": 20,
            "type": "string"
          },
          "idempotency_key": {
            "description": "Optional. Same value when retrying the same request. If omitted, the server derives the key from the request, so a retry never creates a second booking.",
            "maxLength": 128,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:\\-]{8,128}$",
            "type": "string"
          },
          "session_id": {
            "description": "Optional. session_id from the previous result, if you have it. The server also recovers the session from quote_id / slot_id / confirmation_id / customer_grant.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          },
          "slot_id": {
            "description": "slot_id from check_availability(booking_reference)",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^s_[0-9a-z]{26}$",
            "type": "string"
          }
        },
        "required": [
          "booking_reference",
          "slot_id"
        ],
        "type": "object"
      },
      "name": "reschedule_booking"
    },
    {
      "description": "PURPOSE: Re-sends the SMS code of a prepared booking.\nWHEN TO USE: Only when the customer says the SMS from prepare_booking did not arrive.\nWHEN NOT TO USE: Not after a wrong code (ask the customer to re-type it) and not to start a new booking.\nREQUIRED: confirmation_id. SIDE EFFECTS: sends one SMS (max 1 per minute, 3 per 30 minutes per phone; otherwise error rate_limited with retry_after).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "confirmation_id": {
            "description": "confirmation_id from prepare_booking",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^c_[0-9a-z]{26}$",
            "type": "string"
          },
          "session_id": {
            "description": "Optional. session_id from the previous result, if you have it. The server also recovers the session from quote_id / slot_id / confirmation_id / customer_grant.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          }
        },
        "required": [
          "confirmation_id"
        ],
        "type": "object"
      },
      "name": "resend_confirmation_code"
    },
    {
      "description": "PURPOSE: Sends an SMS code to a Polish mobile number to prove the customer owns it, before showing, rescheduling or cancelling their EXISTING bookings.\nWHEN TO USE: When the customer asks about their existing booking(s) and no customer_grant is available yet.\nWHEN NOT TO USE: Not for a new booking (prepare_booking sends its own code).\nREQUIRED: phone. SIDE EFFECTS: sends one SMS (a repeated call within 60 s returns the same verification_id without a new SMS). The response is the same whether or not the number is known.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "phone": {
            "description": "Polish mobile number of the customer",
            "maxLength": 20,
            "minLength": 9,
            "pattern": "^[+\\d][\\d\\s\\-]{8,19}$",
            "type": "string"
          },
          "session_id": {
            "description": "Optional. session_id from the previous result, if you have it. The server also recovers the session from quote_id / slot_id / confirmation_id / customer_grant.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          }
        },
        "required": [
          "phone"
        ],
        "type": "object"
      },
      "name": "start_phone_verification"
    },
    {
      "description": "PURPOSE: Exchanges the SMS code from start_phone_verification for a customer_grant (valid 60 minutes) that gives access to this customer's own bookings.\nWHEN TO USE: Right after the customer types the code from start_phone_verification.\nWHEN NOT TO USE: Not for the booking code from prepare_booking (that one goes to create_booking).\nREQUIRED: verification_id, code. SIDE EFFECTS: none besides issuing the grant. Pass customer_grant to get_my_bookings, check_availability(booking_reference), reschedule_booking and cancel_booking.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "description": "6-digit code the customer received by SMS",
            "maxLength": 8,
            "minLength": 6,
            "pattern": "^\\s*\\d{3}\\s?\\d{3}\\s*$",
            "type": "string"
          },
          "session_id": {
            "description": "Optional. session_id from the previous result, if you have it. The server also recovers the session from quote_id / slot_id / confirmation_id / customer_grant.",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^as_[0-9a-z]{26}$",
            "type": "string"
          },
          "verification_id": {
            "description": "verification_id from start_phone_verification",
            "maxLength": 40,
            "minLength": 28,
            "pattern": "^v_[0-9a-z]{26}$",
            "type": "string"
          }
        },
        "required": [
          "verification_id",
          "code"
        ],
        "type": "object"
      },
      "name": "verify_phone_code"
    }
  ]
}

What the leaf hashes

{"body":"3bd9b8aad1fbd6073789ed247c89f76823676b95c841f5a6ba957707e564b7a0","id":306838,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793057308311769,"prev":null,"subject":"04b1c8ad-c832-4ab9-9b08-15421c79d808","subject_kind":"endpoint"}

Proof

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

  1. 0xbd3fe08fb3b11aba004afd00f610c5e11a2eec9da69f3951c6a109630c6b961d
  2. 0xf09375f17676bf20d747bc1e1585af6b2f1f257a48ada09d84b51f3a0afb692f
  3. 0xca193300e2b91c8471ce5be7636fedee96a70e887cee0abd219cf4ff5ae0245a
  4. 0x3c0881bf70ad564e0afa68b94bccb0a55fd8a2c9af1fd4532c1337013774d10e
  5. 0x76bd4cb87e4c18dd47f3528ccdf6bbaad119282173a5f8c7175ec4fda3cc8700
  6. 0xd42e356676bbc7765cdf1f7c47f6bc759a0847c0f2d1eb99dd69d5336d140b52
  7. 0x8362980ffe7976862763c5528ee49ab124643f519cc1709d381dda43d96c77a3
  8. 0x1565fad7389ce2e4eaec01c8bbcd732dd7628002835fe9e079719aaa00d0a3fb
  9. 0x17216d86eca313f943c647eedc7b5c8a67704dccf39bf4f0ca28b7517333f215
  10. 0x70fe24d78b58f8abec40e79e3452c3ede45cf737f4a71973b737bc6cdda64101
  11. 0x135102b1595b48b3b1604ed9b55766b9654dc2e33631a8be15cb316d09a36075
  12. 0xa6f71fd6c3a59323bf7c5386a54935b14c555d8c717289cc73700f56d86994cd
  13. 0xd5b5bb5812612371a70171b2252d90e95bb0581ea5a3be198122adc8442e4f79
  14. 0xf692ce2b0a640ec9f75aa960e5fb1c2c7091a04e24881798735752c19014e519
  15. 0x9f68b5e15459cb62b8c0cd4c124fa61c74147b4a5755a200fbecd21a581635d1
  16. 0x123ec8bee20ddc55223eeef5a4f4d6c4b6416515adbb911c56759f5cde56e452
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON