addrbookFor publishers
← The evidence ledger

Evidence row 290944

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint f23cfe41-4a82-4494-a000-4dbfb566b79b
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
3f34507cf3f8b197536caf6be60ab8fc0c8d160490eb351b7a774e9961752468
Leaf
0x14488be66044b53335014b68ed85394ee0cb5a6713b7bb59c16b061b88324703

What was observed

{
  "count": 6,
  "tools": [
    {
      "description": "Get scan analytics for a specific QR code. Use this when the user wants to know how many times a QR code has been scanned, see daily scan trends, understand which devices are scanning, or see which countries scans come from. Returns total scans, scans by day, device breakdown (mobile/tablet/desktop), and top 5 countries.",
      "inputSchema": {
        "properties": {
          "days": {
            "default": 30,
            "description": "Number of days of scan history to retrieve. Default: 30. Capped by plan: Free tier = 7 days max, Pro = 30 days, Business = 365 days.",
            "type": "number"
          },
          "id": {
            "description": "The unique identifier of the QR code to get analytics for. Obtain this from quality_qr_list or quality_qr_create responses.",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quality_qr_analytics"
    },
    {
      "description": "Create a new trackable QR code saved to your Quality QR account. Use this when the user wants to generate a QR code for a URL, WiFi network, contact card, calendar event, phone number, email, SMS, restaurant menu, app download link, or social media profile. The QR code is persisted with scan tracking and analytics. Returns an inline SVG image of the QR code.",
      "inputSchema": {
        "properties": {
          "content": {
            "description": "The content to encode. Required for url, text, pdf, menu, and app-store types. For url types, provide the full URL including https://. For other types, use the 'data' parameter instead.",
            "type": "string"
          },
          "data": {
            "description": "Type-specific structured data. Use instead of 'content' for complex types. WiFi: {ssid: string, password?: string, encryption?: 'WPA'|'WEP'|'nopass', hidden?: boolean}. vCard: {firstName: string, lastName: string, email?: string, phone?: string, mobile?: string, organization?: string, title?: string, website?: string, address?: {street?, city?, state?, zip?, country?}}. Event: {title: string, startDate: string (YYYY-MM-DD), startTime?: string (HH:mm), endDate?: string, endTime?: string, location?: string, description?: string, allDay?: boolean}. Social: {platforms: [{name: string, url: string, label: string}], profileName?: string, bio?: string}. Email: {to: string, subject?: string, body?: string}. Phone: {number: string}. SMS: {number: string, message?: string}.",
            "type": "object"
          },
          "design": {
            "description": "Optional visual customization for the QR code.",
            "properties": {
              "backgroundColor": {
                "description": "Hex color code for the QR code background, e.g. '#ffffff' for white.",
                "type": "string"
              },
              "foregroundColor": {
                "description": "Hex color code for the QR code modules (dark squares), e.g. '#000000' for black or '#1a56db' for blue.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "domain": {
            "description": "Business plan: one of your active custom domains (e.g. 'qr.yourbrand.com') to print the short link on. Pass null for quality-qr.app. Omit to use your default custom domain, if you set one. Applies to url, pdf, menu and app-store codes.",
            "type": [
              "string",
              "null"
            ]
          },
          "isDynamic": {
            "description": "Set to true to create a dynamic QR code whose destination URL can be changed later without reprinting the physical code. Only works for URL-based types (url, pdf, menu, app-store, social). Default: false.",
            "type": "boolean"
          },
          "name": {
            "description": "A human-readable name for the QR code, e.g. 'Office WiFi' or 'Spring Menu 2026'. Auto-generated as 'MCP: {type} {date}' if omitted.",
            "type": "string"
          },
          "type": {
            "description": "QR code content type. 'url' for websites, 'wifi' for network credentials, 'vcard' for contact cards, 'email' for pre-filled emails, 'phone' for tap-to-call, 'sms' for pre-filled texts, 'text' for plain text, 'event' for calendar events, 'pdf' for document links, 'menu' for restaurant menus, 'app-store' for app download links, 'social' for social media profiles.",
            "enum": [
              "url",
              "pdf",
              "menu",
              "app-store",
              "social",
              "wifi",
              "vcard",
              "email",
              "phone",
              "sms",
              "text",
              "event"
            ],
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "name": "quality_qr_create"
    },
    {
      "description": "Permanently delete a QR code from the user's account. Use this when the user wants to remove a QR code they no longer need. The short URL will immediately stop redirecting. This action frees up a plan quota slot and cannot be undone.",
      "inputSchema": {
        "properties": {
          "id": {
            "description": "The unique identifier of the QR code to permanently delete. Obtain this from quality_qr_list or quality_qr_create responses.",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quality_qr_delete"
    },
    {
      "description": "Get full details of a specific QR code by its ID. Use this when the user wants to inspect a particular QR code's configuration, check its destination URL, view its design settings, or see its current status. Returns all metadata including content, destination, design, scan limits, and timestamps.",
      "inputSchema": {
        "properties": {
          "id": {
            "description": "The unique identifier of the QR code. Obtain this from quality_qr_list or quality_qr_create responses.",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quality_qr_get"
    },
    {
      "description": "List QR codes in the user's Quality QR account. Use this when the user wants to see their existing QR codes, find a specific code, or check how many codes they have. Returns ID, name, type, short URL, active status, and creation date for each code.",
      "inputSchema": {
        "properties": {
          "limit": {
            "default": 50,
            "description": "Maximum number of results to return. Default: 50, maximum: 100.",
            "type": "number"
          },
          "offset": {
            "default": 0,
            "description": "Number of results to skip for pagination. Default: 0.",
            "type": "number"
          },
          "type": {
            "description": "Filter results to only QR codes of this type. Omit to return all types.",
            "enum": [
              "url",
              "pdf",
              "menu",
              "app-store",
              "social",
              "wifi",
              "vcard",
              "email",
              "phone",
              "sms",
              "text",
              "event"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "quality_qr_list"
    },
    {
      "description": "Update an existing QR code's properties. Use this when the user wants to change where a QR code points to, rename it, or enable/disable it. Destination URL changes only work for dynamic URL-based types (url, pdf, menu, app-store, social). Name and active status can be changed for any QR code type.",
      "inputSchema": {
        "properties": {
          "destinationUrl": {
            "description": "New destination URL. Only works for dynamic URL-based types (url, pdf, menu, app-store, social). The physical QR code does not need reprinting.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the QR code to update. Obtain this from quality_qr_list or quality_qr_create responses.",
            "type": "string"
          },
          "isActive": {
            "description": "Set to false to disable the QR code (scans will stop redirecting). Set to true to re-enable it.",
            "type": "boolean"
          },
          "name": {
            "description": "New human-readable name for the QR code.",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quality_qr_update"
    }
  ]
}

What the leaf hashes

{"body":"3f34507cf3f8b197536caf6be60ab8fc0c8d160490eb351b7a774e9961752468","id":290944,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793047666870978,"prev":null,"subject":"f23cfe41-4a82-4494-a000-4dbfb566b79b","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. 0x14484e2e3a0176ffb8fc8863266fce3e983f2fcd5ebca2335a8e38685c6dd7ab
  2. 0xa10c9e240f47dad644ba0b2012e55f260ed89bc1313b81b48e98019a85067499
  3. 0x72ec2e611547c0160f7bfd5e1bee7eb9a532527a9fd783394902e234c215c09e
  4. 0x4d116517ae006895b3291b8b7a2cf650a58641e09455d0ef0206beac36b0bb50
  5. 0x909ad996c3066afaa6bbd5a3508521449dfacf11abad4db7a82e6ebbdaac2a35
  6. 0x3010ca251629e9672ca8cd55609f708f1ce6cd84a53696842c4c25b20bdbf38b
  7. 0x80b86ae86c8f389b4e7f6a11c119eea11c3127c7e54d9b5a90c423c77ee5e152
  8. 0x5a871e6404123f8ebe84c73c0127edc4f0bf02611f2db078dda81fb95df654bf
  9. 0xdd269aec2d437c98516393a9dbe32220c2d017d42e87fa58fcbdedf26f374b2b
  10. 0x5bfb6382f3596c9dd0a20299d184d6508fcdd308373aec23047ff55528f51ccc
  11. 0xda5e2c2f0532a3bc2b2bc361905db44768a9ec088fd32d70f9333b7801b14b95
  12. 0x2412cb8bc4d10d94e1eb907d5058dd12133e55416609e1b314e811af76620542
  13. 0xff1c28bdf595a3d1333e9915edc68e9c5fded7bd5923fa85870979af34cbc3b3
  14. 0xb49e8c2564256e5322e375cb619d9ac70fd17c1d1eba9c991bba4cb6428f45cc
  15. 0x60582ab4b41e72eb70eb0bce07fbf0fb4d2b62a8bad5be50f5d16d511adc746c
  16. 0xc6a4d7899a0f442958e26505011190b7cff2483611c1b94eba9043e0ba9ac36e
  17. 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON