← The evidence ledger
Evidence row 276433
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 02d2afd7-8498-4784-9ebe-d479e88aa682
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 65ee0e59d8e073b78cef4fb42be411924da207d1520acc6a05559305b4045132
- Leaf
- 0x4c9fef084702373842262f3cd0ca552fc117dc6e794312d6f3559c7603823b85
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":276433,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793041253437807,"prev":null,"subject":"02d2afd7-8498-4784-9ebe-d479e88aa682","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x4c9ff0cc6534d2a2bdcf5d5502f37c6c706b8542731df8880db7e118a7f3c512
- 0xa958e017cf6cc8bd2c26c2044ee53fcf571ae3acd73c4c7e30fa9796bf8e3f32
- 0x52e344501731412f1b4baddda310a3248f2ce0f891fb8bf0ce79b3aaca29db69
- 0xb12e7e6abcce1cd93a0d3343c356283f21de372899ea9eaff3f6bb26111428b3
- 0x9a03fd7f6a94b2bea3fa6faa62f12d47913f493e351ecf6dfe73234b9dc05369
- 0xdca96f0f19813588d9a30a3b30406b47a696703ce5fa3ba1e5f370ec3b7c8295
- 0xf82e95142bceddb6a1b7b5a691bdfd89ff51304a64cf6de36446fe335e295a40
- 0xbd6996e0eb4eaa2ab6f578aec862a64f65acf166174eeaa4a503a8c9809505aa
- 0x6343b8ef0eb054a517227007b1c394c007c9fd7fc50d7bd17f8b70d9a1250bca
- 0x32dd5960bea005a040bbd1369f1894182fe94230e0a86fab637abe9785a5b0d9
- 0x4a13cd2655a1d8b39528cfa63482483519544a5eb593623bd8ca3eb463e263b6
- 0x9c16024747eaca32d09963ccb001059f75dcd9bb8dfc221e5234d54d2b3388d9
- 0x1ffd24a0422348bb2305058cc138e276511e1c074bf8139af5b773941f0e5de2
- 0x88e326a39b26e2c125306c9d3805d14398ace088bba9a2a0aa376b811cfb201a
- 0x2be1e80e065dd6b2cc75a7142be22225acd144ac975d70bf24b4f01fd76dc497
- 0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0
- 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae