addrbookFor publishers
← The evidence ledger

Evidence row 800148

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 5f44df91-7a27-404f-a78b-b169c0548c4d
Recorded
Previous row
#510971
Body SHA-256
e120d51092c449c5fdad55f8ddcadc2bd202c9cc9ffec8f7fccd7c860952c792
Leaf
0x61f1cb4ce87c851b77e4f126213fea3aaccc30d65c620a4f94b4556e32cfdaf6

What was observed

{
  "count": 8,
  "tools": [
    {
      "description": "List authors linked to one claim.\n\n    Use this when you have a claim id and need the people linked to it.\n    Returns author id, name, and orcid. The list is empty when none are linked.\n    Example: get_authors(claim_id=\"claim-attention\").\n    Example: get_authors(claim_id=\"<id from query_claims>\").\n    ",
      "inputSchema": {
        "properties": {
          "claim_id": {
            "description": "Claim id returned by a search tool. Example: claim-attention.",
            "examples": [
              "claim-attention"
            ],
            "title": "Claim Id",
            "type": "string"
          }
        },
        "required": [
          "claim_id"
        ],
        "title": "get_authorsArguments",
        "type": "object"
      },
      "name": "get_authors"
    },
    {
      "description": "List claims stored as contradicting one claim.\n\n    Returns each opposing claim id, status, evidence strength, and opposition strength.\n    Example: get_contradictions(claim_id=\"<id from query_claims>\").\n    ",
      "inputSchema": {
        "properties": {
          "claim_id": {
            "description": "Claim id to inspect.",
            "title": "Claim Id",
            "type": "string"
          }
        },
        "required": [
          "claim_id"
        ],
        "title": "get_contradictionsArguments",
        "type": "object"
      },
      "name": "get_contradictions"
    },
    {
      "description": "Provenance for one claim. Excerpts are short unless full_text is true.\n\n    Use this after a search when you have a claim id and need the papers behind it.\n    Example: get_evidence(claim_id=\"claim-attention\").\n    Example: get_evidence(claim_id=\"claim-attention\", full_text=true).\n    ",
      "inputSchema": {
        "properties": {
          "claim_id": {
            "description": "Claim id returned by a search tool. Example: claim-attention.",
            "examples": [
              "claim-attention"
            ],
            "title": "Claim Id",
            "type": "string"
          },
          "full_text": {
            "default": false,
            "description": "Return stored excerpts without shortening. Example: false.",
            "examples": [
              false
            ],
            "title": "Full Text",
            "type": "boolean"
          }
        },
        "required": [
          "claim_id"
        ],
        "title": "get_evidenceArguments",
        "type": "object"
      },
      "name": "get_evidence"
    },
    {
      "description": "List innovation flags, strongest first.\n\n    Use this when you want links between claims rather than the claims themselves.\n    Each flag includes flag_type. lexical_association is exploratory shared-term context.\n    scientific_connection and research_hypothesis are evaluated relationships.\n    Returns flag id, domain, summary, strength, flag_type, connected_domain, the claim ids on each path, and a claims array in that same order.\n    Each claims item has claim_id, statement, and evidence strength. Full evidence stays on get_evidence.\n    connected_domain is the primary domain of the claim that does not match the flag domain.\n    It is null when the claims share a primary domain.\n    Optional cross_domain_only, when true, returns only flags whose claims sit in different primary domains.\n    Repeated claim paths return once, keeping the strongest flag for that pair.\n    Example: get_innovation_flags(domain=\"ai-ml\", min_strength=0.5, limit=10).\n    Example: get_innovation_flags(domain=\"quantum\", min_strength=0.8, limit=5).\n    Example: get_innovation_flags(domain=\"consciousness\", cross_domain_only=True, limit=10).\n    ",
      "inputSchema": {
        "properties": {
          "cross_domain_only": {
            "default": false,
            "description": "When true, return only flags whose connected_domain is set. Default false.",
            "examples": [
              false
            ],
            "title": "Cross Domain Only",
            "type": "boolean"
          },
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Restrict flags to one domain. Example: ai-ml.",
            "examples": [
              "ai-ml"
            ],
            "title": "Domain"
          },
          "limit": {
            "default": 20,
            "description": "Page size. Example: 10.",
            "examples": [
              10
            ],
            "maximum": 50,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "min_strength": {
            "anyOf": [
              {
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Drop flags below this strength, from 0 to 1. Example: 0.5.",
            "examples": [
              0.5
            ],
            "title": "Min Strength"
          },
          "offset": {
            "default": 0,
            "description": "Number of hits to skip. Example: 0.",
            "examples": [
              0
            ],
            "minimum": 0,
            "title": "Offset",
            "type": "integer"
          }
        },
        "title": "get_innovation_flagsArguments",
        "type": "object"
      },
      "name": "get_innovation_flags"
    },
    {
      "description": "List claims whose last_updated is at or after a timestamp.\n\n    Use this to read claims that changed after a time you already checked.\n    Returns claim id, status, evidence strength, and a shortened excerpt.\n    Example: get_updates(since=\"2026-01-01T00:00:00Z\", domain=\"ai-ml\", limit=20).\n    Example: get_updates(since=\"2026-10-01T00:00:00Z\", domain=\"consciousness\", offset=20).\n    ",
      "inputSchema": {
        "properties": {
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Restrict results to one domain. Example: ai-ml.",
            "examples": [
              "ai-ml"
            ],
            "title": "Domain"
          },
          "limit": {
            "default": 20,
            "description": "Page size. Example: 20.",
            "examples": [
              20
            ],
            "maximum": 50,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "description": "Number of hits to skip. Example: 0.",
            "examples": [
              0
            ],
            "minimum": 0,
            "title": "Offset",
            "type": "integer"
          },
          "since": {
            "description": "ISO-8601 timestamp. Claims updated at or after this time. Example: 2026-01-01T00:00:00Z.",
            "examples": [
              "2026-01-01T00:00:00Z"
            ],
            "format": "date-time",
            "title": "Since",
            "type": "string"
          }
        },
        "required": [
          "since"
        ],
        "title": "get_updatesArguments",
        "type": "object"
      },
      "name": "get_updates"
    },
    {
      "description": "Search claim statements and excerpts.\n\n    A domain keeps claims whose primary domain is that value or one of its\n    aliases, such as cs.LG for ai-ml. Evidence strength orders those hits.\n    cross_domain also keeps claims from other domains that carry the domain\n    as a secondary tag. When the query is one domain keyword and domain is\n    omitted, claims in that domain come first.\n\n    Use this when you have keywords or a domain and want the strongest matching claims.\n    Returns claim id, status, evidence strength, and a shortened excerpt.\n    Example: query_claims(query=\"transformer\", domain=\"ai-ml\", limit=5).\n    Example: query_claims(query=\"United States\", domain=\"data-protection\", limit=5).\n    ",
      "inputSchema": {
        "$defs": {
          "AssertionType": {
            "enum": [
              "asserted",
              "hedged",
              "conditional"
            ],
            "title": "AssertionType",
            "type": "string"
          },
          "ClaimFilters": {
            "description": "Optional status, strength, and assertion type for a claim search.",
            "properties": {
              "assertion_type": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/AssertionType"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Keep one assertion type: asserted, hedged, or conditional. Example: asserted.",
                "examples": [
                  "asserted"
                ]
              },
              "min_strength": {
                "anyOf": [
                  {
                    "maximum": 1,
                    "minimum": 0,
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Drop claims below this evidence strength, from 0 to 1. Example: 0.6.",
                "examples": [
                  0.6
                ],
                "title": "Min Strength"
              },
              "status": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ClaimStatus"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Keep one status: consensus, contested, or outdated. Example: consensus.",
                "examples": [
                  "consensus"
                ]
              }
            },
            "title": "ClaimFilters",
            "type": "object"
          },
          "ClaimStatus": {
            "enum": [
              "consensus",
              "contested",
              "outdated"
            ],
            "title": "ClaimStatus",
            "type": "string"
          }
        },
        "properties": {
          "cross_domain": {
            "default": false,
            "description": "Also return claims from other primary domains that carry this domain as a secondary tag. Default false.",
            "examples": [
              false
            ],
            "title": "Cross Domain",
            "type": "boolean"
          },
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Primary domain or an alias of it. Example: ai-ml.",
            "examples": [
              "ai-ml"
            ],
            "title": "Domain"
          },
          "filters": {
            "anyOf": [
              {
                "$ref": "#/$defs/ClaimFilters"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional status, minimum evidence strength, and assertion type. Example: {\"status\": \"consensus\", \"min_strength\": 0.6}.",
            "examples": [
              {
                "min_strength": 0.6,
                "status": "consensus"
              }
            ]
          },
          "limit": {
            "default": 20,
            "description": "Page size. Example: 5.",
            "examples": [
              5
            ],
            "maximum": 50,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "description": "Number of hits to skip. Example: 0.",
            "examples": [
              0
            ],
            "minimum": 0,
            "title": "Offset",
            "type": "integer"
          },
          "query": {
            "description": "Text matched against the claim statement and its excerpt. Example: transformer.",
            "examples": [
              "transformer"
            ],
            "title": "Query",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "title": "query_claimsArguments",
        "type": "object"
      },
      "name": "query_claims"
    },
    {
      "description": "List law records for one jurisdiction and area of law.\n\n    Use this when you want jurisdiction-scoped records. Omitting jurisdiction returns science claims.\n    Returns record id, status, evidence strength, a shortened excerpt, jurisdiction, and area of law.\n    Example: query_law(jurisdiction=\"DE\", area_of_law=\"data-protection\", query=\"consent\", limit=5).\n    Example: query_law(query=\"transformer\", limit=5).\n    ",
      "inputSchema": {
        "properties": {
          "area_of_law": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Area of law slug. Example: data-protection.",
            "examples": [
              "data-protection"
            ],
            "title": "Area Of Law"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Jurisdiction code. Example: DE. Omit it to search science.",
            "examples": [
              "DE"
            ],
            "title": "Jurisdiction"
          },
          "limit": {
            "default": 20,
            "description": "Page size. Example: 5.",
            "examples": [
              5
            ],
            "maximum": 50,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "query": {
            "default": "",
            "description": "Text matched against the statement and its excerpt. Example: consent.",
            "examples": [
              "consent"
            ],
            "title": "Query",
            "type": "string"
          }
        },
        "title": "query_lawArguments",
        "type": "object"
      },
      "name": "query_law"
    },
    {
      "description": "Find claims from a natural-language question.\n\n    A question is matched on its content phrases. When that match is empty,\n    the longest content terms are searched as keywords. Those hits stay on\n    strategy question, set fallback to keyword, and are ordered by how many\n    question terms appear in the statement or excerpt. A keyword stays on\n    the lexical match.\n\n    A domain keeps claims whose primary domain is that value or one of its\n    aliases. cross_domain also keeps claims from other domains that carry\n    the domain as a secondary tag.\n\n    Use this when the input is a question instead of keywords.\n    Example: search_smart(natural_language=\"How do transformers handle long context?\", domain=\"ai-ml\", limit=5).\n    Example: search_smart(natural_language=\"What limits healthspan?\", domain=\"longevity\", limit=5).\n    ",
      "inputSchema": {
        "properties": {
          "cross_domain": {
            "default": false,
            "description": "Also return claims from other primary domains that carry this domain as a secondary tag. Default false.",
            "examples": [
              false
            ],
            "title": "Cross Domain",
            "type": "boolean"
          },
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Primary domain or an alias of it. Example: ai-ml.",
            "examples": [
              "ai-ml"
            ],
            "title": "Domain"
          },
          "limit": {
            "default": 10,
            "description": "Page size. Example: 5.",
            "examples": [
              5
            ],
            "maximum": 50,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "natural_language": {
            "description": "A question or description of the claims you want. Example: How do transformers handle long context?",
            "examples": [
              "How do transformers handle long context?"
            ],
            "title": "Natural Language",
            "type": "string"
          },
          "offset": {
            "default": 0,
            "description": "Number of hits to skip. Example: 0.",
            "examples": [
              0
            ],
            "minimum": 0,
            "title": "Offset",
            "type": "integer"
          }
        },
        "required": [
          "natural_language"
        ],
        "title": "search_smartArguments",
        "type": "object"
      },
      "name": "search_smart"
    }
  ]
}

What the leaf hashes

{"body":"e120d51092c449c5fdad55f8ddcadc2bd202c9cc9ffec8f7fccd7c860952c792","id":800148,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793218111643517,"prev":510971,"subject":"5f44df91-7a27-404f-a78b-b169c0548c4d","subject_kind":"endpoint"}

Proof

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

  1. 0x61f1ea23bb8af2ccfca16f198fa2dfd0e4e680449dcb8670c2af0521ca8c3fd9
  2. 0xc6243e200d3beaf0ec674afcb5b597b5b21fb21cc019bfc5945ecee5fae5da22
  3. 0xb9cca61e34fcc5eea25a63150c64d44248b16c00e5ae9d1391bf0eff77de0baa
  4. 0x7c0ca40deb7a1e5aec1fc71ac0a7aaa4180054619c4341ff1234b66ba9db2a16
  5. 0x11599798ddb9a83ddcfb61eb7d97a038028ef0762fd00ccc05e0c2f11cda52de
  6. 0x7876be62260b5d29cb2de1b7b2c68dff320752eb63a27774c913dad401c8d1e0
  7. 0xb7452fcd12912fad2169d3af33804337b377a57c268e1364e059c90ca8aab91d
  8. 0xd2739f4ca7b371d1584f99f79bccfb5bcfce0a7e52f2fe446bfa0d1092ad7624
  9. 0x115c4d17a5524611b0b77f19c05be010a2d562945b0c5d5b07cb4431b5bd54c6
  10. 0x28022a4aa884533f0c3eb9977e6a35df7fad4781bbe8655d9141297c38254826
  11. 0x4f4033e6838ac39f2b5b002d55b48236f4b2e5cce60cd6d6db991af9064574aa
  12. 0x8a656adb97b5c221e978024a90ab5a8c48723831c4afd91f0af3cb5d7b91ff1e
  13. 0x05b3d42cfeebe257d8d456af82d1a90957f371989ded6d869ae723454504d258
  14. 0x8db2587099a4011758c742fc2aad940742aa47abddf6007f131e0d5ab4a9e92b
  15. 0xe6054de1f67b1e6f15bcf16d2b6536cf35dd9705fdf6ce59853e79784693ab5f
  16. 0xa99a40fe210d675bb6ab72d4bb72ab40eb44ac345773c457fbe58e67a47b03df
  17. 0x7a743a0a09057bae687051274e1d45bf973bd36a1a4ba16a191b5d29e3bdfa2a
  18. 0xe027395fafb7fc41921c42ca0542524ea22204cbd5908b70b27f3d5fb26f5d0f
Day root
0x2c19037464cc4c493624565f01775d6446fc78eaa118fc6865bfe2bfca9ff78e
Chained
0xd1d7dee8322ceff8f4c8d83aa1fe4a4466825c2af1c97dbde3d35db61234f7be
Published
On Arc Testnet, block 69584042: 0x8bae2b1d097834c8b458513862d70d29ee807e98dc2e863b27250131c15b35ae

How to check it · This row as JSON