← The evidence ledger
Evidence row 587248
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint d7528fde-26c3-4c3d-bb63-15724b860496
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 3c5672fe9396b8d6ee92acce57d040a6df628ba765b4fb88a34a0f746cc2a612
- Leaf
- 0x0fcd4c964e49470e2e24a25248de1c01147a0647597ef3dc438c47887c3f1864
What was observed
{
"count": 12,
"tools": [
{
"description": "Decode what a transaction did: delegated heimdall decode plus `decoded_call` from the resolved target ABI when available. Prefer `decoded_call` for typed function/arg names, and read its provenance.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chain": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"description": "Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."
},
"rpc_url": {
"description": "Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids.",
"pattern": "^https?:\\/\\/\\S+$",
"type": "string"
},
"tx_hash": {
"description": "0x transaction hash.",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"chain",
"tx_hash"
],
"type": "object"
},
"name": "decode_tx"
},
{
"description": "Encode a function call to calldata (0x…) without sending anything.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "0x contract address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"args": {
"default": [],
"description": "Function arguments, in order. Pass uint values as decimal strings.",
"type": "array"
},
"chain": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"description": "Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."
},
"function": {
"description": "Function name, or full signature like \"transfer(address,uint256)\" if overloaded.",
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"rpc_url": {
"description": "Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids.",
"pattern": "^https?:\\/\\/\\S+$",
"type": "string"
},
"value": {
"description": "Native value in wei (decimal string), for payable functions.",
"pattern": "^\\d+$",
"type": "string"
}
},
"required": [
"chain",
"address",
"function"
],
"type": "object"
},
"name": "encode_call"
},
{
"description": "Return the CC0 selector commons as NDJSON. This can be large; prefer lookup_selector for normal agent workflows.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "export_registry"
},
{
"description": "List viem-backed chain aliases and ids. Use filters to find testnets, default-RPC chains, or a named chain before resolving contracts.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"has_default_rpc": {
"description": "When true, only chains gulltoppr can query without rpc_url.",
"type": "boolean"
},
"q": {
"description": "Search by chain id, name, alias, or native symbol; multi-word queries also match token-by-token and without whitespace.",
"type": "string"
},
"testnets": {
"description": "When true, only testnets; when false, only mainnets.",
"type": "boolean"
}
},
"type": "object"
},
"name": "list_chains"
},
{
"description": "Lookup gulltoppr-proven signatures for a 4-byte function/error selector or 32-byte event topic0. Prefer these over public 4byte guesses.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"selector": {
"description": "4-byte function/error selector or 32-byte event topic0.",
"pattern": "^0x([0-9a-fA-F]{8}|[0-9a-fA-F]{64})$",
"type": "string"
}
},
"required": [
"selector"
],
"type": "object"
},
"name": "lookup_selector"
},
{
"description": "Prepare a contract WRITE for the user to sign. Returns an UNSIGNED transaction, its simulation, a human-readable summary, safety metadata, warnings, a configured signing deeplink, and an EIP-1193 wallet request when signing is recommended. IMPORTANT: this tool NEVER signs or broadcasts. Present the summary + simulation + warnings to the user. Only hand them the `deeplink` or `wallet_request` when `safety.signing_recommended` is true. If `safety.risk_level` is high or blocked, make that explicit; blocked means do not send.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "0x contract address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"args": {
"default": [],
"description": "Function arguments, in order. Pass uint values as decimal strings.",
"type": "array"
},
"chain": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"description": "Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."
},
"from": {
"description": "The sender address (the user's wallet). No key is needed — nothing is signed.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"function": {
"description": "Function name, or full signature like \"transfer(address,uint256)\" if overloaded.",
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"rpc_url": {
"description": "Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids.",
"pattern": "^https?:\\/\\/\\S+$",
"type": "string"
},
"value": {
"description": "Native value in wei (decimal string), for payable functions.",
"pattern": "^\\d+$",
"type": "string"
}
},
"required": [
"chain",
"address",
"function",
"from"
],
"type": "object"
},
"name": "prepare_tx"
},
{
"description": "Call a view/pure function and get the decoded result. No wallet, no cost. Rejects state-mutating functions.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "0x contract address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"args": {
"default": [],
"description": "Function arguments, in order. Pass uint values as decimal strings.",
"type": "array"
},
"chain": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"description": "Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."
},
"function": {
"description": "Function name, or full signature like \"transfer(address,uint256)\" if overloaded.",
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"rpc_url": {
"description": "Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids.",
"pattern": "^https?:\\/\\/\\S+$",
"type": "string"
}
},
"required": [
"chain",
"address",
"function"
],
"type": "object"
},
"name": "read_contract"
},
{
"description": "Read selector commons counts by proof grade and bytecode-match index size.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "registry_stats"
},
{
"description": "Resolve a contract's interface from chain + address via a fallback ladder (Etherscan → Sourcify → proxy → heimdall decompile → 4byte). Returns a compact capability manifest (read vs write functions, the 'buttons'), proxy chain, token metadata, and PROVENANCE. ALWAYS read `provenance`: a `decompiled` ABI has synthetic function names — treat it with care and confirm intent before writing. Partial, proxy, and bytecode-match results lead with a WARNING before the JSON. The compact manifest/provenance is also returned as structuredContent. Use method_q/method_kind/method_limit for large ABIs. Raw ABI is omitted from MCP output to save tokens; use REST/SDK resolve_abi with include_abi=true if needed.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "0x contract address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"chain": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"description": "Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."
},
"method_kind": {
"description": "Restrict manifest methods to read, write, or all.",
"enum": [
"read",
"write",
"all"
],
"type": "string"
},
"method_limit": {
"description": "Maximum number of manifest methods to return after filtering.",
"maximum": 500,
"minimum": 0,
"type": "integer"
},
"method_q": {
"description": "Case-insensitive manifest method search across names, signatures, parameters, outputs, and hints.",
"type": "string"
},
"rpc_url": {
"description": "Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids.",
"pattern": "^https?:\\/\\/\\S+$",
"type": "string"
}
},
"required": [
"chain",
"address"
],
"type": "object"
},
"name": "resolve_abi"
},
{
"description": "Resolve an ENS/Basename to an address, or an address to its primary ENS/Basename. Pass chain=base for Basenames.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chain": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"description": "Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."
},
"name": {
"description": "An ENS/Basename (vitalik.eth, name.base.eth) or a 0x address.",
"minLength": 1,
"pattern": "\\S",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "resolve_name"
},
{
"description": "Read process-local resolver/rung/RPC counters for smoke checks and reliability dashboards.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "runtime_metrics"
},
{
"description": "Simulate a call and return success, gas, decoded return, and best-effort state diff / asset changes / logs. Provide a high-level call (address + function + args) or raw (to + data), never both.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "0x contract address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"args": {
"default": [],
"description": "Function arguments, in order. Pass uint values as decimal strings.",
"type": "array"
},
"chain": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"description": "Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."
},
"data": {
"description": "Raw form: calldata (0x-prefixed hex bytes).",
"pattern": "^0x([0-9a-fA-F]{2})*$",
"type": "string"
},
"from": {
"description": "The sender address (the user's wallet). No key is needed — nothing is signed.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"function": {
"description": "Function name, or full signature like \"transfer(address,uint256)\" if overloaded.",
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"rpc_url": {
"description": "Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids.",
"pattern": "^https?:\\/\\/\\S+$",
"type": "string"
},
"to": {
"$ref": "#/properties/address",
"description": "Raw form: target address."
},
"value": {
"description": "Native value in wei (decimal string), for payable functions.",
"pattern": "^\\d+$",
"type": "string"
}
},
"required": [
"chain",
"from"
],
"type": "object"
},
"name": "simulate"
}
]
}What the leaf hashes
{"body":"3c5672fe9396b8d6ee92acce57d040a6df628ba765b4fb88a34a0f746cc2a612","id":587248,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793147843039119,"prev":null,"subject":"d7528fde-26c3-4c3d-bb63-15724b860496","subject_kind":"endpoint"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.