addrbookFor publishers
← The evidence ledger

Evidence row 573871

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 1ddc8fc4-e3d6-426e-8f98-78fd6150b86a
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
8f279ac2bd84f0d7ec798030be3e88c9e0c3bf8300c04e5a27d88fb01c7f7717
Leaf
0xc2170c122f6442739adf34764edeb0577c9d587c89aa9429251462fc0c5c3308

What was observed

{
  "count": 9,
  "tools": [
    {
      "description": "List the agents one wallet registered on BSC and call each of their declared endpoints now. Nothing on the chain tells an owner their endpoint went dark — the registry keeps listing it — so this is the answer to \"is my agent still answering?\": what answered, how each failure looks, and every probe Kawal kept. At most 12 agents are dialled, so a large owner sees the first page.",
      "inputSchema": {
        "properties": {
          "chainId": {
            "description": "Chain id. One of 56, 97. Defaults to 56.",
            "type": "number"
          },
          "owner": {
            "description": "The wallet that minted the registrations: 0x followed by forty hex characters. `address` is accepted as an alias.",
            "type": "string"
          }
        },
        "required": [
          "owner"
        ],
        "type": "object"
      },
      "name": "agents_by_owner"
    },
    {
      "description": "Send the opening request of the x402 protocol — no payment header — and report whether the server actually demands payment. `x402_supported` on the registry is a flag a registration sets about itself; this is the answer to asking. Kawal never settles a payment, so the price is quoted in the server's own words and nothing moves.",
      "inputSchema": {
        "properties": {
          "chainId": {
            "description": "Chain id. One of 56, 97. Defaults to 56.",
            "type": "number"
          },
          "tokenId": {
            "description": "ERC-8004 token id, decimal digits.",
            "type": "string"
          }
        },
        "required": [
          "tokenId"
        ],
        "type": "object"
      },
      "name": "check_payment"
    },
    {
      "description": "Put two or three agents side by side and answer the same questions of each — the ones a buyer weighs before handing over a spend cap: can it be hired, does it answer right now, has it kept answering, what does it offer, what does it say it costs, does its domain verify, what is its track record, what is flagged against it, and when it was registered. Each agent is dialled for this call. No combined score: the disagreements are the point.",
      "inputSchema": {
        "properties": {
          "agents": {
            "description": "One to 3 agents to compare.",
            "items": {
              "properties": {
                "chainId": {
                  "description": "Chain id. One of 56, 97. Defaults to 56.",
                  "type": "number"
                },
                "tokenId": {
                  "description": "ERC-8004 token id, decimal digits.",
                  "type": "string"
                }
              },
              "required": [
                "tokenId"
              ],
              "type": "object"
            },
            "maxItems": 3,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "agents"
        ],
        "type": "object"
      },
      "name": "compare_agents"
    },
    {
      "description": "Everything Kawal holds about one agent in a single answer: the live handshake, the full probe history, how the endpoint fails when it fails, whether it really charges, and who wrote its feedback. This one costs money. Kawal measured that 75 of 200 BSC registrations declare x402 support and that none of the reachable ones ever asks to be paid; this is the counter-example. Calling it without payment returns the terms rather than the report. Pay the terms with a plain BNB transfer and call again with `txHash`; the receipt is read on-chain and spent once.",
      "inputSchema": {
        "properties": {
          "chainId": {
            "description": "Chain id. One of 56, 97. Defaults to 56.",
            "type": "number"
          },
          "tokenId": {
            "description": "ERC-8004 token id, decimal digits.",
            "type": "string"
          },
          "txHash": {
            "description": "Hash of the BNB transfer that paid the terms: 0x followed by 64 hex characters. Omit to receive the terms.",
            "pattern": "^0x[0-9a-fA-F]{64}$",
            "type": "string"
          }
        },
        "required": [
          "tokenId"
        ],
        "type": "object"
      },
      "name": "deep_report"
    },
    {
      "description": "Search the BSC roster by describing the problem rather than naming a product, and get back agents ranked with Kawal's evidence attached. Duplicate registrations are collapsed: roughly two thirds of the newest registrations are copies of a template, and returning all of them would be returning the same agent many times. With `trending`, the list is instead what 8004scan's visitors looked at most over that window — attention, not evidence — each entry carrying the tier Kawal's own record gives it, which is where the two disagree.",
      "inputSchema": {
        "properties": {
          "chainId": {
            "description": "Chain id. One of 56, 97. Defaults to 56.",
            "type": "number"
          },
          "limit": {
            "description": "How many to return, at most 20.",
            "type": "number"
          },
          "query": {
            "description": "What you need done, in plain words. Optional when `trending` is given; then it filters the trending list by name or description.",
            "type": "string"
          },
          "trending": {
            "description": "Return 8004scan's trending agents for this window instead of a search, in the registry's order.",
            "enum": [
              "24h",
              "7d",
              "30d"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "find_agents"
    },
    {
      "description": "Turn a capital amount and a duration into the four scoped sessions Kawal would grant on Altana — one per seat, each with its own contract allowlist, spend cap and expiry — without granting anything. Pure arithmetic over the venue table: the same plan the mandate form shows, and the same refusals, since a plan that would widen authority (an unproven venue, an empty allowlist, caps that overcommit) is refused rather than built.",
      "inputSchema": {
        "properties": {
          "capitalUsdt": {
            "description": "Capital to entrust, in USDT. Positive, at most 1000000000000.",
            "exclusiveMinimum": 0,
            "maximum": 1000000000000,
            "type": "number"
          },
          "chainId": {
            "description": "Chain id. One of 56, 97. Defaults to 56.",
            "type": "number"
          },
          "days": {
            "description": "How long the mandate runs, in whole days. 1 to 365.",
            "maximum": 365,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capitalUsdt",
          "days"
        ],
        "type": "object"
      },
      "name": "plan_mandate"
    },
    {
      "description": "Report who wrote an agent's ERC-8004 feedback, not how much of it there is. A sample of 1,200 BSC records came from 53 addresses, one of which wrote 265 of the oldest 600, so a count of records is a count of writes rather than of opinions. Returns how many carry a mark, how many distinct addresses wrote them, and what share came from the busiest one.",
      "inputSchema": {
        "properties": {
          "chainId": {
            "description": "Chain id. One of 56, 97. Defaults to 56.",
            "type": "number"
          },
          "tokenId": {
            "description": "ERC-8004 token id, decimal digits.",
            "type": "string"
          }
        },
        "required": [
          "tokenId"
        ],
        "type": "object"
      },
      "name": "read_reputation"
    },
    {
      "description": "Read the history Kawal keeps of one agent's endpoint without dialling it: how many times it was called, how many times it answered in the protocol it declared, since when, and the median and worst latency of the answering calls. This is the record the registry does not have. Null when Kawal has never called this endpoint; verify_agent makes the first call.",
      "inputSchema": {
        "properties": {
          "chainId": {
            "description": "Chain id. One of 56, 97. Defaults to 56.",
            "type": "number"
          },
          "tokenId": {
            "description": "ERC-8004 token id, decimal digits.",
            "type": "string"
          }
        },
        "required": [
          "tokenId"
        ],
        "type": "object"
      },
      "name": "uptime_history"
    },
    {
      "description": "Call an agent's declared endpoint right now and report what answered. This is a live handshake made by Kawal, not a reading of the registry: an agent whose registration declares MCP but whose endpoint is gone is reported as not answering. Returns the hireability tier and the evidence behind it, including how many times Kawal has reached this endpoint before.",
      "inputSchema": {
        "properties": {
          "chainId": {
            "description": "Chain id. One of 56, 97. Defaults to 56.",
            "type": "number"
          },
          "tokenId": {
            "description": "ERC-8004 token id, decimal digits.",
            "type": "string"
          }
        },
        "required": [
          "tokenId"
        ],
        "type": "object"
      },
      "name": "verify_agent"
    }
  ]
}

What the leaf hashes

{"body":"8f279ac2bd84f0d7ec798030be3e88c9e0c3bf8300c04e5a27d88fb01c7f7717","id":573871,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793141316173955,"prev":null,"subject":"1ddc8fc4-e3d6-426e-8f98-78fd6150b86a","subject_kind":"endpoint"}

Proof

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

  1. 0xc217048e17db6796129b5cffccadb11f3a26d2578ff41d37b6334cf6fbfa1b12
  2. 0x6d58123dc89770a4315ae46714b3c818eaf55358cbf13d67e8d1195fad8b9813
  3. 0x88aa8fdb148118a06f90e75a3fc6fd27c6d564e6327549e80364793192df35cd
  4. 0x3fb296269ef316e9ef778b02225b5f358e5ee25d361f0db989796535945f3bd8
  5. 0x720f60a6ee1564c7004f7d9f30b885aa12292d3fbe480bef23fc2a1254198a98
  6. 0xb2afbc171c383d1993e5e74bb1a462adf7245de51e8d29eb82b58a1f2aa7e5f3
  7. 0x3a74dcd06a538901471c33910937cf39ebbf3a713492c143862a327375bc2379
  8. 0x5ec32700d5de9bd77b5550783ebada9c2fa02fef7fdb420f13b4754c203b3636
  9. 0x3aa03236e5e9327da07f659ef2e0e19dc08cc297254d07652edb01b6acccc793
  10. 0x603e5d7d552008939814da11386784fe82a74a23617e6ed24fbe3fa47ea3d596
  11. 0x5a13fca65d8a7a99a0b9f7a1e93e4c0383a76a0fdbe04d70632715947f716ff4
  12. 0xf60d24675361c4e691254e637b8ecddfc4470b91e0ce8ab4c088e46b7460f7f1
  13. 0xb48b088603004f0a5232faea4acd65999cbb4832f4c15b0098e853144cb91655
  14. 0x077edf0f29e2a3aa19c876439830696b88f0236fd0b2a3c43c76f38cdd29bb2b
  15. 0x73341bb09dd901ca47f26173883431496e3d98d6b0fb5b89f36218126d46c5d4
  16. 0xa94627de1af0e823832e05a9069b304ecccb8c0cdb8f9cfc4f2039bfb9799dc5
  17. 0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON