{"server":"io.github.portdeveloper/gulltoppr","count":12,"tools":[{"name":"decode_tx","title":"Explain a transaction","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.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","tx_hash"],"properties":{"chain":{"anyOf":[{"type":"string","minLength":1},{"type":"integer","exclusiveMinimum":0}],"description":"Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."},"rpc_url":{"type":"string","pattern":"^https?:\\/\\/\\S+$","description":"Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids."},"tx_hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"0x transaction hash."}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","tx_hash","source","cached","decoded","provenance"],"properties":{"chain":{"type":"integer"},"cached":{"type":"boolean"},"source":{"type":"string"},"decoded":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array"},{"type":"object","additionalProperties":{}},{"type":"null"}]},"tx_hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"0x transaction hash."},"provenance":{"type":"object","required":["source","confidence","verified","names_synthetic"],"properties":{"source":{"type":"string"},"verified":{"type":"boolean","const":false},"confidence":{"type":"string","const":"decompiled"},"names_synthetic":{"type":"boolean","const":true}},"additionalProperties":true},"decoded_call":{"anyOf":[{"type":"object","required":["to","function","signature","args","abi_for","provenance"],"properties":{"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."},"args":{"type":"array","items":{"type":"object","required":["name","type","value"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"$ref":"#/properties/decoded"}},"additionalProperties":true}},"abi_for":{"$ref":"#/properties/decoded_call/anyOf/0/properties/to"},"function":{"type":"string"},"signature":{"type":"string"},"provenance":{"type":"object","required":["source","confidence","verified","names_synthetic","natspec"],"properties":{"notes":{"type":"string"},"source":{"enum":["etherscan","sourcify","proxy-impl","bytecode-match","heimdall-decompiled","4byte"],"type":"string"},"natspec":{"type":"boolean"},"verified":{"type":"boolean"},"confidence":{"enum":["verified","partial","decompiled","selector-only"],"type":"string"},"bytecode_match":{"type":"object","required":["chain","address","source","confidence"],"properties":{"chain":{"type":"integer"},"source":{"$ref":"#/properties/decoded_call/anyOf/0/properties/provenance/properties/source"},"address":{"$ref":"#/properties/decoded_call/anyOf/0/properties/to"},"confidence":{"$ref":"#/properties/decoded_call/anyOf/0/properties/provenance/properties/confidence"}},"additionalProperties":true},"names_synthetic":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true},{"type":"null"}]}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"encode_call","title":"Encode a function call","description":"Encode a function call to calldata (0x…) without sending anything.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","address","function"],"properties":{"args":{"type":"array","default":[],"description":"Function arguments, in order. Pass uint values as decimal strings."},"chain":{"anyOf":[{"type":"string","minLength":1},{"type":"integer","exclusiveMinimum":0}],"description":"Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."},"value":{"type":"string","pattern":"^\\d+$","description":"Native value in wei (decimal string), for payable functions."},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."},"rpc_url":{"type":"string","pattern":"^https?:\\/\\/\\S+$","description":"Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids."},"function":{"type":"string","pattern":"\\S","minLength":1,"description":"Function name, or full signature like \"transfer(address,uint256)\" if overloaded."}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["data","function_signature"],"properties":{"data":{"type":"string","pattern":"^0x([0-9a-fA-F]{2})*$","description":"Raw form: calldata (0x-prefixed hex bytes)."},"function_signature":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"export_registry","title":"Export selector commons","description":"Return the CC0 selector commons as NDJSON. This can be large; prefer lookup_selector for normal agent workflows.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"list_chains","title":"List supported chains","description":"List viem-backed chain aliases and ids. Use filters to find testnets, default-RPC chains, or a named chain before resolving contracts.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"q":{"type":"string","description":"Search by chain id, name, alias, or native symbol; multi-word queries also match token-by-token and without whitespace."},"testnets":{"type":"boolean","description":"When true, only testnets; when false, only mainnets."},"has_default_rpc":{"type":"boolean","description":"When true, only chains gulltoppr can query without rpc_url."}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chains"],"properties":{"chains":{"type":"array","items":{"type":"object","required":["id","name","aliases","testnet","has_default_rpc","native_currency"],"properties":{"id":{"type":"integer","exclusiveMinimum":0},"name":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"}},"testnet":{"type":"boolean"},"default_rpc_url":{"type":"string","pattern":"^https?:\\/\\/\\S+$","description":"Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids."},"has_default_rpc":{"type":"boolean"},"native_currency":{"type":"object","required":["name","symbol","decimals"],"properties":{"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer","minimum":0}},"additionalProperties":true},"block_explorer_url":{"type":"string","format":"uri"}},"additionalProperties":true}}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"lookup_selector","title":"Lookup selector commons","description":"Lookup gulltoppr-proven signatures for a 4-byte function/error selector or 32-byte event topic0. Prefer these over public 4byte guesses.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["selector"],"properties":{"selector":{"type":"string","pattern":"^0x([0-9a-fA-F]{8}|[0-9a-fA-F]{64})$","description":"4-byte function/error selector or 32-byte event topic0."}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["selector","entries"],"properties":{"entries":{"type":"array","items":{"type":"object","required":["kind","signature","proof"],"properties":{"kind":{"enum":["function","event","error"],"type":"string"},"chain":{"type":"integer","exclusiveMinimum":0},"proof":{"enum":["verified-source","keccak-proven"],"type":"string"},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."},"abi_item":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array"},{"type":"object","additionalProperties":{}},{"type":"null"}]},"signature":{"type":"string"}},"additionalProperties":true}},"selector":{"type":"string","pattern":"^0x([0-9a-fA-F]{8}|[0-9a-fA-F]{64})$","description":"4-byte function/error selector or 32-byte event topic0."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"prepare_tx","title":"Prepare an unsigned transaction (hand-off)","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.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","address","function","from"],"properties":{"args":{"type":"array","default":[],"description":"Function arguments, in order. Pass uint values as decimal strings."},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"The sender address (the user's wallet). No key is needed — nothing is signed."},"chain":{"anyOf":[{"type":"string","minLength":1},{"type":"integer","exclusiveMinimum":0}],"description":"Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."},"value":{"type":"string","pattern":"^\\d+$","description":"Native value in wei (decimal string), for payable functions."},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."},"rpc_url":{"type":"string","pattern":"^https?:\\/\\/\\S+$","description":"Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids."},"function":{"type":"string","pattern":"\\S","minLength":1,"description":"Function name, or full signature like \"transfer(address,uint256)\" if overloaded."}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["unsigned_tx","simulation","human_summary","deeplink","warnings","safety"],"properties":{"safety":{"type":"object","required":["signing_recommended","risk_level","requires_human_confirmation","reasons"],"properties":{"reasons":{"type":"array","items":{"enum":["abi_names_inferred","proxy","simulation_failed","native_value","spending_approval","asset_outflow"],"type":"string"}},"risk_level":{"enum":["low","medium","high","blocked"],"type":"string"},"signing_recommended":{"type":"boolean"},"requires_human_confirmation":{"type":"boolean"}},"additionalProperties":true},"deeplink":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"}},"simulation":{"type":"object","required":["success","gas_used","state_diff","asset_changes","logs"],"properties":{"logs":{"type":"array"},"revert":{},"success":{"type":"boolean"},"gas_used":{"type":"integer","minimum":0},"state_diff":{"type":"array"},"return_value":{},"asset_changes":{"type":"array"}},"additionalProperties":true},"unsigned_tx":{"type":"object","required":["chainId","to","from","data","value"],"properties":{"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."},"gas":{"type":"string","pattern":"^\\d+$"},"data":{"type":"string","pattern":"^0x([0-9a-fA-F]{2})*$","description":"Raw form: calldata (0x-prefixed hex bytes)."},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"The sender address (the user's wallet). No key is needed — nothing is signed."},"value":{"type":"string","pattern":"^\\d+$"},"chainId":{"type":"integer"}},"additionalProperties":true},"human_summary":{"type":"string"},"wallet_request":{}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"read_contract","title":"Read a contract (view/pure)","description":"Call a view/pure function and get the decoded result. No wallet, no cost. Rejects state-mutating functions.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","address","function"],"properties":{"args":{"type":"array","default":[],"description":"Function arguments, in order. Pass uint values as decimal strings."},"chain":{"anyOf":[{"type":"string","minLength":1},{"type":"integer","exclusiveMinimum":0}],"description":"Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."},"rpc_url":{"type":"string","pattern":"^https?:\\/\\/\\S+$","description":"Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids."},"function":{"type":"string","pattern":"\\S","minLength":1,"description":"Function name, or full signature like \"transfer(address,uint256)\" if overloaded."}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["decoded","raw","function_signature"],"properties":{"raw":{"type":"string","pattern":"^0x([0-9a-fA-F]{2})*$","description":"Raw form: calldata (0x-prefixed hex bytes)."},"decoded":{"type":"array"},"function_signature":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"registry_stats","title":"Registry stats","description":"Read selector commons counts by proof grade and bytecode-match index size.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["selectors","bytecodes"],"properties":{"bytecodes":{"type":"integer","minimum":0},"selectors":{"type":"object","additionalProperties":{"type":"integer","minimum":0}}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"resolve_abi","title":"Resolve contract ABI","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.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","address"],"properties":{"chain":{"anyOf":[{"type":"string","minLength":1},{"type":"integer","exclusiveMinimum":0}],"description":"Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."},"rpc_url":{"type":"string","pattern":"^https?:\\/\\/\\S+$","description":"Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids."},"method_q":{"type":"string","description":"Case-insensitive manifest method search across names, signatures, parameters, outputs, and hints."},"method_kind":{"enum":["read","write","all"],"type":"string","description":"Restrict manifest methods to read, write, or all."},"method_limit":{"type":"integer","maximum":500,"minimum":0,"description":"Maximum number of manifest methods to return after filtering."}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","address","interface","provenance","abi_for","cached","abi_omitted"],"properties":{"chain":{"type":"integer"},"proxy":{"type":"object","required":["is_proxy","pattern","hops"],"properties":{"hops":{"type":"array","items":{"type":"object","required":["address","role"],"properties":{"role":{"enum":["proxy","implementation","beacon","facet"],"type":"string"},"address":{"$ref":"#/properties/address"}},"additionalProperties":true}},"pattern":{"enum":["eip1967","uups","transparent","beacon","diamond","minimal-1167","unknown"],"type":"string"},"is_proxy":{"type":"boolean","const":true},"resolved_implementation":{"$ref":"#/properties/address","description":"0x contract address."}},"additionalProperties":true},"token":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"enum":["erc20","erc721","erc1155"],"type":"string"},{"type":"null"}]},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"}},"additionalProperties":true},"cached":{"type":"boolean"},"abi_for":{"$ref":"#/properties/address"},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."},"interface":{"type":"object","required":["reads","writes"],"properties":{"reads":{"type":"array","items":{"type":"object","required":["function","signature","inputs","outputs","names_synthetic"],"properties":{"hint":{"type":"string"},"inputs":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"type":"string"}},"additionalProperties":true}},"outputs":{"type":"array","items":{"$ref":"#/properties/interface/properties/reads/items/properties/inputs/items"}},"function":{"type":"string"},"signature":{"type":"string"},"names_synthetic":{"type":"boolean"}},"additionalProperties":true}},"writes":{"type":"array","items":{"type":"object","required":["function","signature","inputs","payable","names_synthetic"],"properties":{"hint":{"type":"string"},"inputs":{"type":"array","items":{"$ref":"#/properties/interface/properties/reads/items/properties/inputs/items"}},"payable":{"type":"boolean"},"function":{"type":"string"},"signature":{"type":"string"},"names_synthetic":{"type":"boolean"}},"additionalProperties":true}}},"additionalProperties":true},"provenance":{"type":"object","required":["source","confidence","verified","names_synthetic","natspec"],"properties":{"notes":{"type":"string"},"source":{"enum":["etherscan","sourcify","proxy-impl","bytecode-match","heimdall-decompiled","4byte"],"type":"string"},"natspec":{"type":"boolean"},"verified":{"type":"boolean"},"confidence":{"enum":["verified","partial","decompiled","selector-only"],"type":"string"},"bytecode_match":{"type":"object","required":["chain","address","source","confidence"],"properties":{"chain":{"type":"integer"},"source":{"$ref":"#/properties/provenance/properties/source"},"address":{"$ref":"#/properties/address"},"confidence":{"$ref":"#/properties/provenance/properties/confidence"}},"additionalProperties":true},"names_synthetic":{"type":"boolean"}},"additionalProperties":true},"abi_omitted":{"type":"boolean","const":true}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"resolve_name","title":"Resolve ENS/Basenames ⇄ address","description":"Resolve an ENS/Basename to an address, or an address to its primary ENS/Basename. Pass chain=base for Basenames.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name"],"properties":{"name":{"type":"string","pattern":"\\S","minLength":1,"description":"An ENS/Basename (vitalik.eth, name.base.eth) or a 0x address."},"chain":{"anyOf":[{"type":"string","minLength":1},{"type":"integer","exclusiveMinimum":0}],"description":"Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"name":{"type":"string"},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"runtime_metrics","title":"Runtime metrics","description":"Read process-local resolver/rung/RPC counters for smoke checks and reliability dashboards.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["uptime_seconds","metrics"],"properties":{"metrics":{"type":"object","additionalProperties":{"type":"object","required":["attempts","successes","misses","failures","total_latency_ms","avg_latency_ms","max_latency_ms","failure_rate"],"properties":{"misses":{"type":"integer","minimum":0},"attempts":{"type":"integer","minimum":0},"failures":{"type":"integer","minimum":0},"successes":{"type":"integer","minimum":0},"last_error":{"type":"string"},"failure_rate":{"type":"number","maximum":1,"minimum":0},"avg_latency_ms":{"type":"integer","minimum":0},"max_latency_ms":{"type":"integer","minimum":0},"total_latency_ms":{"type":"integer","minimum":0}},"additionalProperties":true}},"uptime_seconds":{"type":"integer","minimum":0}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"},{"name":"simulate","title":"Simulate a transaction","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.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","from"],"properties":{"to":{"$ref":"#/properties/address","description":"Raw form: target address."},"args":{"type":"array","default":[],"description":"Function arguments, in order. Pass uint values as decimal strings."},"data":{"type":"string","pattern":"^0x([0-9a-fA-F]{2})*$","description":"Raw form: calldata (0x-prefixed hex bytes)."},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"The sender address (the user's wallet). No key is needed — nothing is signed."},"chain":{"anyOf":[{"type":"string","minLength":1},{"type":"integer","exclusiveMinimum":0}],"description":"Chain alias from GET /v1/chains (for example \"ethereum\", \"base\", \"monad\", \"bsc\") or numeric EIP-155 chain id."},"value":{"type":"string","pattern":"^\\d+$","description":"Native value in wei (decimal string), for payable functions."},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."},"rpc_url":{"type":"string","pattern":"^https?:\\/\\/\\S+$","description":"Override HTTP(S) RPC URL. Required for chains with no default (e.g. local/31337) or custom EVM chain ids."},"function":{"type":"string","pattern":"\\S","minLength":1,"description":"Function name, or full signature like \"transfer(address,uint256)\" if overloaded."}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["success","gas_used","state_diff","asset_changes","logs"],"properties":{"logs":{"type":"array","items":{"type":"object","required":["address"],"properties":{"args":{"type":"object","additionalProperties":{}},"event":{"type":"string"},"address":{"$ref":"#/properties/state_diff/items/properties/address"}},"additionalProperties":true}},"revert":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string"},"decoded":{"type":"string"}},"additionalProperties":true},"success":{"type":"boolean"},"gas_used":{"type":"integer","minimum":0},"state_diff":{"type":"array","items":{"type":"object","required":["address","before","after"],"properties":{"after":{"type":"string"},"before":{"type":"string"},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"0x contract address."},"slot_label":{"type":"string"}},"additionalProperties":true}},"return_value":{"type":"object","required":["decoded","raw"],"properties":{"raw":{"type":"string","pattern":"^0x([0-9a-fA-F]{2})*$","description":"Raw form: calldata (0x-prefixed hex bytes)."},"decoded":{"type":"array"}},"additionalProperties":true},"asset_changes":{"type":"array","items":{"type":"object","required":["address","token","delta","kind"],"properties":{"kind":{"enum":["erc20","erc721","erc1155","native"],"type":"string"},"delta":{"type":"string","pattern":"^-?\\d+$"},"token":{"$ref":"#/properties/state_diff/items/properties/address"},"symbol":{"type":"string"},"address":{"$ref":"#/properties/state_diff/items/properties/address"}},"additionalProperties":true}}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-20T04:10:21.931Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/io.github.portdeveloper%2Fgulltoppr/connection?target=mcpServers","arguments":{"name":"io.github.portdeveloper/gulltoppr","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/io.github.portdeveloper%2Fgulltoppr","arguments":{"name":"io.github.portdeveloper/gulltoppr"}}]}