addrbookFor publishers
← The evidence ledger

Evidence row 564955

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 45e0529f-4a3b-4b10-80f8-ce5ba849d2ab
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
65ee0e59d8e073b78cef4fb42be411924da207d1520acc6a05559305b4045132
Leaf
0x75190a6090162dad783900aaf179e0035f29ca1755f45913e4e9df0dd896ebdf

What was observed

{
  "count": 4,
  "tools": [
    {
      "description": "Retrieve historical conformance observations and manage pinned SHA-256 tools/list policy hashes in the Assay ledger for a target endpoint. When expected_tools_hash is provided, it pins that 64-hex digest as the target's baseline policy and compares it against the latest stored observation; when omitted, it returns the stored dossier and last 20 drift observations without network probing unless the target is unindexed. Idempotent; first 5 calls/IP are free. Use to audit historical drift or pin mcp-lock.json hashes; for live pre-execution gating use assay_preflight; for live re-indexing use assay_probe; for post-payment SLA receipts use assay_verify_delivery. Example: target='https://agentdiet-72343955726.us-central1.run.app/mcp'.",
      "inputSchema": {
        "additionalProperties": false,
        "examples": [
          {
            "target": "https://agentdiet-72343955726.us-central1.run.app/mcp"
          }
        ],
        "properties": {
          "expected_tools_hash": {
            "description": "Optional 64-char SHA-256 hex digest of the canonical MCP tools/list schema from mcp-lock.json. Omit to read or auto-pin the current live digest; pass a 64-hex digest to enforce zero-drift gating.",
            "maxLength": 128,
            "minLength": 0,
            "type": "string"
          },
          "target": {
            "description": "Public HTTPS URL of the remote MCP server, A2A agent, or x402 endpoint to inspect (e.g. 'https://tandem.ac/mcp'). Private and loopback IPs are blocked.",
            "examples": [
              "https://agentdiet-72343955726.us-central1.run.app/mcp"
            ],
            "maxLength": 512,
            "minLength": 8,
            "type": "string"
          }
        },
        "required": [
          "target"
        ],
        "type": "object"
      },
      "name": "assay_get_ledger_policy"
    },
    {
      "description": "Gate a remote MCP, A2A, or x402 endpoint before calling or paying it by probing live JSON-RPC reachability, hashing tools/list (SHA-256), and scanning for prompt-injection poisoning. When expected_tools_hash is provided, any mismatch against the live tools/list digest forces verdict='deny' to block silent schema rug-pulls; when omitted, verdict reflects liveness and injection safety alone. Read-only gate; first 5 calls/IP are free and quota-exceeded calls return a 402 top-up prompt. Use before tool execution or payment; to register or refresh public leaderboard telemetry use assay_probe; to read or pin stored policy hashes use assay_get_ledger_policy; after payment use assay_verify_delivery. Example: target='https://agentdiet-72343955726.us-central1.run.app/mcp'.",
      "inputSchema": {
        "additionalProperties": false,
        "examples": [
          {
            "target": "https://agentdiet-72343955726.us-central1.run.app/mcp"
          }
        ],
        "properties": {
          "expected_tools_hash": {
            "description": "Optional 64-char SHA-256 hex digest of the canonical MCP tools/list schema from mcp-lock.json. Omit to read or auto-pin the current live digest; pass a 64-hex digest to enforce zero-drift gating.",
            "maxLength": 128,
            "minLength": 0,
            "type": "string"
          },
          "target": {
            "description": "Public HTTPS URL of the remote MCP server, A2A agent, or x402 endpoint to inspect (e.g. 'https://tandem.ac/mcp'). Private and loopback IPs are blocked.",
            "examples": [
              "https://agentdiet-72343955726.us-central1.run.app/mcp"
            ],
            "maxLength": 512,
            "minLength": 8,
            "type": "string"
          }
        },
        "required": [
          "target"
        ],
        "type": "object"
      },
      "name": "assay_preflight"
    },
    {
      "description": "Register a new remote MCP, A2A, or x402 endpoint or refresh its public Assay Observatory dossier by running a live HTTP, agent-card, and JSON-RPC tools/list inspection without policy gating. Target must be a public HTTPS origin (private IPs are rejected with a 400 error); each call appends a timestamped observation and increments rug_pulls if tools_hash drifted since the prior stored observation. Writes to the public ledger; first 5 calls/IP are free and retries are idempotent on steady schemas. Use to onboard or re-index a server; for pre-call allow/deny gating use assay_preflight; for historical observations or hash pinning use assay_get_ledger_policy; for post-payment disputes use assay_verify_delivery. Example: target='https://agentdiet-72343955726.us-central1.run.app/mcp'.",
      "inputSchema": {
        "additionalProperties": false,
        "examples": [
          {
            "target": "https://agentdiet-72343955726.us-central1.run.app/mcp"
          }
        ],
        "properties": {
          "target": {
            "description": "Public HTTPS URL of the remote MCP server, A2A agent, or x402 endpoint to inspect (e.g. 'https://tandem.ac/mcp'). Private and loopback IPs are blocked.",
            "examples": [
              "https://agentdiet-72343955726.us-central1.run.app/mcp"
            ],
            "maxLength": 512,
            "minLength": 8,
            "type": "string"
          }
        },
        "required": [
          "target"
        ],
        "type": "object"
      },
      "name": "assay_probe"
    },
    {
      "description": "Audit a paid x402 or A2A provider after payment to confirm delivery or prove an SLA breach with an HMAC-SHA256 signed receipt. Passing status_code >= 500 forces verdict='sla_breach_confirmed' even if the live re-probe succeeds, while passing tx_hash cryptographically binds your Base or Solana payment signature into the receipt (omitting tx_hash still verifies liveness and issues a probe-bound receipt). Non-destructive; first 5 calls/IP are free and failed target connections do not throw tool errors. Use only after paying a provider; before payment use assay_preflight; for public indexing use assay_probe; for policy history use assay_get_ledger_policy. Example: target='https://agentdiet-72343955726.us-central1.run.app/mcp'.",
      "inputSchema": {
        "additionalProperties": false,
        "examples": [
          {
            "target": "https://agentdiet-72343955726.us-central1.run.app/mcp"
          }
        ],
        "properties": {
          "status_code": {
            "description": "Optional HTTP status code returned by the paid endpoint (e.g. '200', '502', '504'). Codes >= 500 force verdict='sla_breach_confirmed' even if a retry probe succeeds.",
            "maxLength": 8,
            "minLength": 0,
            "type": "string"
          },
          "target": {
            "description": "Public HTTPS URL of the remote MCP server, A2A agent, or x402 endpoint to inspect (e.g. 'https://tandem.ac/mcp'). Private and loopback IPs are blocked.",
            "examples": [
              "https://agentdiet-72343955726.us-central1.run.app/mcp"
            ],
            "maxLength": 512,
            "minLength": 8,
            "type": "string"
          },
          "tx_hash": {
            "description": "Optional on-chain payment transaction hash (0x Base USDC hash or base58 Solana signature) to bind into the signed SLA receipt. Omit to run an unsigned post-call SLA check.",
            "maxLength": 128,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "target"
        ],
        "type": "object"
      },
      "name": "assay_verify_delivery"
    }
  ]
}

What the leaf hashes

{"body":"65ee0e59d8e073b78cef4fb42be411924da207d1520acc6a05559305b4045132","id":564955,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793137975865926,"prev":null,"subject":"45e0529f-4a3b-4b10-80f8-ce5ba849d2ab","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. 0x75196362f2dfbdbd315762dee01b17ab2f81c8382420fdd56296e8e72a2b550c
  2. 0xfd3295a0addd576ea83f6aaaaf87a9df3e6eb1bec9162064df8ede70a7cd6756
  3. 0xc9482cb235bf2e523ec90e0f97c91f518e6971fefcac36292d865e5eeb17b684
  4. 0x51602e5c237d550336c824ba92ec0d827ba751d3a77197cb93ac2fdde1ac6360
  5. 0xd8a3d090055eff4d7041f5caaedcb1e66e1824f596932e76df7c3a2f6a55ca6b
  6. 0x40221059822e65120dc8b42576f7da9d1ff6b8983b797c90825c73169fa256b1
  7. 0x5de98685c9ffcf3806944dc32af92a248115a2f145a4560de6f821409599c7f5
  8. 0x073551750a392615ef3cea9d427e2e6a91082958851e1bd8b9415d2cf34ebe9e
  9. 0xba7de18e3db1800578378224c00ca26d423b0f97dd49933e4ee71497ec6ad08e
  10. 0x5c556491116c854e5d6a098ecf659f83d1609c9931538e01910eedcdf5460968
  11. 0xbadb694e30e3b4990c80e04bb35fb64efec74cc8e401fd0ef8cb0e7b20c88505
  12. 0x58a1b7d7965722efb70d69acfb10b39e77f817864b8d4b4069d33ff29884a3bd
  13. 0x4094bd5bc2ab60e4518d1ee8a13455a69d7484ea62ecdca2618d0f39d3403503
  14. 0x9848c068b1371232529d2b5738fdc45b854c57da041b69ea7c9e112b14e2d9d1
  15. 0x275720ecabb68df33eee92ae4fd70572a8d952d6c61c061c2869cfc3217aa5c5
  16. 0x23cf9bb4337ee8be7fcae368fd69d24c62c11fb45882127b4cd919bb96a19996
  17. 0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON