{"id":587248,"recorded_at":"2026-10-28T00:37:23.039160Z","observed_at":"2026-10-28T00:37:23.039119Z","subject_kind":"endpoint","subject":"d7528fde-26c3-4c3d-bb63-15724b860496","kind":"mcp.tools","method":"probe.mcp/1","body":{"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"}]},"body_sha256":"3c5672fe9396b8d6ee92acce57d040a6df628ba765b4fb88a34a0f746cc2a612","prev_id":null,"leaf":"0x0fcd4c964e49470e2e24a25248de1c01147a0647597ef3dc438c47887c3f1864","leaf_text":"{\"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\"}","day":null,"proof":[]}