SQD
Server Details
Query 130+ SQD Portal datasets across blockchains, including native Tron transactions and events.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- subsquid-labs/portal-mcp-server
- GitHub Stars
- 1
- Server Listing
- SQD Portal MCP Server
Available Tools
28 toolsportal_bitcoin_get_analyticsAnalyze Bitcoin activityARead-onlyInspect
Get the big picture for Bitcoin block, fee, and address activity over a recent or explicit window.
COMMON USER ASKS:
Bitcoin network snapshot
FIRST CHOICE FOR:
the big picture for Bitcoin right now
WHEN TO USE:
You want the big picture for Bitcoin right now.
You want a network-level Bitcoin snapshot.
You care about block cadence, fees, SegWit/Taproot adoption, or activity metrics.
DON'T USE:
You need raw transactions rather than network analytics.
EXAMPLES:
Bitcoin network snapshot: {"network":"bitcoin-mainnet","timeframe":"1h"}
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. | deep |
| network | No | Network name (default: bitcoin-mainnet) | bitcoin-mainnet |
| to_block | No | Ending block number | |
| timeframe | No | Time range: '1h' (~6 blocks), '6h' (~36 blocks), '24h' (~144 blocks). Default: '1h' | |
| from_block | No | Starting block number (use this OR timeframe) | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago". | |
| response_format | No | Response format: 'summary' (high-level metrics only), 'compact' (core sections, lighter payload), 'full' (complete analytics). | full |
| include_address_activity | No | Include unique address count and output value (requires extra queries, slower) |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds useful behavioral context by specifying what the analytics cover (block cadence, fees, SegWit/Taproot adoption, activity metrics) and hinting that the tool is network-level rather than transaction-level.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with headings and a strong front-loaded first sentence. Some redundancy exists across 'COMMON USER ASKS,' 'FIRST CHOICE FOR,' and 'WHEN TO USE,' but overall the content is efficiently organized and scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analytics tool with 100% schema coverage and an output schema, the description provides all necessary selection context, explicit usage guidance, and a concrete example. Nothing critical for calling this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents all 9 parameters thoroughly. The description adds a small usage example with network and timeframe, which slightly reinforces parameter usage, but it does not contribute substantial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb ('Get the big picture') and a precise resource ('Bitcoin block, fee, and address activity') over a recent or explicit window. It clearly distinguishes itself from transaction-level siblings like portal_bitcoin_query_transactions by focusing on network analytics rather than raw transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description has explicit 'WHEN TO USE' and 'DON'T USE' sections, providing clear conditions such as 'You want the big picture for Bitcoin right now' and 'You need raw transactions rather than network analytics.' This directly routes an agent to the appropriate sibling tool and prevents misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_bitcoin_query_transactionsFind Bitcoin transactionsARead-onlyInspect
Query raw Bitcoin transactions and optionally attach inputs and outputs inline.
COMMON USER ASKS:
Recent Bitcoin transactions
Attach inputs and outputs
WHEN TO USE:
You need raw Bitcoin transaction records.
You want the UTXO envelope without switching to separate input/output tools.
DON'T USE:
You only need a quick wallet or network summary.
EXAMPLES:
Recent Bitcoin transactions: {"network":"bitcoin-mainnet","timeframe":"1h","limit":20}
Attach inputs and outputs: {"network":"bitcoin-mainnet","timeframe":"1h","include_inputs":true,"include_outputs":true,"limit":10}
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max transactions to return (default: 20, max: 25) | |
| cursor | No | Continuation cursor from a previous response | |
| network | No | Network name (default: bitcoin-mainnet). Optional when continuing with cursor. | |
| to_block | No | Ending block number | |
| timeframe | No | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. | |
| from_block | No | Starting block number | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| finalized_only | No | Only query finalized blocks | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| include_inputs | No | Attach transaction inputs inline | |
| include_outputs | No | Attach transaction outputs inline | |
| response_format | No | Response format: defaults to 'compact' for chat-friendly output. Compact mode keeps inline inputs and outputs in a smaller shape when requested. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and non-destructive, so the description mainly adds useful context: it returns raw Bitcoin transaction records, supports inline inputs/outputs, and mentions UTXO envelope and response format defaults. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with headers, front-loaded purpose, and compact examples. A minor redundancy exists between 'COMMON USER ASKS' and 'WHEN TO USE', but overall it is efficient for a 12-param tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for an agent to decide when and how to invoke the tool: purpose, when to use, when not to use, and concrete example payloads are all present. The output schema exists, so the return format does not need to be described in prose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each parameter. The description adds value by showing example payloads, clarifying that include_inputs/include_outputs attach data inline, and noting the response_format default to 'compact' for chat-friendly output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Query raw Bitcoin transactions' and clarifies optional behavior of attaching inputs and outputs inline. This clearly distinguishes it from analytics, wallet summary, and network tools among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit 'WHEN TO USE' and 'DON'T USE' sections, giving direct guidance on when to select this tool over other alternatives. Examples further clarify concrete invocation scenarios such as recent transactions and attaching inputs/outputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_debug_hyperliquid_query_replica_commandsInspect Hyperliquid command recordsARead-onlyInspect
ADVANCED: Query Hyperliquid replica-command actions such as orders, cancels, and leverage updates.
COMMON USER ASKS:
Recent order action
WHEN TO USE:
You are debugging Hyperliquid replica-command records.
You need raw order-action events instead of fills or analytics.
DON'T USE:
You only need public trading activity; fills and analytics are usually the better fit.
EXAMPLES:
Recent order action: {"network":"hyperliquid-replica-cmds","timeframe":"5m","limit":1}
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | User wallet addresses (0x-prefixed, lowercase) | |
| limit | No | Max actions to return (1). Replica command payloads can contain large batches, so this exact one-record cursor page is the verified safe response budget. | |
| cursor | No | Continuation cursor from a previous response | |
| status | No | Filter by action status | |
| network | No | Network name (default: 'hyperliquid-replica-cmds'). Optional when continuing with cursor. | hyperliquid-replica-cmds |
| to_block | No | Ending block number | |
| timeframe | No | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. | |
| from_block | No | Starting block number (use this OR timeframe) | |
| action_type | No | Action types to filter | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| vault_address | No | Vault addresses (0x-prefixed, lowercase) | |
| finalized_only | No | Only query finalized blocks | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral context by emphasizing these are raw replica-command actions rather than derived fills/analytics, plus an ADVANCED warning and a concrete example invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with clear headings, front-loads the core query purpose, provides a concrete example, and has no filler. Every section earns its place, and the example is directly actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 13-parameter schema with full parameter descriptions, a rich output schema, and annotations covering read-only safety, the description provides sufficient orientation. It adds selection guidance, exclusions, and an example, so nothing critical is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, with every parameter individually described. The description adds a useful example JSON and mentions action types like orders, cancels, and leverage updates, but it does not substantially enrich parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource: 'Query Hyperliquid replica-command actions such as orders, cancels, and leverage updates.' It also differentiates from sibling tools by noting this is for raw order-action events rather than fills or analytics, making it easy to distinguish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
WHEN TO USE and DON'T USE sections explicitly state the usage context: debugging Hyperliquid replica-command records and needing raw order-action events. It also names excluded cases ('fills and analytics are usually the better fit'), giving clear alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_debug_query_blocksInspect raw blocksARead-onlyInspect
ADVANCED: Query raw block records directly for EVM, Solana, or Bitcoin.
COMMON USER ASKS:
Recent Base blocks
WHEN TO USE:
You are debugging Portal coverage or block-level fields.
You need raw block records instead of transactions, logs, or summaries.
DON'T USE:
You are answering a normal end-user question; prefer recent activity, time series, or raw transaction tools first.
EXAMPLES:
Recent Base blocks: {"network":"base-mainnet","timeframe":"1h","limit":5}
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max blocks to return (default: 20). Note: Lower default for MCP to reduce context usage. | |
| cursor | No | Continuation cursor from a previous response | |
| network | No | Network name or alias. Optional when continuing with cursor. | |
| to_block | No | Ending block number | |
| timeframe | No | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. | |
| from_block | No | Starting block number (use this OR timeframe) | |
| field_preset | No | Field preset for EVM datasets: 'minimal' (number+timestamp+gas), 'standard' (+hash+miner+size), 'full' (all block fields). Ignored for Solana/Bitcoin. | standard |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| finalized_only | No | Only query finalized blocks | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| include_l2_fields | No | Include L2-specific fields (auto-detected for L2 chains) |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond that: it flags the tool as 'ADVANCED,' emphasizes 'raw block records directly,' and clarifies that this is a debugging tool rather than a general-purpose data access tool. It does not deeply describe pagination or output quirks, but the output schema and parameter descriptions partially cover those.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly organized into short labeled sections: ADVANCED, COMMON USER ASKS, WHEN TO USE, DON'T USE, and EXAMPLES. Every section earns its place, there is no repetition of schema details, and the most operationally important guidance is front-loaded. It is longer than a single sentence but highly scannable and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 optional parameters, rich schema descriptions, an output schema, and annotations, the description is largely complete: it states when to use it, when not to use it, supported networks, and gives a realistic example. The only minor gap is that it does not clarify which parameters are effectively required when not resuming with a cursor, though the example and schema hints mitigate this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage across all 11 parameters, so the schema carries the semantic load. The description contributes an example showing network, timeframe, and limit, which helps illustrate usage, but it does not add important meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'ADVANCED: Query raw block records directly for EVM, Solana, or Bitcoin,' which names a specific verb, a clear resource, and supported networks. It differentiates itself from sibling tools by stating it returns raw block records 'instead of transactions, logs, or summaries,' so an agent can distinguish it from query_logs, query_transactions, and analytics tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'WHEN TO USE' and 'DON'T USE' sections, including concrete conditions like 'debugging Portal coverage or block-level fields' and directing normal end-user questions to 'recent activity, time series, or raw transaction tools first.' It also includes a concrete example ('Recent Base blocks') with actual parameter values, giving the agent a clear model invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_debug_resolve_time_to_blockMatch a time to a blockARead-onlyInspect
ADVANCED: Resolve a timestamp to the nearest indexed block or slot.
COMMON USER ASKS:
Resolve one hour ago on Base
Resolve an older time on Polkadot
WHEN TO USE:
You are debugging timestamp windows or building a manual block-range query.
You want to inspect exact versus estimated timestamp-to-block resolution.
DON'T USE:
You just want to query by time; most public tools already accept natural timestamps directly.
EXAMPLES:
Resolve one hour ago on Base: {"network":"base-mainnet","timestamp":"1h ago"}
Resolve an older time on Polkadot: {"network":"polkadot","timestamp":"2026-04-08T12:00:00Z"}
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network name or alias | |
| timestamp | Yes | Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago" |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and non-destructive, and the description adds that it resolves to the 'nearest indexed block or slot' and lets you 'inspect exact versus estimated' resolution. This gives useful behavioral nuance beyond the schema and annotations, without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every section earns its place: a one-sentence purpose, examples, explicit when/don't guidance, and fully-formed JSON examples. The key purpose and usage guidance are front-loaded, and the formatting makes the content scannable despite its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A direct resolution tool with an output schedule, full schema coverage, and annotations already present; the description supplies the missing user-facing context: common asks, use cases, exclusions, and concrete examples. Nothing critical for selecting and invoking the tool is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover both parameters fully, so the baseline is 3, but the description adds concrete example values and expected JSON for network ('base-mainnet','polkadot') and timestamps ('1h ago','ISO 8601'). These examples clarify how the otherwise generic 'network name or alias' should be used in practice.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation: 'Resolve a timestamp to the nearest indexed block or slot,' which clearly identifies the tool's purpose and resource. It distinguishes itself from general query tools by framing this as an ADVANCED, low-level resolution utility, though it does not explicitly separate itself from the sibling portal_debug_query_blocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
WHEN TO USE and DON'T USE sections give explicit decision guidance: use for debugging timestamp windows or manual block-range queries, and avoid when the user simply needs time-based queries because most public tools already accept natural timestamps. It does not name a specific sibling alternative, but the guidance is clear enough for an agent to route the call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_evm_get_analyticsAnalyze Ethereum and Base activityARead-onlyInspect
Get the big picture for network-wide EVM activity with ranked contracts and compact overview metrics.
COMMON USER ASKS:
Top contracts on Base
FIRST CHOICE FOR:
the big picture for activity on an EVM network like Base or Optimism
WHEN TO USE:
You want the big picture for activity on an EVM network.
You want the most active contracts on an EVM network.
You want an analytics-style network overview instead of a raw record list.
DON'T USE:
You need chart buckets over time rather than ranked entities.
EXAMPLES:
Top contracts on Base: {"network":"base-mainnet","timeframe":"1h","limit":10}
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. | deep |
| limit | No | Number of top contracts to return (default: 10, max: 100) | |
| cursor | No | Continuation cursor from a previous response | |
| network | No | Network name (supports short names: 'ethereum', 'polygon', 'base', etc.). Optional when continuing with cursor. | |
| timeframe | No | Optional natural time window like '1h' or '24h' | |
| num_blocks | No | Number of recent blocks to analyze when timeframe is omitted (default: 50, max: 10000) | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| include_details | No | Include sample transaction hashes for each contract |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is handled. The description adds useful behavioral context: it returns aggregates/ranked entities, is network-wide, and is an analytics-style overview rather than a raw record list. Enough is disclosed for a read-only analytics tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses clear section headers and concise bullets, front-loads the core purpose, and includes a compact example. Each section earns its place and the overall structure is easily scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 9 optional parameters, output schema, and read-only annotations, the description is complete enough: it states what the tool does, when to use it, what not to use it for, and provides a working example call. The agent has all the orientation needed beyond the rich schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all nine parameters. The description adds a illustrative example with network, timeframe, and limit, which is helpful, but it does not materially extend the parameter meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the big picture for network-wide EVM activity with ranked contracts and compact overview metrics.' It clearly differentiates this as an analytics/overview tool rather than a raw record or contract-specific tool, and the DON'T USE section reinforces the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit WHEN TO USE bullet and a clear DON'T-USE case ('chart buckets over time rather than ranked entities'), plus a concrete example. It does not name a specific sibling tool as the replacement alternative, so the guidance is strong but not fully explicit about which tool to choose instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_evm_get_contract_activityReview smart contract activityARead-onlyInspect
Summarize what one specific contract has been doing lately, including recent interactions, unique callers, and optional event activity.
COMMON USER ASKS:
Contract activity snapshot
FIRST CHOICE FOR:
what one specific contract has been doing lately on an EVM network
WHEN TO USE:
You want to ask "what has this contract been doing?" and get a contract-level answer.
You want a contract-centric activity summary instead of raw records.
You need top callers and interaction volume for one contract.
DON'T USE:
You need the underlying raw logs or transactions.
You want general recent network activity without naming one contract.
EXAMPLES:
Contract activity snapshot: {"network":"base-mainnet","contract_address":"0xabc...","timeframe":"24h"}
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. | deep |
| network | Yes | Network name or alias | |
| timeframe | No | Analysis period as timeframe or block count. Examples: '1h', '24h', '7d', '3d', '1000'. | 1000 |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| include_events | No | Include event log summary | |
| contract_address | Yes | Contract address to analyze |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, openWorldHint, and destructiveHint, so the safety profile is covered. The description adds behavioral context by clarifying that this returns a contract-level summary rather than raw records, and mentions optional event activity and top callers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections and front-loaded purpose. Some redundancy exists between 'FIRST CHOICE FOR' and the first 'WHEN TO USE' bullet, but overall it remains readable and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a rich input schema with 100% coverage, an output schema, and safety annotations, the description supplies the missing use-case context, exclusions, and a concrete example. Nothing essential for selecting or invoking this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds a useful example with network, contract_address, and timeframe, but does not need to add much parameter-level detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource: summarize what one specific contract has been doing lately, including interactions, unique callers, and optional event activity. It differentiates from sibling raw log/transaction tools by emphasizing a contract-centric, aggregated activity summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit WHEN TO USE conditions and a clear DON'T USE section covering raw logs/transactions and general network activity. This effectively routes an agent to the right tool without needing to inspect siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_evm_get_contract_deploymentFind a contract deploymentARead-onlyInspect
Locate the create trace and parent transaction that deployed a specific EVM contract address within a bounded window.
COMMON USER ASKS:
Find BAYC deployment
Find recent deployment
Find deployment from known range
FIRST CHOICE FOR:
who deployed this EVM contract
when was this contract deployed
what deployment transaction created this contract
WHEN TO USE:
You need the deployer, deployment block, deployment timestamp, or deployment transaction for an EVM contract.
You can provide a starting block/time window, a contract address, or a supported well-known contract alias such as BAYC/Bored Apes.
You want a deployment lookup instead of general contract activity.
DON'T USE:
You need all activity for a contract after deployment.
The contract is old and no block/time hint is available; provide from_block or from_timestamp first.
EXAMPLES:
Find BAYC deployment: {"network":"ethereum-mainnet","contract":"bored apes","from_block":12000000,"to_block":13000000,"scan_order":"earliest"}
Find recent deployment: {"network":"base-mainnet","contract_address":"0xabc...","search_depth_blocks":100000}
Find deployment from known range: {"network":"ethereum-mainnet","contract_address":"0xabc...","from_block":17000000,"to_block":17100000,"scan_order":"earliest"}
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | EVM network name or alias, e.g. base, ethereum, arbitrum. | |
| contract | No | Contract address or a supported well-known alias/name, e.g. "bayc" or "bored apes" on Ethereum. | |
| to_block | No | Optional ending block. Defaults to the indexed head. | |
| timeframe | No | Optional recent time window to search, e.g. "24h" or "7d". | |
| from_block | No | Optional starting block. Provide this for older contracts when the deployment is not recent. | |
| scan_order | No | Scan latest first for recent deployments, or earliest first when you provide a historical from_block. | latest |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "7d ago". | |
| max_scan_blocks | No | Safety cap for historical deployment scans. Default: scan the requested window up to 1,000,000 blocks. | |
| contract_address | No | Contract address whose deployment transaction should be located. | |
| search_depth_blocks | No | When no explicit range is given, search this many recent blocks backward from the indexed head. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive. The description goes beyond that by explaining that the tool returns the create trace and parent transaction, supports well-known aliases, requires a bounded window, and can scan latest-first or earliest-first. This gives the agent a solid behavioral model of what the tool does and what it returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but well-structured with scannable sections: summary, common asks, first choice, when/don't use, and examples. Each section earns its place by covering a distinct aspect of selection or invocation, though a few phrases are slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters, an output schema, read-only annotations, and a large sibling list, the description is highly complete. It provides real examples, boundary conditions for old contracts, alias handling, and explicitly contrasts with general contract activity. Nothing essential for an agent to invoke this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter coverage, so the baseline is 3. The description adds meaningful semantic guidance through examples showing how to combine contract aliases, from_block, to_block, scan_order, and search_depth_blocks, which helps the agent construct valid calls more confidently than schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Locate the create trace and parent transaction that deployed a specific EVM contract address within a bounded window.' It clearly distinguishes this from sibling tools like portal_evm_get_contract_activity by stating it is a deployment lookup rather than general contract activity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit 'WHEN TO USE' and 'DON'T USE' sections, giving an agent clear conditions for selecting this tool and excluding alternatives. It also names the key alternative behavior (general contract activity) and warns when the tool should not be used, such as when no block/time hint exists for an old contract.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_evm_get_ohlcChart token price historyARead-onlyInspect
Build chart-ready EVM OHLC candles plus a recent trade tape from supported DEX event sources, including Uniswap v2-style swaps, Uniswap v3/v4, and Aerodrome Slipstream.
COMMON USER ASKS:
Base Uniswap v2-style swap candles
Base Uniswap candles
Base Uniswap v4 candles
WHEN TO USE:
You need OHLC candles for supported EVM event-derived price sources.
You want a candle chart and recent trades instead of scalar time-series buckets.
You want a Dexscreener-style pool chart with hover-ready candle metadata and a trade tape.
DON'T USE:
You only need counts or scalar metrics over time.
You want a simple activity chart for a network rather than pool candles.
EXAMPLES:
Base Uniswap v2-style swap candles: {"network":"base-mainnet","source":"uniswap_v2_swap","pool_address":"0x","duration":"1h","interval":"5m","price_in":"auto","include_recent_trades":true}
Base Uniswap candles: {"network":"base-mainnet","source":"uniswap_v3_swap","pool_address":"0x","duration":"1h","interval":"5m","price_in":"auto"}
Base Uniswap v4 candles: {"network":"base-mainnet","source":"uniswap_v4_swap","pool_id":"0x","duration":"1h","interval":"5m","price_in":"auto","include_recent_trades":true}
Base Aerodrome Slipstream candles: {"network":"base-mainnet","source":"aerodrome_slipstream_swap","pool_address":"0x","duration":"1h","interval":"5m","price_in":"token1"}
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Optional Uniswap v4 LP fee in hundredths of a bip, e.g. 3000 for 0.30%. | |
| mode | No | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. | deep |
| cursor | No | Continuation cursor from a previous candle page | |
| source | No | Which event source to build candles from. Prefer swap-derived sources for factual trade prices and volumes. Uniswap v4 uses PoolManager Swap events filtered by pool_id, not a per-pool contract address. | uniswap_v3_swap |
| network | No | EVM network name (default: base-mainnet) | base-mainnet |
| pool_id | No | Uniswap v4 pool id (bytes32). Optional when you provide the full v4 pool key instead. | |
| duration | No | How much recent history to cover. Accepts compact durations like "1h" or natural phrases like "past 30 minutes". | 1h |
| interval | No | Candle interval. auto uses chart-friendly defaults like 1h→5m and 24h→1h. | auto |
| price_in | No | Choose which token the displayed price should be expressed in. auto picks the more human-readable quote side. | auto |
| base_token | No | Legacy orientation input. Prefer price_in instead. | |
| pool_address | No | Pool/pair contract address for address-keyed sources like Uniswap v3, Slipstream, or Sync-derived CPMM pools. | |
| tick_spacing | No | Optional Uniswap v4 tick spacing. Required with the rest of the pool key when deriving pool_id. | |
| hooks_address | No | Optional Uniswap v4 hooks contract address. Defaults to the zero address when omitted. | |
| token0_symbol | No | Optional token0 symbol label for summaries | |
| token1_symbol | No | Optional token1 symbol label for summaries | |
| token0_address | No | Optional token0 address to infer known decimals | |
| token1_address | No | Optional token1 address to infer known decimals | |
| token0_decimals | No | Optional token0 decimals for human-readable prices | |
| token1_decimals | No | Optional token1 decimals for human-readable prices | |
| currency0_address | No | Optional Uniswap v4 currency0 address. Use with currency1_address, fee, and tick_spacing to derive pool_id factually. | |
| currency1_address | No | Optional Uniswap v4 currency1 address. Use with currency0_address, fee, and tick_spacing to derive pool_id factually. | |
| recent_trades_limit | No | Maximum number of recent trades to return in the trade tape. | |
| pool_manager_address | No | Uniswap v4 PoolManager address. Optional on networks with a built-in official Uniswap deployment mapping. | |
| include_recent_trades | No | Include a recent trade tape for swap-derived sources when factual per-trade amounts are available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, and the description does not contradict them. It adds useful behavioral context beyond annotations: the data is event-derived from DEX swap sources, output includes a trade tape, and examples clarify that Uniswap v4 uses pool_id rather than a per-pool contract address.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but well-structured with COMMON USER ASKS, WHEN TO USE, DON'T USE, and EXAMPLES sections. Each section earns its place, and the core purpose is front-loaded in the first sentence. The formatting makes it easy to scan for both selection and invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 24 parameters, 0 required fields, a fully documented schema, and an output schema; the description complements this by explaining when to use the tool, when not to, and providing realistic invocation examples. Nothing essential for correct selection or basic invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds valuable parameter-selection examples: v4 uses pool_id, Aerodrome uses price_in='token1', and include_recent_trades toggles the trade tape. These examples help an agent map user intent to the correct parameter combinations beyond the schema's individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Build chart-ready EVM OHLC candles plus a recent trade tape from supported DEX event sources.' It names the concrete source families (Uniswap v2-style, v3/v4, Aerodrome Slipstream) and distinguishes the tool from scalar time-series tools. Common user asks and examples reinforce the exact scope without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WHEN TO USE and DON'T USE sections give explicit context: use it for candle charts and trade tapes, avoid it for counts or scalar metrics. It does not name specific sibling tools such as portal_get_time_series or portal_evm_get_analytics as alternatives, so the guidance is clear but not tool-explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_evm_query_logsFind smart contract eventsARead-onlyInspect
Query raw EVM logs with address/topic filters, common event aliases, earliest/latest scanning, and optional inline decoding.
COMMON USER ASKS:
Recent USDC Transfer logs
First recent USDC Transfer log
Latest ERC721/pass mint ID and tx hash
FIRST CHOICE FOR:
NFT or ERC721 mint lookups such as latest pass minted, token ID, and mint transaction hash
contract event questions where the user needs exact event evidence rather than wallet or transaction summaries
WHEN TO USE:
You need event logs filtered by contract or topic signature.
You want decoded log hints while still keeping the raw log shape available.
You want the first or last matching event in a bounded block/time window.
You want common event names such as transfer, approval, swap, mint, or burn instead of remembering topic0 hashes.
You need the latest ERC721/pass mint in a bounded deployment/recent window: filter Transfer events with topic1 as the zero address, use scan_order=latest, limit=1, and decode=true to expose decoded_log.decoded.token_id plus transaction_hash.
DON'T USE:
You only want token transfers, which are easier with the token-transfer tool.
EXAMPLES:
Recent USDC Transfer logs: {"network":"base-mainnet","timeframe":"1h","token_symbols":["USDC"],"event":"transfer","limit":20}
First recent USDC Transfer log: {"network":"base-mainnet","timeframe":"1h","token_symbols":["USDC"],"event":"transfer","scan_order":"earliest","limit":1}
Latest ERC721/pass mint ID and tx hash: {"network":"base-mainnet","from_block":46020000,"to_block":46100000,"addresses":["0xE4E70FdF2Fc1147a7f35c4c5de88E6BeA63eeAfA"],"event":"transfer","topic1":["0x0000000000000000000000000000000000000000000000000000000000000000"],"scan_order":"latest","decode":true,"include_transaction":true,"limit":1}
Decode logs inline: {"network":"ethereum-mainnet","timeframe":"1h","topic0":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],"decode":true,"limit":10}
| Name | Required | Description | Default |
|---|---|---|---|
| event | No | Common event alias or topic0 hash. Examples: "transfer", "approval", "swap", "sync", "deposit", "withdrawal". Merges with topic0. | |
| limit | No | Max logs to return (default: 20, max: 25). This verified ceiling keeps pages within MCP client budgets. | |
| cursor | No | Continuation cursor from a previous response | |
| decode | No | Decode known log signatures inline when topics/data are available | |
| topic0 | No | Event signatures (topic0). E.g., Transfer = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef | |
| topic1 | No | Topic1 filter (often: from address in Transfer, indexed parameter 1) | |
| topic2 | No | Topic2 filter (often: to address in Transfer, indexed parameter 2) | |
| topic3 | No | Topic3 filter (indexed parameter 3, chain-specific) | |
| network | No | Network name or alias. Optional when continuing with cursor. | |
| to_block | No | Ending block number. RECOMMENDED: <10k blocks for fast (<1s) responses. Larger ranges may be slow or timeout. | |
| addresses | No | Contract addresses to filter (e.g., ['0xUSDC...', '0xDAI...']). IMPORTANT: Always include this or topics for fast queries. | |
| timeframe | No | Natural time range such as '5m', '1h', '24h', '7d', or 'past 30 minutes'. Alternative to from_block/to_block. | |
| from_block | No | Starting block number (use this OR timeframe) | |
| scan_order | No | Which side of the block window to scan first. Use earliest for first-event questions. | latest |
| field_preset | No | Field preset: 'minimal' (address+topic0+block, ~80% smaller), 'standard' (all topics+timestamp), 'full' (includes raw data hex, largest). Use 'minimal' to reduce context usage. | standard |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| token_symbols | No | Token symbols to resolve via open token-list data and merge into addresses, e.g. ["USDC"]. | |
| finalized_only | No | Only query finalized blocks | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| max_scan_blocks | No | Maximum blocks to inspect for bounded earliest/latest scans. Sparse latest searches default to 25,000 blocks to stay within MCP request timeouts; raise only when deeper coverage is worth the added latency. | |
| response_format | No | Response format: defaults to 'compact' for chat-friendly output, or stays 'full' when inline transaction context is requested. Use 'summary' for counting or categorizing. | |
| include_transaction | No | Include parent transaction data | |
| include_transaction_logs | No | Include all logs from parent transactions | |
| max_token_symbol_matches | No | Maximum token-list matches to include per token symbol. Use addresses for deterministic single-contract filters. | |
| include_transaction_traces | No | Include traces for parent transactions |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered and the 'Query' language is consistent with them — no contradiction. The description adds useful behavioral context beyond annotations: decoded output shape (decoded_log.decoded.token_id), scan-order semantics for first/last searches, and the bounded-window scanning strategy. It doesn't cover cursor pagination behavior or rate limits, but with annotations carrying the safety burden and the schema carrying parameter-level performance warnings, this is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though longer than average, every section earns its place: COMMON USER ASKS anchors the tool to real queries, FIRST CHOICE FOR and DON'T USE differentiate from siblings, WHEN TO USE gives actionable criteria, and EXAMPLES provide copy-paste-ready payloads. The core definition is front-loaded in the first sentence, and the header-based structure makes the content skimmable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 25-parameter tool with an output schema present, the description covers all essential context: what the tool does, when it's the right choice, when it's not, how to construct the three main user ask patterns, and the exact recipe for the ERC721 mint lookup. The output schema handles return-value documentation, so its absence from the description is not a gap. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description raises it by showing real parameter combinations in four worked examples (token_symbols+event+timeframe, from_block/to_block+addresses+topic1+scan_order+decode+include_transaction+limit, and topic0+decode) that teach the agent how parameters interact for each user intent. This exceeds what the schema alone provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence is a specific verb+resource statement: 'Query raw EVM logs with address/topic filters, common event aliases, earliest/latest scanning, and optional inline decoding.' It names the exact scope and mechanism. It differentiates from siblings by stating it's for 'exact event evidence rather than wallet or transaction summaries' and explicitly says token-transfer queries are better served elsewhere.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains explicit WHEN TO USE (five concrete criteria), DON'T USE (names the token-transfer tool as the alternative), and FIRST CHOICE FOR sections. It even provides a canonical recipe for the latest-ERC721-mint use case with exact parameter settings. This is textbook-level routing guidance with no ambiguity left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_evm_query_token_transfersFind token transfersARead-onlyInspect
Query token-transfer activity on EVM without needing to remember Transfer event signatures. Best for "did token X move?" and asset-tracing questions.
COMMON USER ASKS:
Recent USDC transfers
First recent USDC transfer
WHEN TO USE:
You want ERC-20 style transfer activity filtered by token, sender, or recipient.
You want the fastest answer to a token movement question like "did USDC move?".
You are tracing suspicious, stolen, bridged, or exploit-related token movement and need sender/recipient/transaction pivots.
You want the easiest raw transfer query on an EVM network.
You need the first matching transfer in a bounded window without typing the Transfer topic hash.
DON'T USE:
You need arbitrary event logs beyond token transfers.
EXAMPLES:
Recent USDC transfers: {"network":"base-mainnet","timeframe":"1h","token_symbols":["USDC"],"limit":20}
First recent USDC transfer: {"network":"base-mainnet","timeframe":"1h","token_symbols":["USDC"],"scan_order":"earliest","limit":1}
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max transfers | |
| cursor | No | Continuation cursor from a previous response | |
| network | No | Network name or alias. Optional when continuing with cursor. | |
| to_block | No | Ending block number. RECOMMENDED: <10k blocks for fast responses. | |
| timeframe | No | Time range (e.g., '1h', '24h'). Alternative to block numbers. | |
| from_block | No | Starting block number | |
| scan_order | No | Which side of the block window to scan first. Use earliest for first-transfer questions. | latest |
| to_addresses | No | Recipient addresses | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| token_symbols | No | Token symbols to resolve via open token-list data, e.g. ["USDC"]. Merges with token_addresses. | |
| from_addresses | No | Sender addresses | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| token_addresses | No | Token contract addresses | |
| include_token_info | No | Include token metadata (symbol, decimals) inline. Avoids separate token metadata lookups. | |
| max_token_symbol_matches | No | Maximum token-list matches to include per token symbol. Use token_addresses for deterministic single-contract filters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: it resolves token symbols, supports 'earliest' scan order for first-transfer questions, and emphasizes speed and bounded windows. It does not fully describe pagination behavior, but the output schema and cursor parameter partially cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence summary, then uses clear labeled sections: COMMON USER ASKS, WHEN TO USE, DON'T USE, and EXAMPLES. Every section earns its place and the formatting makes it easy to scan for decision-making.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, open-world tool with 15 optional parameters, an output schema, and 100% schema coverage, the description provides complete contextual guidance. It covers when to use it, when not to, example payloads, and the key behavioral nuances like scan_order and symbol resolution. No critical guidance for correct usage is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by providing concrete example parameter sets for common user asks, such as using token_symbols, timeframe, scan_order, and limit together. This helps an agent map natural-language requests to actual parameter combinations beyond what the schema alone states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Query token-transfer activity on EVM'. It also distinguishes itself from the sibling query_logs by noting it works without needing to remember Transfer event signatures, so an agent can tell it apart from generic EVM log queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description has explicit 'WHEN TO USE' and 'DON'T USE' sections. It gives concrete conditions such as needing ERC-20 transfer activity filtered by token/sender/recipient, tracing stolen or suspicious transfers, and wanting the fastest raw transfer query, while excluding arbitrary event log queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_evm_query_transactionsFind Ethereum and Base transactionsARead-onlyInspect
Query raw EVM transactions with optional logs, traces, state-diff context, and evidence pivots for transaction-level investigations.
COMMON USER ASKS:
Recent Base transactions
Filter by sender
First EIP-2930 transaction from Berlin fork
WHEN TO USE:
You need raw transaction records on an EVM network.
You want chain-specific transaction fields or include flags that convenience tools do not expose.
You need exact transaction evidence for an investigation, including sender, receiver, transaction hash, logs, traces, or failed calls.
You need to find the first transaction matching a raw field condition such as transaction type 0x1 from a known block.
You need top-N raw transactions ranked by value, gas used, or effective gas price.
You need top senders or receivers from a bounded transaction window.
You want common method names such as transfer, approve, deposit, or withdraw instead of remembering sighashes.
You want calls to a token contract by symbol, such as transfer calls to USDC, without hardcoding token addresses.
DON'T USE:
You only need a quick recent feed or wallet-level summary.
EXAMPLES:
Recent Base transactions: {"network":"base-mainnet","timeframe":"1h","limit":20}
Filter by sender: {"network":"ethereum-mainnet","timeframe":"6h","from_addresses":["0xabc..."],"limit":20}
First EIP-2930 transaction from Berlin fork: {"network":"ethereum-mainnet","from_block":12244000,"transaction_type":"0x1","scan_order":"earliest","limit":1,"field_preset":"minimal"}
Largest recent calls to a resolved token contract: {"network":"base-mainnet","timeframe":"1h","to_token_symbols":["USDC"],"method":"transfer","order_by":"gas_used_desc","limit":5}
Top senders by transaction count: {"network":"base-mainnet","timeframe":"1h","aggregate_by":"sender","aggregate_metric":"count","limit":10}
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max transactions (default: 20, max: 25). This verified ceiling keeps pages within MCP client budgets. | |
| cursor | No | Continuation cursor from a previous response | |
| method | No | FILTER: Common EVM method alias or 4-byte sighash. Examples: "transfer", "approve", "transferFrom", "deposit", "withdraw". Merges with sighash. | |
| network | No | Network name or alias. Optional when continuing with cursor. | |
| sighash | No | FILTER: Function sighash (4-byte hex, e.g., '0xa9059cbb' for transfer). Optional if limit <=100. | |
| order_by | No | Optional ranking for top-N questions. Use value_desc, gas_used_desc, or effective_gas_price_desc. | chronological |
| to_block | No | Ending block number. RECOMMENDED: <5k blocks for fast (<500ms) responses. Larger ranges may be slow. | |
| timeframe | No | Natural time range such as '5m', '1h', '24h', '7d', or 'past 30 minutes'. Alternative to from_block/to_block. Large ranges are allowed with a low limit (<=100). | |
| from_block | No | Starting block number (use this OR timeframe). Large ranges OK with low limit (<=100). | |
| last_nonce | No | Maximum nonce | |
| scan_order | No | Which side of the block window to scan first. Normal previews default to latest; transaction_type searches default to earliest, so "first tx type 0x1 from block N" scans forward from from_block. | |
| first_nonce | No | Minimum nonce | |
| aggregate_by | No | Optional bounded aggregation for top sender/receiver questions. Returns ranked address rows instead of raw transactions. | |
| field_preset | No | Field preset: 'minimal' (from/to/value+block, ~70% smaller), 'standard' (hash+gas+timestamp), 'full' (includes input data hex, largest). Use 'minimal' to reduce context usage. | standard |
| include_logs | No | Include logs emitted by transactions | |
| min_gas_used | No | FILTER/RANKING: Minimum receipt gasUsed. Accepts decimal or hex string. | |
| to_addresses | No | FILTER: Recipient addresses (typically contracts being called, or wallets receiving ETH). Optional if limit <=100. | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| min_value_wei | No | FILTER/RANKING: Minimum native token value in wei. Accepts decimal or hex string. | |
| finalized_only | No | Only query finalized blocks | |
| from_addresses | No | FILTER: Sender addresses (wallets or contracts that initiated the transaction). Optional if limit <=100. | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| include_traces | No | Include traces for transactions | |
| max_scan_blocks | No | Safety cap for first/last/ranked client-side scans. Default: min(window, 10000 blocks). | |
| response_format | No | Response format: defaults to 'compact' for chat-friendly output, or stays 'full' when inline logs, traces, or state diffs are requested. Use 'summary' for counting or profiling. | |
| aggregate_metric | No | Metric used with aggregate_by. count ranks by tx count; value by total native value; gas_used by total gas used; effective_gas_price by max effective gas price. | count |
| to_token_symbols | No | Resolve token symbols via open token-list data and merge them into to_addresses, e.g. transfer/approve calls to USDC. | |
| transaction_type | No | FILTER: EVM transaction type. Accepts decimal or hex strings such as 0, 1, 2, "0x0", "0x1", "0x2". Applied client-side while streaming Portal results; use with scan_order="earliest" and from_block to find the first typed transaction. | |
| contract_creation | No | FILTER: true returns contract-creation transactions; false excludes them. Useful for "first contract creation from this wallet". | |
| include_l2_fields | No | Include L2-specific fields | |
| from_token_symbols | No | Resolve token symbols via open token-list data and merge them into from_addresses. Rare, but useful for token-contract-originated transactions. | |
| transaction_status | No | FILTER: Transaction receipt status. Use "success"/1 or "failed"/0 for failed/reverted transaction searches. | |
| include_state_diffs | No | Include state diffs caused by transactions | |
| max_token_symbol_matches | No | Maximum token-list matches to include per token symbol. Use from_addresses/to_addresses for deterministic single-contract filters. | |
| min_effective_gas_price_wei | No | FILTER/RANKING: Minimum effectiveGasPrice in wei. Accepts decimal or hex string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool safe/read-only, and the description adds useful behavior: optional logs/traces/state-diff context, evidence pivots, failed-call investigation, and bounded aggregation/ranking semantics. It does not contradict the readOnlyHint/openWorldHint/destructiveHint annotations, though some operational traits (client-side scan caps, pagination) appear mainly in schema parameter descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well structured with COMMON USER ASKS, WHEN TO USE, DON'T USE, and EXAMPLES, and the core definition is front-loaded. There is minor redundancy between the common-asks bullets and when-to-use bullets, but the length is justified by the tool's 35 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 35-parameter tool with 100% schema coverage, an output schema, and read-only annotations, the description covers use cases, exclusions, and worked examples without needing to restate return values. Nothing essential for selecting or invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds value by mapping user intents to parameter combinations in EXAMPLES (e.g., network+timeframe+limit for recent Base transactions, and from_block+transaction_type+scan_order+field_preset for the first EIP-2930 transaction). These examples show composition and realistic values that the schema alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with 'Query raw EVM transactions' -- a specific verb, resource, and scope -- and adds optional logs, traces, state-diff context, and evidence pivots for transaction-level investigations. The DON'T USE section further distinguishes it from convenience feed/wallet-summary tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
WHEN TO USE provides seven concrete triggers (first typed transaction, top-N by gas/value, aggregate senders/receivers, token-symbol calls, common method names), and DON'T USE gives two clear exclusions. However, alternatives are referred to only generically ('convenience tools', 'quick recent feed or wallet-level summary') rather than by sibling tool name, leaving some routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_get_headGet the latest blockARead-onlyInspect
Get just the latest indexed head block or slot for a network.
COMMON USER ASKS:
Latest head
Finalized head
FIRST CHOICE FOR:
getting the current indexed head before building a manual block range
WHEN TO USE:
You only need the current block or slot number.
You need the current head before building a raw block-range query.
DON'T USE:
You want to know if the network is caught up, behind, fresh, or what tables are available.
EXAMPLES:
Latest head: {"network":"base-mainnet"}
Finalized head: {"network":"ethereum-mainnet","type":"finalized"}
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Block type | latest |
| network | Yes | Network name or alias |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent with them. It adds useful nuance by clarifying this returns the indexed head block or slot, not live network status, and supports latest/finalized variants.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior is front-loaded and the description is well-organized with clear headers and examples. There is slight redundancy between COMMON USER ASKS and the examples, but it remains efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, strong annotations, 100% parameter coverage, and clear when/when-not guidance, the description fully covers what an agent needs to select and call this tool. The examples resolve any ambiguity around the required 'network' and optional 'type'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds concrete example payloads for latest and finalized heads, making the enum and network parameter semantics tangible beyond the bare schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get just the latest indexed head block or slot for a network.' It clearly supports latest vs finalized and distinguishes itself from broader analytics or block-building tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit WHEN TO USE and DON'T USE sections, plus 'FIRST CHOICE FOR' context, so an agent knows when to invoke it. It does not name a specific alternative tool for the excluded cases, but the boundaries are clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_get_network_infoCheck network statusARead-onlyInspect
Answer "is this network caught up?" with indexing freshness, lag, heads, and available tables.
COMMON USER ASKS:
Is Base caught up?
FIRST CHOICE FOR:
checking indexing head, lag, tables, and capabilities for one network
WHEN TO USE:
You want to know whether a network is indexed, fresh, caught up, or behind before querying.
You need chain family, real-time status, or available tables for a network.
DON'T USE:
You only need the latest block or slot number.
EXAMPLES:
Is Base caught up?: {"network":"base-mainnet"}
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network name or alias |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this readOnly and non-destructive, so the description only needs to add behavioral context beyond that. It adds useful behavior: returns indexing freshness, lag, heads, available tables, and chain-family/real-time status, making clear what kind of answer the agent should expect. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Although the description uses several labeled sections, each section earns its place by adding distinct selection or invocation guidance. The core behavior is front-loaded in the first line, and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with an output schema and strong annotations, the description covers purpose, usage context, exclusions, and a worked example. An agent has everything needed to select and invoke it correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents 'network' as a name/alias, so the baseline is 3. The description adds a concrete mapping from a natural-language question ('Is Base caught up?') to a valid parameter object ({"network":"base-mainnet"}), which clarifies the expected value format beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with a concrete task ('answer is this network caught up?') and names the resource: indexing head, lag, tables, and capabilities for a single network. It distinguishes itself from sibling tools like portal_get_head and portal_list_networks by scoping to one network and naming what it does not do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit 'WHEN TO USE', 'DON'T USE', 'FIRST CHOICE FOR', and a common user ask with an example. The 'DON'T USE' exclusion ('only need the latest block or slot number') gives clear negative selection criteria and implicitly points toward a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_get_recent_activityView recent blockchain activityARead-onlyInspect
Get a simple recent-activity feed across EVM, Solana, Bitcoin, or Hyperliquid with chronological paging and investigation pivots.
COMMON USER ASKS:
Recent activity on Base
Recent Hyperliquid fills
FIRST CHOICE FOR:
recent activity on any supported network without manual block math
questions like "what has been happening on Base lately?"
first-pass incident triage when the user asks what happened recently on a network
WHEN TO USE:
You want a quick recent-activity feed for a network.
You want to ask what has been happening lately on a network and see the newest activity first.
You want the simplest starting point before reaching for raw VM-specific query tools.
You are investigating an incident and need a bounded, recent evidence timeline before narrowing to wallets, transfers, logs, or fills.
DON'T USE:
You need raw logs, instructions, or chain-specific fields that only raw query tools return.
You want a chart over time rather than a recent feed.
EXAMPLES:
Recent activity on Base: {"network":"base-mainnet","timeframe":"1h","limit":10}
Recent Hyperliquid fills: {"network":"hyperliquid-fills","timeframe":"1h","limit":10}
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max activity rows to return (default: 10, max: 25) | |
| cursor | No | Continuation cursor from a previous response | |
| network | No | Network name (supports short names: 'polygon', 'base', 'ethereum', 'arbitrum', etc.). Optional when continuing with cursor. | |
| timeframe | No | Time period or block count. Examples: '100' (default), '1h', '6h', '24h', '7d', '3d'. | 100 |
| to_addresses | No | Filter by recipient addresses | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| from_addresses | No | Filter by sender addresses | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavior: chronological paging, newest activity first, bounded recent evidence timeline, and cross-network coverage. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-organized and front-loaded with a clear one-sentence summary. Slight redundancy exists: COMMON USER ASKS repeats the examples almost verbatim, and FIRST CHOICE FOR overlaps with WHEN TO USE, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The descripton fully covers when to use, when not to use, supported networks, typical parameter values, and paging concept. With 100% schema coverage and an output schema present, nothing essential for selecting and invoking this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value beyond the schema with concrete example payloads showing valid network names like 'base-mainnet' and 'hyperliquid-fills', and demonstrates how timeframe and limit are commonly combined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a simple recent-activity feed across EVM, Solana, Bitcoin, or Hyperliquid') and clearly distinguishes itself from raw query tools via the DON'T USE section. The scope is unambiguous even without naming specific siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit WHEN TO USE and DON'T USE sections, plus common user asks and examples. It names alternatives by category (raw VM-specific query tools, charting tools) and gives concrete conditions like needing raw logs or a time-series chart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_get_time_seriesChart blockchain activityARead-onlyInspect
Build simple activity charts and other time-series views across supported VMs, including compare-previous windows and grouped EVM contract trends.
COMMON USER ASKS:
Base transactions per 15m bucket
Compare two periods
FIRST CHOICE FOR:
activity over time, compare-current-vs-previous, grouped trends, and simple activity charts
WHEN TO USE:
You want chart-ready metric buckets over time.
You want a simple activity chart for a network, defaulting to a 6h interactive window unless a longer window is explicitly requested.
You want to compare the current period to the previous period.
DON'T USE:
You need raw record lists instead of aggregated buckets.
You need DEX pool candles or OHLC output.
EXAMPLES:
Base transactions per 15m bucket: {"network":"base-mainnet","metric":"transaction_count","duration":"6h","interval":"15m"}
Compare two periods: {"network":"solana-mainnet","metric":"transaction_count","duration":"1h","interval":"5m","compare_previous":true}
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. | deep |
| metric | Yes | Metric to aggregate over time | |
| address | No | Optional: Filter to specific contract address for contract-specific trends | |
| network | Yes | Network name (supports short names: 'ethereum', 'polygon', 'base', etc.) | |
| duration | No | Total time period to analyze. Defaults to "6h" for interactive use. Explicit longer windows like "24h" or "7d" are supported but can take longer. Accepts compact durations like "30m" or natural phrases like "past 30 minutes". | 6h |
| group_by | No | Optional grouping mode. contract is currently supported only for EVM transaction_count | none |
| interval | Yes | Time bucket interval (5m, 15m, 1h, 6h, 1d) | |
| group_limit | No | Maximum number of contract groups when group_by=contract | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "24h ago". | |
| compare_previous | No | Compare the selected window against the immediately previous window |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true). The description adds genuinely useful behavioral context beyond that: the tool returns aggregated 'chart-ready metric buckets' rather than raw records, defaults to a 6h interactive window, and supports compare-previous windows and grouped EVM contract trends. These are behavioral traits an agent cannot infer from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with labeled sections (COMMON USER ASKS, FIRST CHOICE FOR, WHEN TO USE, DON'T USE, EXAMPLES) that are easily scannable by an agent. The lead sentence front-loads the core purpose. Minor deduction because FIRST CHOICE FOR and WHEN TO USE partially overlap in content, adding slight redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with an output schema and safety annotations, the description covers the key decision paths: what it returns (aggregated buckets), default window, when to use it, when not to use it, and two worked examples. A small gap remains: it does not disambiguate from sibling portal_evm_get_contract_activity for address-scoped contract trends, though the schema's address/group_by parameters partially cover that ground.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with rich per-parameter descriptions (e.g., mode's fast/deep distinction, duration's natural phrases), so the baseline is 3. The EXAMPLES section adds value beyond the schema by showing complete, realistic parameter combinations: network+metric+duration+interval for a 15m bucket, and the same plus compare_previous=true for period comparison. This demonstrates how parameters work together, which static schema entries do not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The lead sentence states a specific verb and resource: 'Build simple activity charts and other time-series views across supported VMs.' It differentiates from siblings by scoping to aggregated, chart-ready metric buckets and explicitly excluding OHLC output and raw record lists, which maps directly to sibling tools like portal_evm_get_ohlc and portal_evm_query_transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description has explicit WHEN TO USE and DON'T USE sections with concrete conditions: chart-ready metric buckets over time, compare current vs previous period, and exclusions for raw record lists and DEX pool candles/OHLC. It also states a clear default behavior (6h interactive window) that agents should know before calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_get_wallet_summaryReview wallet activityARead-onlyInspect
Summarize wallet activity and fund flow with shared overview, asset movement, counterparties, evidence pivots, and follow-up filters across supported networks.
COMMON USER ASKS:
EVM wallet fund-flow triage
Solana wallet activity and fee flow
FIRST CHOICE FOR:
one-call wallet analysis across supported VMs
suspicious wallet triage, fund-flow direction, counterparties, and next evidence pivots before drilling into raw records
WHEN TO USE:
You want a single high-level answer about what one wallet has been doing and where value appears to move.
You want inbound/outbound flow, activity and asset-movement counterparties, largest movements within each asset, and exact next pivots before drilling into raw transactions or fills.
The user asks to investigate a suspicious wallet, stolen-funds path, exploit counterparty, or incident address.
DON'T USE:
You need every raw record with full chain-specific fields and no summarization.
EXAMPLES:
EVM wallet fund-flow triage: {"network":"base-mainnet","address":"0xabc...","timeframe":"24h"}
Solana wallet activity and fee flow: {"network":"solana-mainnet","address":"Vote111...","timeframe":"6h"}
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. | deep |
| cursor | No | Continuation cursor from a previous response | |
| address | No | Wallet address to analyze. Optional when continuing with cursor. | |
| network | No | Network name or alias. Optional when continuing with cursor. | |
| timeframe | No | Look-back period as timeframe or block count. Examples: '1h', '24h', '7d', '3d', '1000'. | 1000 |
| include_nfts | No | Include NFT transfers (ERC721/1155) | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| include_tokens | No | Include ERC20 token transfers | |
| limit_per_type | No | Requested items per category (default: 5). Values up to the retained compatibility maximum of 10 are accepted, while each category is safely capped at 4 rows and remains cursorable. | |
| response_format | No | Response format: defaults to 'compact' for a readable wallet investigation. Use 'summary' for headline flow only or 'full' for all returned activity rows. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the description is not required to repeat those. It adds value by framing output as structured, directly observable data for further reasoning and emphasizing summarization behavior. However, it doesn't clearly disclose aggregation details, pagination/cursor behavior, or exactly what 'shared overview' contains, leaving some behavioral nuance to inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with clear section headers, front-loads the core purpose in the first sentence, and uses bullet-style sections for rapid scanning. It is longer than strictly minimal, but each section earns its place by aiding agent comprehension. The corrupted VOID format instruction sits after the main description and does not undermine the structure, though the description's own length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and 100% parameter docs, so the description does not need to explain return values. It covers selection guidance, user intents, examples, and exclusions, which is rich contextual guidance. Given the tool's moderate complexity and existing schema/annotation coverage, the only minor gap is absent mention of output shape semantics beyond the corrupted VOID, but this is adequately covered by the output schema signal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all 11 parameters thoroughly. The description adds usage context through concrete examples showing network, address, and timeframe together, and implies that address/network become optional when continuing with a cursor. However, it doesn't compensate further for nuance like limit_per_type's capped-at-4 behavior or response_format differences.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Summarize wallet activity and fund flow') and identifies the exact resource and scope: shared overview, asset movement, counterparties, evidence pivots, and follow-up filters. It clearly distinguishes itself from sibling raw query tools by emphasizing high-level summarization over raw records, so an agent can discriminate it from portal_evm_query_transactions, portal_solana_query_transactions, or portal_get_recent_activity without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit WHEN TO USE and DON'T USE sections provide strong selection guidance, plus COMMON USER ASKS and FIRST CHOICE FOR context. It clearly names exclusions (raw record retrieval) and the exact use cases (suspicious wallet triage, stolen funds, exploit counterparty). This is comprehensive, actionable guidance for agent selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_hyperliquid_get_analyticsAnalyze Hyperliquid tradingARead-onlyInspect
Get the big-picture Hyperliquid fill analytics with top traders, volume by coin, fees, and PnL.
COMMON USER ASKS:
Hyperliquid fill snapshot
Who traded the most?
WHEN TO USE:
You want network-level Hyperliquid fill analytics.
You want to know who traded the most, which coins had volume, or how fees and PnL looked.
You want grouped aggregate sections without stitching raw fills together yourself.
DON'T USE:
You need individual fill records or OHLC candles.
EXAMPLES:
Hyperliquid fill snapshot: {"network":"hyperliquid-fills","timeframe":"1h"}
Who traded the most?: {"network":"hyperliquid-fills","timeframe":"1h"}
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by asset symbols (e.g., ["BTC", "ETH"]) | |
| mode | No | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. | deep |
| cursor | No | Continuation cursor for ranked analytics sections | |
| network | No | Network name (default: 'hyperliquid-fills') | hyperliquid-fills |
| timeframe | No | Time range: '1h', '6h', '24h'. Default: '1h' | 1h |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| section_limit | No | Per-section page size for ranked sections. Default: 6 | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago". | |
| response_format | No | Response format: 'summary' (smallest snapshot), 'compact' (chat-sized ranked sections, default), 'full' (complete analytics). | compact |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only safety profile is covered. The description adds genuine behavioral value by disclosing that the tool performs server-side aggregation ('grouped aggregate sections without stitching raw fills together yourself') and returns a big-picture snapshot rather than record-level data. It could additionally characterize pagination behavior behind the cursor, but the schema already documents cursor semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Despite its length, every section earns its place: the core statement is front-loaded, COMMON USER ASKS maps intents to queries, WHEN/DON'T USe provides routing rules, and EXAMPELes give ready-to-use payloads. The headers make it scannable, and there is no filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 parametrs, 27 sibling tools, output schema present), the description is highly complete: it covers purpose, user intents, exclusion boundaries, and worked examples. The output schema covers return-value expectations, and 100% schema coverage handles parametr semantics. Minor remaining gap is that differentiation from the other network get_analytics siblings (bitcoin, evm, solana, substrate) relies on the tool name and one adjective rather than explicit contrast, but the absence of required parametrs makes invocation failure unlikely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema carries the parameter documentation burden and the baseline is 3. The description adds modest value with concrete EXAMPLES mapping the same minimal payload ({"network":"hyperliquid-fills","timeframe":"1h"}) to two distinct user intents, demonstrating that defaults suffice. It does not, however, elaborate on coin, response_format, or mode beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Get the big-picture Hyperliquid fill analytics with top traders, volume by coin, fees, and PnL.' It clearly separates this tool from siblings by emphasizing 'big-picture' and 'grouped aggregate sections' in contrast to raw fills (portal_hyperliquid_query_fills) and OHLC candles (portal_hyperliquid_get_ohlc), which are explicitly called out. The COMMON USER ASKS section reinforces the intent with concrete phrasings an agent will hear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit WHEN TO USE and DON'T USE sections. It states use cases (network-level fill analytics, top traders, volume by coin, fees/PnL, grouped aggregates without stitching raw fills) and exclusions (individual fill records, OHLC candles). While sibling tools aren't named by identifier, the conditions unambiguously route to query_fills and get_ohlc, giving an agent clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_hyperliquid_get_ohlcChart Hyperliquid pricesARead-onlyInspect
Build chart-ready Hyperliquid trade OHLC candles with fixed buckets and auto intervals.
COMMON USER ASKS:
BTC candles
WHEN TO USE:
You want candles for one coin on Hyperliquid.
You need chart-ready OHLC, volume, and VWAP data from fills.
DON'T USE:
You want scalar time-series buckets or raw fills.
EXAMPLES:
BTC candles: {"network":"hyperliquid-fills","coin":"BTC","duration":"6h","interval":"auto"}
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Asset symbol to build candles for (for example: "BTC", "ETH", "SOL"). Optional when continuing with cursor. | |
| user | No | Optional trader wallet address (0x-prefixed, lowercase) | |
| cursor | No | Continuation cursor from a previous candle page | |
| network | No | Network name (default: 'hyperliquid-fills') | hyperliquid-fills |
| duration | No | How much recent trading history to cover when exact timestamps are omitted. Defaults to "1h". Accepts compact durations like "1h" or natural phrases like "past 30 minutes". | |
| interval | No | Candle interval. Use auto for chart-friendly defaults: 1h→5m, 6h→15m, 12h→30m, 24h→1h. | auto |
| to_timestamp | No | Exact inclusive candle-window end. Use together with from_timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input. | |
| from_timestamp | No | Exact candle-window start. Use together with to_timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior, so the description only needs to add context beyond that. It adds meaningful behavioral detail: candles are derived from fills, are chart-ready, and include OHLC, volume, and VWAP. This goes beyond the structured annotation fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly organized into labeled sections with no wasted words. The core purpose is stated in the first sentence, and the example is compact and directly useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only OHLC tool with a rich input schema, output schema, and clear annotations, the description covers the essential decision-making context: what it produces, when to use it, when not to, and a representative example. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters in detail. The description adds a concrete example mapping a common user ask to parameters and shows a realistic JSON payload, which is helpful but not a substantial semantic addition beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: "Build chart-ready Hyperliquid trade OHLC candles." It clearly distinguishes from siblings by emphasizing chart-ready data, fixed buckets, auto intervals, and use of fills, so an agent can tell it apart from portal_hyperliquid_query_fills and portal_get_time_series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WHEN TO USE and DON'T USE sections are explicit and actionable, stating to use this tool for one-coin candle data and to avoid it for raw fills or scalar time-series buckets. This effectively routes the agent to alternatives without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_hyperliquid_query_fillsFind Hyperliquid tradesARead-onlyInspect
Query raw individual Hyperliquid fills with trader, coin, fee, PnL, and builder context.
COMMON USER ASKS:
Recent BTC fills
WHEN TO USE:
You need raw fill records on Hyperliquid.
You want to filter by trader, coin, direction, builder, or fee token.
DON'T USE:
You want the big picture, top traders, grouped aggregates, or candles instead of raw fill rows.
EXAMPLES:
Recent BTC fills: {"network":"hyperliquid-fills","timeframe":"1h","coin":["BTC"],"limit":20}
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Trade direction: "Open Long", "Close Long", "Open Short", "Close Short" | |
| coin | No | Asset symbols (e.g., "ETH", "BTC", "SOL") | |
| user | No | Trader wallet addresses (0x-prefixed, lowercase) | |
| cloid | No | Client order IDs (0x-prefixed hex) | |
| limit | No | Requested fills per page (default: 20). Values up to the retained compatibility maximum of 200 are accepted, while each response is safely capped at 25 rows and remains cursorable. | |
| cursor | No | Continuation cursor from a previous response | |
| builder | No | Builder addresses (0x-prefixed, lowercase) | |
| network | No | Network name (default: 'hyperliquid-fills'). Optional when continuing with cursor. | hyperliquid-fills |
| to_block | No | Ending block number | |
| fee_token | No | Fee token symbols | |
| timeframe | No | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. | |
| from_block | No | Starting block number (use this OR timeframe) | |
| include_pnl | No | Include closedPnl and startPosition fields | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| finalized_only | No | Only query finalized blocks | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| response_format | No | Response format: defaults to 'compact' for chat-friendly output. Use 'summary' for aggregate stats or 'full' when you truly need every fill field. | |
| include_builder_info | No | Include builder and builderFee fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior. The description adds useful context that it returns raw individual fills rather than aggregation and includes fee/PnL/builder fields. However, it doesn't disclose pagination/cursor behavior, response cap, or response_format consequences, which remain in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-organized with clear sections and a front-loaded main sentence. The 'COMMON USER ASKS' and 'EXAMPLES' sections are slightly redundant around 'Recent BTC fills', keeping it short of a 5, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter read-only query tool with a rich input schema and an output schema, the description gives purpose, use conditions, exclusions, and a practical example. Parameter relationship nuances like timeframe vs. block ranges or cursor continuation are left to the schema, which is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with every parameter already documented. The description adds a small amount by grouping common filters and showing one concrete example, but doesn't materially expand parameter meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb plus resource: 'Query raw individual Hyperliquid fills' and lists the information included (trader, coin, fee, PnL, builder). It also distinguishes itself from siblings via 'DON'T USE' for aggregates/candles, so an agent can tell it apart from analytics and OHLC tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Has explicit WHEN TO USE and DON'T USE sections that state when raw fill records are appropriate and when not to use the tool (big picture, top traders, grouped aggregates, candles). Lacks named alternative tools, so it doesn't fully meet the 5-level bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_list_networksFind blockchain networksARead-onlyInspect
Find the right network or chain name to use across EVM, Solana, Bitcoin, Substrate, and Hyperliquid.
COMMON USER ASKS:
Find Base-like networks
Show Solana mainnets
Show Substrate mainnets
FIRST CHOICE FOR:
finding the correct network before any other query
WHEN TO USE:
You are not sure which network name, chain name, or alias to use.
You want to filter networks by VM family, network type, or real-time availability.
DON'T USE:
You already know the exact network and want live data from that network.
EXAMPLES:
Find Base-like networks: {"query":"base","limit":10}
Show Solana mainnets: {"vm":"solana","network_type":"mainnet"}
Show Substrate mainnets: {"vm":"substrate","network_type":"mainnet"}
| Name | Required | Description | Default |
|---|---|---|---|
| vm | No | Filter by VM family | |
| limit | No | Max results to return (default: 25, max: 100) | |
| query | No | Search by name, alias, or chain ID | |
| cursor | No | Continuation cursor from a previous network catalog page | |
| network_type | No | Filter by network type | |
| real_time_only | No | Only show networks with a real-time indexed head |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and non-destructive; the description adds that it is a catalog/discovery lookup covering multiple VM families, supports search by name/alias/chain ID, and can filter by real-time availability. This context explains what the tool returns beyond the safety profile without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structured section headers (COMMON USER ASKS, FIRST CHOICE FOR, WHEN TO USE, DON'T USE, EXAMPLES) make each part skimmable, and the opening sentence states the core purpose immediately. There is mild redundancy between the common asks and examples, but no wasted or irrelevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, 100% parameter documentation, and annotations covering read-only/open-world safety, the description supplies the missing selection context: when to use, when not to use, and realistic invocation examples. Nothing needed to call the tool correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all six parameters (100%), so the baseline is 3; the description adds concrete parameter semantics via examples like {'query':'base','limit':10} and {'vm':'solana','network_type':'mainnet'}, showing valid values and combinations that clarify the schema's 'vm' and 'network_type' fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb and resource: 'Find the right network or chain name to use across EVM, Solana, Bitcoin, Substrate, and Hyperliquid.' It also declares itself 'FIRST CHOICE FOR: finding the correct network before any other query,' which clearly separates it from sibling data-query tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'WHEN TO USE' and 'DON'T USE' sections: use when unsure of network name/chain/alias or when filtering by VM family, network type, or real-time availability; don't use when you already know the exact network and want live data. The 'FIRST CHOICE' positioning and examples route the agent to this tool before other portal_* queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_resolve_entityFind a token or contractARead-onlyInspect
Resolve user-facing blockchain entities into query-ready identifiers, with ambiguity kept explicit.
COMMON USER ASKS:
Resolve USDC on Base
Resolve WETH on Ethereum
Resolve BAYC contract
FIRST CHOICE FOR:
resolving a token symbol like USDC to token contract addresses
resolving EVM contract aliases, protocol names, pool identifiers, or Hyperliquid coin names before querying
checking which token-list addresses a symbol maps to before querying logs or transfers
turning a user-friendly token name into deterministic EVM filters
WHEN TO USE:
The user names a token symbol such as USDC, WETH, DAI, or PEPE and you need contract addresses before querying raw data.
The user names a well-known EVM contract, protocol, pool identifier, or Hyperliquid ticker and you need a deterministic follow-up filter.
You need to disambiguate bridged token variants on an EVM network.
You want a source-backed token address rather than relying on memory or hardcoded constants.
DON'T USE:
You already have the exact address, pool id, protocol slug, or coin filter and can pass it directly.
EXAMPLES:
Resolve USDC on Base: {"network":"base-mainnet","kind":"token","query":"USDC","limit":10}
Resolve WETH on Ethereum: {"network":"ethereum-mainnet","kind":"token","query":"WETH","limit":5}
Resolve BAYC contract: {"network":"ethereum-mainnet","kind":"contract","query":"bored apes"}
Resolve Hyperliquid coin: {"kind":"hyperliquid_coin","query":"bitcoin"}
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Entity kind to resolve: token, contract alias/address, pool identifier, protocol name, or Hyperliquid coin/ticker. | token |
| limit | No | Maximum matches to return. | |
| query | Yes | Entity string to resolve, e.g. "USDC", "bayc", "uniswap", "BTC", or "0x...". | |
| network | No | Network name or alias when the entity is network-scoped, e.g. "base", "ethereum", "arbitrum-one", or "hyperliquid-fills". |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior. The description adds meaningful behavioral context beyond annotations: 'ambiguity kept explicit', 'source-backed token address', and the notion of checking which token-list addresses a symbol maps to. This helps the agent anticipate multiple matches or ambiguous resolution outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The structure is highly organized with clear sections and front-loaded purpose, making the key behavior immediately visible. There is mild redundancy between 'FIRST CHOICE FOR' and 'WHEN TO USE', as several bullets repeat the same conditions, but the overall length is justified by the tool's breadth of entity kinds.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a read-only resolution tool: it covers supported entity kinds, common user asks, when to use, when not to use, and includes multiple fully specified JSON examples. An output schema exists, so omitting return-value details is acceptable. No important operational gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters already have descriptions. The description adds value with concrete example payloads for different kinds and networks, plus guidance that queries can be fuzzy aliases (e.g., 'bored apes' for BAYC) rather than exact symbols. This enriches semantics beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Purpose clarity is excellent: it states a specific verb and resource ('Resolve user-facing blockchain entities into query-ready identifiers') and includes concrete examples. It is clearly differentiated from sibling query tools as the pre-query resolution step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly dedicates 'WHEN TO USE' and 'DON'T USE' sections, giving concrete conditions such as resolving a symbol before querying logs or transfers, and excluding cases where an exact address or filter is already known. This provides actionable routing guidance without requiring the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_solana_get_analyticsAnalyze Solana activityARead-onlyInspect
Get the big picture for Solana throughput, fees, wallet activity, and optional top-program usage.
COMMON USER ASKS:
Solana network snapshot
Include top programs
FIRST CHOICE FOR:
the big picture for Solana right now
WHEN TO USE:
You want the big picture for Solana right now.
You want a network health snapshot for Solana.
You want throughput, fee, success-rate, or top-program analytics rather than raw records.
DON'T USE:
You want chart buckets or raw transaction/instruction records.
EXAMPLES:
Solana network snapshot: {"network":"solana-mainnet","timeframe":"1h"}
Include top programs: {"network":"solana-mainnet","timeframe":"1h","include_programs":true}
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. | deep |
| cursor | No | Continuation cursor for paginating top_programs | |
| network | No | Network name (default: solana-mainnet) | solana-mainnet |
| timeframe | No | Time range. Accepts compact durations like '15m' or natural phrases like 'past 30 minutes'. Optional; defaults to a 1h analysis window. | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| program_limit | No | Max top-program rows to return per page when include_programs is enabled | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| response_format | No | Response format: 'summary' (high-level metrics), 'compact' (core sections), 'full' (complete analytics). | full |
| include_programs | No | Include top programs by instruction count (requires an extra instruction scan and is slower) | |
| include_compute_units | No | Include average compute-unit stats across the full range (disabled by default for speed) |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds value by framing the tool as a 'big picture' / 'network health snapshot' rather than a raw data dump, which helps set expectations about the response granularity. Performance caveats like include_programs being slower live in the schema, so the description's behavioral contribution is modest but meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than typical but earned its length: every section ('COMMON USER ASKS', 'FIRST CHOICE FOR', 'WHEN TO USE', 'DON'T USE', 'EXAMPLES') serves a distinct purpose with no filler. The core purpose sentence is front-loaded, and the structured headings make scanning fast for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, a rich output schema, and annotations already covering safety, the description provides all necessary decision context: what the tool returns, when it is the first choice, when not to use it, and concrete example calls. The remaining details (parameter formats, defaults, pagination) are fully covered by the schema and output schema, so nothing needed for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters thoroughly, giving a baseline of 3. The description adds concrete example payloads for common asks ('network':'solana-mainnet','timeframe':'1h' and with include_programs:true), which demonstrates realistic parameter combinations and adds meaning beyond the schema's individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the big picture for Solana throughput, fees, wallet activity, and optional top-program usage.' It clearly differentiates from raw-record siblings by stating it provides analytics rather than raw transaction/instruction records, and the 'DON'T USE' section explicitly rules out chart buckets and raw records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'FIRST CHOICE FOR' and 'WHEN TO USE' sections that state the tool is for Solana network snapshots and aggregate analytics, and a 'DON'T USE' section that excludes chart buckets and raw transaction/instruction records. Though sibling tools are not named, the categories directly map to the raw-query siblings like portal_solana_query_transactions and portal_solana_query_instructions, giving clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_solana_query_instructionsFind Solana program activityARead-onlyInspect
Query raw Solana instructions with program and account filters.
COMMON USER ASKS:
Token Program instructions
WHEN TO USE:
You need program-level or account-level instruction activity.
You want to inspect Token Program, Jupiter, System Program, or Anchor discriminator activity.
DON'T USE:
You only need transaction-level activity and not individual instructions.
EXAMPLES:
Token Program instructions: {"network":"solana-mainnet","timeframe":"1h","program_id":["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],"limit":20}
| Name | Required | Description | Default |
|---|---|---|---|
| a0 | No | Account at index 0. You can pass a single string or an array. | |
| a1 | No | Account at index 1. You can pass a single string or an array. | |
| a2 | No | Account at index 2. You can pass a single string or an array. | |
| a3 | No | Account at index 3. You can pass a single string or an array. | |
| a4 | No | Account at index 4. You can pass a single string or an array. | |
| a5 | No | Account at index 5. You can pass a single string or an array. | |
| a6 | No | Account at index 6. You can pass a single string or an array. | |
| a7 | No | Account at index 7. You can pass a single string or an array. | |
| a8 | No | Account at index 8. You can pass a single string or an array. | |
| a9 | No | Account at index 9. You can pass a single string or an array. | |
| d1 | No | 1-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array. | |
| d2 | No | 2-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array. | |
| d4 | No | 4-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array. | |
| d8 | No | 8-byte discriminator filter - Anchor (0x-prefixed hex). You can pass a single string or an array. | |
| a10 | No | Account at index 10. You can pass a single string or an array. | |
| a11 | No | Account at index 11. You can pass a single string or an array. | |
| a12 | No | Account at index 12. You can pass a single string or an array. | |
| a13 | No | Account at index 13. You can pass a single string or an array. | |
| a14 | No | Account at index 14. You can pass a single string or an array. | |
| a15 | No | Account at index 15. You can pass a single string or an array. | |
| limit | No | Max instructions (default: 20, max: 25) | |
| cursor | No | Continuation cursor from a previous response | |
| network | No | Network name or alias. Optional when continuing with cursor. | |
| to_block | No | Ending slot number. Keep ranges reasonable for performance. | |
| timeframe | No | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. Solana slots are ~400ms. | |
| from_block | No | Starting slot number (use this OR timeframe) | |
| program_id | No | Program IDs. You can pass a single string or an array. | |
| include_logs | No | Include program logs | |
| is_committed | No | Only committed transactions | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| finalized_only | No | Only query finalized slots | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| mentions_account | No | Accounts mentioned anywhere in the instruction. You can pass a single string or an array. | |
| include_transaction | No | Include transaction data | |
| transaction_fee_payer | No | Fee payer filter. You can pass a single string or an array. | |
| include_inner_instructions | No | Include inner (CPI) instructions | |
| include_transaction_balances | No | Include SOL balance changes | |
| include_transaction_instructions | No | Include all instructions from the parent transaction (sibling instructions) | |
| include_transaction_token_balances | No | Include token balance changes |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful context about what can be inspected (Token Program, Jupiter, System Program, Anchor discriminators) and provides an example. However, it does not disclose behavioral details like pagination behavior, raw/unparsed output semantics, or performance considerations beyond what schema descriptions already note. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence summary, followed by compact labeled sections: COMMON USER ASKS, WHEN TO USE, DON'T USE, and EXAMPLES. Every section earns its place, and the example is short and relevant. This is exceptionally well-structured for a tool with 39 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count, output schema, and 100% schema coverage, the description provides the essential context: what the tool queries, when to use it, when not to, and a valid example call. It does not elaborate on filter combination logic or parameter relationships, but the schema covers those details. The description is complete enough for selection and basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds one concrete example showing program_id, network, timeframe, and limit values, but this is mostly illustrative rather than deeper parameter semantics. The schema already thoroughly documents each parameter, so the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Query raw Solana instructions with program and account filters.' It differentiates itself from transaction-level tools via the 'DON'T USE' section, and names concrete use cases like Token Program, Jupiter, System Program, and Anchor discriminator activity. This makes the tool's scope and identity unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description has explicit 'WHEN TO USE' and 'DON'T USE' sections with clear conditions, such as needing program-level or account-level instruction activity versus only transaction-level activity. It does not explicitly name the alternative sibling tool (portal_solana_query_transactions), but the exclusion strongly implies it. This is clear guidance with a minor gap in naming the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_solana_query_transactionsFind Solana transactionsARead-onlyInspect
Query raw Solana transactions with optional balances, rewards, logs, and instruction context.
COMMON USER ASKS:
Recent Solana transactions
Filter by program
WHEN TO USE:
You need raw Solana transaction records.
You want Solana-specific filters or include flags that convenience tools do not expose.
DON'T USE:
You only want recent activity or a compact network summary.
EXAMPLES:
Recent Solana transactions: {"network":"solana-mainnet","timeframe":"1h","limit":20}
Filter by program: {"network":"solana-mainnet","timeframe":"1h","program_id":["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],"limit":20}
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max transactions to return (default: 20, max: 25) | |
| cursor | No | Continuation cursor from a previous response | |
| network | No | Network name or alias. Optional when continuing with cursor. | |
| to_block | No | Ending slot number | |
| fee_payer | No | Fee payer addresses | |
| timeframe | No | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. | |
| from_block | No | Starting slot number (use this OR timeframe) | |
| include_logs | No | Include program logs | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| finalized_only | No | Only query finalized slots | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". | |
| include_rewards | No | Include block rewards (validator staking rewards). Filter by pubkey using mentions_account. | |
| response_format | No | Response format: defaults to 'compact' for chat-friendly output, or stays 'full' when inline instruction, balance, log, or reward context is requested. Use 'summary' for aggregate stats. | |
| include_balances | No | Include SOL balance changes | |
| mentions_account | No | Accounts mentioned anywhere in the transaction | |
| include_instructions | No | Include instruction data | |
| include_token_balances | No | Include SPL token balance changes |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Query' language aligns with that. The description adds some behavioral context by emphasizing 'raw' transactions and optional include flags, but does not disclose pagination, rate, or response-shape behavior beyond what the schema and output schema provide. There is no annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-sentence summary, then uses compact labeled sections for user asks, when-to-use, dont-use, and examples. Every section earns its place and the examples are directly useful for invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-paramter tool with output schema and 100% schema coverage, the description provides enough orientation: common use cases, exclusion cases, and concrete JSON examples. It could have gone further by explaining pagination cursor or response_format tradeoffs, but the schema and examples carry the remaining load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description contributes a few meaningful examples showing how network, timeframe, program_id, and limit combine, and it groups the include flags by mentioning balances, rewards, logs, and instruction context, but it does not add substantial semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Query raw Solana transactions,' and names the optional contexts (balances, rewards, logs, instruction context). This clearly distinguishes it from analytics, recent-activity, and instruction-focused sibling tools by emphasizing raw transaction records and Solana-specific filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WHEN TO USE and DON'T USE sections give explicit context for selection: use it for raw transaction records and Solana-specific filters, avoid it for compact network summaries or simple recent activity. However, the alternatives are described only as 'convenience tools' or 'recent activity' rather than naming specific sibling tools like portal_get_recent_activity or portal_solana_query_instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_substrate_get_analyticsAnalyze Polkadot activityARead-onlyInspect
Analytics snapshot for Substrate or Polkadot activity in an indexed window, with event, call, and extrinsic counts plus top event and call names.
COMMON USER ASKS:
Polkadot activity snapshot
Big picture for Polkadot activity
How is Polkadot doing?
FIRST CHOICE FOR:
Polkadot activity analytics in an indexed window
how Polkadot is doing in an indexed window
analytics snapshot for Polkadot or another Substrate network in an indexed window
WHEN TO USE:
You want Polkadot activity analytics in a selected indexed window.
You want to ask "how is Polkadot doing in this indexed window?" and get an analytics answer rather than just network freshness metadata.
You want a quick Substrate network snapshot or health check.
You want top pallet events and calls rather than raw rows.
You want to know how a Substrate network is doing in the selected indexed window.
DON'T USE:
You need full raw event or call records.
EXAMPLES:
Polkadot activity snapshot: {"network":"polkadot","timeframe":"1h"}
Big picture for Polkadot activity: {"network":"polkadot","timeframe":"1h"}
How is Polkadot doing?: {"network":"polkadot","timeframe":"6h"}
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. | deep |
| network | No | Substrate network name (default: polkadot) | polkadot |
| to_block | No | Ending block number | |
| timeframe | No | Time range like '1h', '6h', or '24h'. Default: '1h' | |
| from_block | No | Starting block number (use this OR timeframe) | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| section_limit | No | Max rows to keep in ranked event and call sections | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago". | |
| response_format | No | Response format: 'summary' (headline metrics only), 'compact' (core sections), 'full' (full dashboard payload) | full |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context: the tool returns an aggregate snapshot, not raw records, works within an 'indexed window,' and produces ranked event/call sections. This goes beyond what the annotations alone convey, though it could further clarify indexing freshness or latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is front-loaded and the labeled sections are helpful. However, COMMON USER ASKS, FIRST CHOICE FOR, and WHEN TO USE contain substantial overlap, with several bullets restating essentially the same 'Polkadot activity analytics in an indexed window' idea. The content is useful but could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 optional parameters, full schema coverage, an output schema, and read-only annotations, the description supplies everything needed to invoke it correctly: use cases, exclusions, examples, and the indexed-window caveat. It also addresses common alternative intents like freshness metadata and raw event/call retrieval, making it contextually complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value through concrete examples mapping natural user asks to network/timeframe values, such as 'Polkadot activity snapshot' to {network: polkadot, timeframe: 1h} and 'How is Polkadot doing?' to {network: polkadot, timeframe: 6h}. This helps an agent translate vague user intent into parameter choices beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it provides an 'Analytics snapshot for Substrate or Polkadot activity' with event, call, and extrinsic counts plus top event/call names. This clearly distinguishes it from raw-query siblings like portal_substrate_query_events and portal_substrate_query_calls, and from other chains' analytics tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit 'WHEN TO USE' and 'DON'T USE' sections. It tells the agent to use this tool for aggregate analytics, health checks, and top pallet events/calls, and to avoid it when full raw event or call records are needed, which routes to the query siblings. It also differentiates from freshness metadata via 'rather than just network freshness metadata.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_substrate_query_callsFind Polkadot callsARead-onlyInspect
Query raw Substrate or Polkadot calls with pallet/call-name filters and optional child-call, emitted-event, or extrinsic context.
COMMON USER ASKS:
Recent Balances calls
Polkadot calls with emitted events
FIRST CHOICE FOR:
raw Substrate or Polkadot call rows, especially when you want the events emitted by those calls
WHEN TO USE:
You need raw call records on a Substrate network.
You want pallet call activity like Balances.transfer_keep_alive or Ethereum.transact.
You want calls plus the events emitted by those calls.
DON'T USE:
You want events or aggregate analytics rather than call rows.
EXAMPLES:
Recent Balances calls: {"network":"polkadot","timeframe":"1h","call_names":["Balances.transfer_keep_alive"],"limit":20}
Polkadot calls with emitted events: {"network":"polkadot","timeframe":"1h","call_names":["ParaInherent.enter"],"include_events":true,"limit":20}
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max calls to return (max: 10; use compact mode for context-rich rows) | |
| cursor | No | Continuation cursor from a previous response | |
| network | No | Substrate network name or alias. Optional when continuing with cursor. | |
| to_block | No | Ending block number | |
| timeframe | No | Time range (e.g. '1h', '24h'). Alternative to from_block/to_block. | |
| call_names | No | Optional qualified call names like Timestamp.set or Balances.transfer_keep_alive | |
| from_block | No | Starting block number | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| include_stack | No | Attach the parent call stack for each matching call | |
| finalized_only | No | Only query finalized blocks | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago". | |
| include_events | No | Attach events emitted directly by each matching call | |
| response_format | No | Response format: defaults to 'compact' for chat-friendly output. Compact mode keeps requested subcalls, events, and extrinsic context in a smaller inline shape. | |
| include_subcalls | No | Attach direct descendant calls inline for each matching call | |
| include_extrinsic | No | Attach the parent extrinsic inline for each matching call |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds useful behavioral context: it returns raw call rows, can attach events, subcalls, and extrinsic context, and supports compact mode for chat-friendly output. No contradictions exist, and the read-only, non-destructive nature is consistent with the described query behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into scannable sections — COMMON USER ASKS, FIRST CHOICE FOR, WHEN TO USE, DON'T USE, EXAMPLES — that front-load the most important decision information. Every section earns its place and helps an agent quickly decide whether to invoke this tool and how to shape the call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, zero-required tool with 100% schema coverage and an output schema, the description is complete enough. It covers the primary use cases, excludes overlapping analytics/events use cases, and provides canonical examples. The schema handles the remaining parameter details, and the output schema covers return-value structure, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters, so the baseline is 3. The description adds real value beyond this by grouping related parameters into conceptual categories ('pallet/call-name filters', 'child-call, emitted-event, or extrinsic context') and providing two concrete JSON examples that show how to combine network, timeframe, call_names, include_events, and limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action and resource: 'Query raw Substrate or Polkadot calls' with pallet/call-name filters and optional child-call, emitted-event, or extrinsic context. It clearly differentiates from sibling tools like portal_substrate_query_events and portal_substrate_get_analytics by framing this as the tool for raw call rows, not events or analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'WHEN TO USE' section lists concrete scenarios with examples like Balances.transfer_keep_alive, and the dedicated 'DON'T USE' section explicitly says to avoid this tool when events or aggregate analytics are wanted instead of call rows. This gives an agent explicit routing guidance relative to sibling 'query_events' and 'get_analytics' tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_substrate_query_eventsFind Polkadot eventsARead-onlyInspect
Query raw Substrate or Polkadot event rows with pallet/event-name filters and optional parent call or extrinsic context.
COMMON USER ASKS:
Balances.Transfer events on Polkadot
FIRST CHOICE FOR:
raw Substrate or Polkadot event rows with optional parent call or extrinsic context
WHEN TO USE:
You need raw event records on a Substrate network.
You want pallet-level event activity like Balances.Transfer or Contracts.ContractEmitted.
You want event rows first, even if the network is a Polkadot-family chain.
DON'T USE:
You want calls or aggregate analytics rather than event rows.
EXAMPLES:
Balances.Transfer events on Polkadot: {"network":"polkadot","timeframe":"1h","event_names":["Balances.Transfer"],"limit":20}
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max events to return (max: 10; use compact mode for context-rich rows) | |
| cursor | No | Continuation cursor from a previous response | |
| network | No | Substrate network name or alias. Optional when continuing with cursor. | |
| to_block | No | Ending block number | |
| timeframe | No | Time range (e.g. '1h', '24h'). Alternative to from_block/to_block. | |
| from_block | No | Starting block number | |
| event_names | No | Optional qualified event names like Balances.Transfer or System.ExtrinsicSuccess | |
| include_call | No | Attach the emitting call inline when the event has call context | |
| to_timestamp | No | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". | |
| include_stack | No | Attach the parent call stack when the event has nested call context | |
| finalized_only | No | Only query finalized blocks | |
| from_timestamp | No | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago". | |
| response_format | No | Response format: defaults to 'compact' for chat-friendly output. Compact mode keeps requested extrinsic or call context in a smaller inline shape. | |
| include_extrinsic | No | Attach the parent extrinsic inline for each matching event |
Output Schema
| Name | Required | Description |
|---|---|---|
| _ui | No | Optional chart, table, and follow-up presentation metadata. |
| _app | No | SQD Explorer identity and honest host-render state. |
| _llm | No | Hints that help an AI client locate the primary evidence. |
| _meta | No | Network, block range, timing, and row-count metadata. |
| error | No | Structured failure details when the tool cannot complete the request. |
| items | No | Primary result rows when the tool returns a list. |
| value | No | Primary result when the tool returns a scalar value. |
| answer | No | Concise answer grounded in the returned blockchain data. |
| _notice | No | Important limitation or truncation notice. |
| _server | No | Observable SQD server identity and exact release version. |
| display | No | Plain-language labels for presenting the result. |
| _notices | No | Important limitations or truncation notices. |
| _summary | No | Human-readable summary of the result. |
| _coverage | No | Completeness of the requested window and result set. |
| _evidence | No | Replayable arguments, exact-data digest, row count, and completeness receipt. |
| _ordering | No | Ordering guarantees for the returned data. |
| _execution | No | Bounded execution and scan details. |
| _freshness | No | Freshness and finality information for the returned data. |
| next_steps | No | Safe follow-up actions and continuation guidance. |
| _pagination | No | Pagination state and an optional continuation cursor. |
| investigation | No | Evidence paths, useful pivots, and result limitations. |
| pipes_handoff | No | Optional SQD Pipes guidance for custom data needs. |
| _tool_contract | No | Tool identity, intent, and supported blockchain families. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so no contradiction exists. The description adds useful scope details like optional parent call or extrinsic context, but does not disclose deeper behavior such as default response format, ordering, or pagination behavior beyond what the schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear headings, a one-sentence summary, and a concrete example. Some redundancy exists between the opening sentence, FIRST CHOICE FOR, and EXAMPLES, but the overall format keeps key guidance scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter tool with an output schema, the description is complete: it states what the tool returns, when to use it, when not to use it, and gives an example invocation. The schema carries parameter details and the output schema covers return values, so the description does not need to repeat them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, covering all 14 parameters in detail. The description adds a representative example with network, timeframe, event_names, and limit, but does not add much semantic value beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Query raw Substrate or Polkadot event rows with pallet/event-name filters.' It also explicitly contrasts with calls and aggregate analytics in the DON'T USE section, so an agent can distinguish this tool from portal_substrate_query_calls and get_analytics siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WHEN TO USE and DON'T USE sections give explicit conditions: use for raw events, pallet-level event activity, or event rows first; avoid for calls or aggregate analytics. It does not name the alternative sibling tool directly, but the exclusion is clear enough for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
28 tool updates
- Changed
portal_bitcoin_get_analytics2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_bitcoin_query_transactions2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_debug_hyperliquid_query_replica_commands2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_debug_query_blocks2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_debug_resolve_time_to_block2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_evm_get_analytics2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_evm_get_contract_activity2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_evm_get_contract_deployment2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_evm_get_ohlc2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_evm_query_logs2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_evm_query_token_transfers2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_evm_query_transactions2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_get_head2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_get_network_info2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_get_recent_activity2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_get_time_series2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_get_wallet_summary4 fields changed- changed
Input schema / properties / limit_per_type / descriptionPrevious value: -"Max items per category (default: 5, max: 5). This verified ceiling keeps every wallet page within MCP client response budgets."New value: +"Requested items per category (default: 5). Values up to the retained compatibility maximum of 10 are accepted, while each category is safely capped at 4 rows and remains cursorable." - changed
Input schema / properties / limit_per_type / maximumPrevious value: -5New value: +10 - changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_hyperliquid_get_analytics2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_hyperliquid_get_ohlc6 fields changed- removed
Input schema / properties / duration / defaultRemoved value: -"1h" - changed
Input schema / properties / duration / descriptionPrevious value: -"How much recent trading history to cover. Accepts compact durations like \"1h\" or natural phrases like \"past 30 minutes\"."New value: +"How much recent trading history to cover when exact timestamps are omitted. Defaults to \"1h\". Accepts compact durations like \"1h\" or natural phrases like \"past 30 minutes\"." - added
Input schema / properties / from_timestampAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "description": "Exact candle-window start. Use together with to_timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input." +} - added
Input schema / properties / to_timestampAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "description": "Exact inclusive candle-window end. Use together with from_timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input." +} - changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_hyperliquid_query_fills4 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Max fills to return (default: 20, max: 25)"New value: +"Requested fills per page (default: 20). Values up to the retained compatibility maximum of 200 are accepted, while each response is safely capped at 25 rows and remains cursorable." - changed
Input schema / properties / limit / maximumPrevious value: -25New value: +200 - changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_list_networks2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_resolve_entity2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_solana_get_analytics2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_solana_query_instructions2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_solana_query_transactions2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_substrate_get_analytics2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_substrate_query_calls2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
- Changed
portal_substrate_query_events2 fields changed- changed
Output schema / properties / _app / descriptionPrevious value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state." - added
Output schema / properties / _serverAdded value: +{ + "additionalProperties": false, + "description": "Observable SQD server identity and exact release version.", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ], + "type": "object" +}
28 tool updates
- Changed
portal_bitcoin_get_analytics1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_bitcoin_query_transactions4 fields changed- changed
Input schema / properties / limit / defaultPrevious value: -50New value: +20 - changed
Input schema / properties / limit / descriptionPrevious value: -"Max transactions to return (default: 50, max: 200)"New value: +"Max transactions to return (default: 20, max: 25)" - changed
Input schema / properties / limit / maximumPrevious value: -200New value: +25 - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_debug_hyperliquid_query_replica_commands6 fields changed- changed
Input schema / properties / limit / defaultPrevious value: -50New value: +1 - changed
Input schema / properties / limit / descriptionPrevious value: -"Max actions to return"New value: +"Max actions to return (1). Replica command payloads can contain large batches, so this exact one-record cursor page is the verified safe response budget." - added
Input schema / properties / limit / maximumAdded value: +1 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_debug_query_blocks1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_debug_resolve_time_to_block1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_get_analytics1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_get_contract_activity1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_get_contract_deployment1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_get_ohlc1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_query_logs5 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Max logs to return (default: 20, max: 200). Note: Lower default for MCP to reduce context usage."New value: +"Max logs to return (default: 20, max: 25). This verified ceiling keeps pages within MCP client budgets." - changed
Input schema / properties / limit / maximumPrevious value: -200New value: +25 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_query_token_transfers1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_query_transactions5 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Max transactions (default: 20, max: 200). Note: Lower default for MCP to reduce context usage."New value: +"Max transactions (default: 20, max: 25). This verified ceiling keeps pages within MCP client budgets." - changed
Input schema / properties / limit / maximumPrevious value: -200New value: +25 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_get_head1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_get_network_info1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_get_recent_activity5 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Max transactions to return (max: 200)"New value: +"Max activity rows to return (default: 10, max: 25)" - changed
Input schema / properties / limit / maximumPrevious value: -200New value: +25 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_get_time_series1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_get_wallet_summary6 fields changed- changed
Input schema / properties / limit_per_type / defaultPrevious value: -10New value: +5 - changed
Input schema / properties / limit_per_type / descriptionPrevious value: -"Max items per category (txs, tokens, nfts)"New value: +"Max items per category (default: 5, max: 5). This verified ceiling keeps every wallet page within MCP client response budgets." - added
Input schema / properties / limit_per_type / maximumAdded value: +5 - added
Input schema / properties / limit_per_type / minimumAdded value: +1 - changed
Input schema / properties / limit_per_type / typePrevious value: -"number"New value: +"integer" - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_hyperliquid_get_analytics1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_hyperliquid_get_ohlc1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_hyperliquid_query_fills4 fields changed- changed
Input schema / properties / limit / defaultPrevious value: -50New value: +20 - changed
Input schema / properties / limit / descriptionPrevious value: -"Max fills to return (default: 50, max: 200)"New value: +"Max fills to return (default: 20, max: 25)" - changed
Input schema / properties / limit / maximumPrevious value: -200New value: +25 - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_list_networks1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_resolve_entity1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_solana_get_analytics1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_solana_query_instructions6 fields changed- changed
Input schema / properties / limit / defaultPrevious value: -50New value: +20 - changed
Input schema / properties / limit / descriptionPrevious value: -"Max instructions"New value: +"Max instructions (default: 20, max: 25)" - added
Input schema / properties / limit / maximumAdded value: +25 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_solana_query_transactions4 fields changed- changed
Input schema / properties / limit / defaultPrevious value: -50New value: +20 - changed
Input schema / properties / limit / descriptionPrevious value: -"Max transactions to return (default: 50, max: 200)"New value: +"Max transactions to return (default: 20, max: 25)" - changed
Input schema / properties / limit / maximumPrevious value: -200New value: +25 - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_substrate_get_analytics1 field changed- added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_substrate_query_calls6 fields changed- changed
Input schema / properties / limit / defaultPrevious value: -50New value: +10 - changed
Input schema / properties / limit / descriptionPrevious value: -"Max calls to return"New value: +"Max calls to return (max: 10; use compact mode for context-rich rows)" - added
Input schema / properties / limit / maximumAdded value: +10 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_substrate_query_events6 fields changed- changed
Input schema / properties / limit / defaultPrevious value: -50New value: +10 - changed
Input schema / properties / limit / descriptionPrevious value: -"Max events to return"New value: +"Max events to return (max: 10; use compact mode for context-rich rows)" - added
Input schema / properties / limit / maximumAdded value: +10 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Output schema / properties / _appAdded value: +{ + "additionalProperties": {}, + "description": "SQD Blockchain Activity Explorer identity and honest host-render state.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
28 tool updates
- Changed
portal_bitcoin_get_analytics1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_bitcoin_query_transactions1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_debug_hyperliquid_query_replica_commands1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_debug_query_blocks1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_debug_resolve_time_to_block1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_get_analytics1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_get_contract_activity1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_get_contract_deployment1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_get_ohlc1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_query_logs1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_query_token_transfers1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_evm_query_transactions1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_get_head1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_get_network_info1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_get_recent_activity1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_get_time_series1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_get_wallet_summary1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_hyperliquid_get_analytics1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_hyperliquid_get_ohlc1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_hyperliquid_query_fills1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_list_networks1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_resolve_entity1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_solana_get_analytics1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_solana_query_instructions1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_solana_query_transactions1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_substrate_get_analytics1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_substrate_query_calls1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
portal_substrate_query_events1 field changed- added
Output schema / properties / _evidenceAdded value: +{ + "additionalProperties": {}, + "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
28 tool updates
- Changed
portal_bitcoin_get_analytics1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_bitcoin_query_transactions1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_debug_hyperliquid_query_replica_commands1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_debug_query_blocks1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_debug_resolve_time_to_block1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_evm_get_analytics1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_evm_get_contract_activity1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_evm_get_contract_deployment1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_evm_get_ohlc1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_evm_query_logs1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_evm_query_token_transfers1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_evm_query_transactions1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_get_head1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_get_network_info1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_get_recent_activity1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_get_time_series1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_get_wallet_summary1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_hyperliquid_get_analytics1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_hyperliquid_get_ohlc1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_hyperliquid_query_fills1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_list_networks1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_resolve_entity1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_solana_get_analytics1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_solana_query_instructions1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_solana_query_transactions1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_substrate_get_analytics1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_substrate_query_calls1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
- Changed
portal_substrate_query_events1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "properties": { + "_coverage": { + "description": "Completeness of the requested window and result set." + }, + "_execution": { + "additionalProperties": {}, + "description": "Bounded execution and scan details.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_freshness": { + "description": "Freshness and finality information for the returned data." + }, + "_llm": { + "description": "Hints that help an AI client locate the primary evidence." + }, + "_meta": { + "additionalProperties": {}, + "description": "Network, block range, timing, and row-count metadata.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_notice": { + "description": "Important limitation or truncation notice.", + "type": "string" + }, + "_notices": { + "description": "Important limitations or truncation notices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "_ordering": { + "description": "Ordering guarantees for the returned data." + }, + "_pagination": { + "additionalProperties": {}, + "description": "Pagination state and an optional continuation cursor.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_summary": { + "description": "Human-readable summary of the result.", + "type": "string" + }, + "_tool_contract": { + "additionalProperties": {}, + "description": "Tool identity, intent, and supported blockchain families.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "_ui": { + "description": "Optional chart, table, and follow-up presentation metadata." + }, + "answer": { + "description": "Concise answer grounded in the returned blockchain data.", + "type": "string" + }, + "display": { + "additionalProperties": {}, + "description": "Plain-language labels for presenting the result.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "error": { + "additionalProperties": {}, + "description": "Structured failure details when the tool cannot complete the request.", + "properties": { + "code": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "retry_after_ms": { + "type": "number" + }, + "retryable": { + "type": "boolean" + }, + "suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "code", + "origin", + "summary", + "retryable", + "suggestions" + ], + "type": "object" + }, + "investigation": { + "additionalProperties": {}, + "description": "Evidence paths, useful pivots, and result limitations.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "items": { + "description": "Primary result rows when the tool returns a list.", + "items": {}, + "type": "array" + }, + "next_steps": { + "additionalProperties": {}, + "description": "Safe follow-up actions and continuation guidance.", + "properties": { + "actions": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "continuation": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "custom_data": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "actions" + ], + "type": "object" + }, + "pipes_handoff": { + "description": "Optional SQD Pipes guidance for custom data needs." + }, + "value": { + "description": "Primary result when the tool returns a scalar value." + } + }, + "type": "object" +}
3 tool updates
- Changed
portal_evm_query_logs1 field changed- changed
Input schema / properties / timeframe / descriptionPrevious value: -"Time range (e.g., '24h', '7d'). Alternative to from_block/to_block. Supported: 1h, 6h, 12h, 24h, 3d, 7d, 14d, 30d"New value: +"Natural time range such as '5m', '1h', '24h', '7d', or 'past 30 minutes'. Alternative to from_block/to_block."
- Changed
portal_evm_query_transactions1 field changed- changed
Input schema / properties / timeframe / descriptionPrevious value: -"Time range (e.g., '24h', '7d'). Alternative to from_block/to_block. Supported: 1h, 6h, 12h, 24h, 3d, 7d, 14d, 30d. Large ranges OK with low limit (<=100)."New value: +"Natural time range such as '5m', '1h', '24h', '7d', or 'past 30 minutes'. Alternative to from_block/to_block. Large ranges are allowed with a low limit (<=100)."
- Changed
portal_list_networks1 field changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Continuation cursor from a previous network catalog page", + "type": "string" +}
28 tool updates
- Changed
portal_bitcoin_get_analytics6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "string", - "number" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "string", - "number" -]
- Changed
portal_bitcoin_query_transactions6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_debug_hyperliquid_query_replica_commands6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_debug_query_blocks6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_debug_resolve_time_to_block4 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_evm_get_analytics6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_evm_get_contract_activity6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "string", - "number" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "string", - "number" -]
- Changed
portal_evm_get_contract_deployment6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_evm_get_ohlc6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / fee / maximumAdded value: +9007199254740991 - added
Input schema / properties / fee / minimumAdded value: +-9007199254740991 - added
Input schema / properties / tick_spacing / maximumAdded value: +9007199254740991 - added
Input schema / properties / tick_spacing / minimumAdded value: +-9007199254740991
- Changed
portal_evm_query_logs7 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / max_scan_blocksAdded value: +{ + "description": "Maximum blocks to inspect for bounded earliest/latest scans. Sparse latest searches default to 25,000 blocks to stay within MCP request timeouts; raise only when deeper coverage is worth the added latency.", + "maximum": 250000, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_evm_query_token_transfers6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_evm_query_transactions14 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / min_effective_gas_price_wei / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / min_effective_gas_price_wei / typeRemoved value: -[ - "string", - "number" -] - added
Input schema / properties / min_gas_used / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / min_gas_used / typeRemoved value: -[ - "string", - "number" -] - added
Input schema / properties / min_value_wei / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / min_value_wei / typeRemoved value: -[ - "string", - "number" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / transaction_type / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / transaction_type / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_get_head2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
portal_get_network_info2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
portal_get_recent_activity6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_get_time_series6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_get_wallet_summary6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "string", - "number" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "string", - "number" -]
- Changed
portal_hyperliquid_get_analytics6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "string", - "number" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "string", - "number" -]
- Changed
portal_hyperliquid_get_ohlc2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
portal_hyperliquid_query_fills6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_list_networks3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Input schema / properties / vm / enumPrevious value: -[ - "evm", - "solana", - "bitcoin", - "substrate", - "hyperliquid" -]New value: +[ + "evm", + "tron", + "solana", + "bitcoin", + "substrate", + "hyperliquid" +]
- Changed
portal_resolve_entity2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
portal_solana_get_analytics6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "string", - "number" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "string", - "number" -]
- Changed
portal_solana_query_instructions6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_solana_query_transactions6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_substrate_get_analytics6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_substrate_query_calls6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
- Changed
portal_substrate_query_events6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / from_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / from_timestamp / typeRemoved value: -[ - "number", - "string" -] - added
Input schema / properties / to_timestamp / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / to_timestamp / typeRemoved value: -[ - "number", - "string" -]
28 tool updates
- First observed
portal_bitcoin_get_analytics - First observed
portal_bitcoin_query_transactions - First observed
portal_debug_hyperliquid_query_replica_commands - First observed
portal_debug_query_blocks - First observed
portal_debug_resolve_time_to_block - First observed
portal_evm_get_analytics - First observed
portal_evm_get_contract_activity - First observed
portal_evm_get_contract_deployment - First observed
portal_evm_get_ohlc - First observed
portal_evm_query_logs - First observed
portal_evm_query_token_transfers - First observed
portal_evm_query_transactions - First observed
portal_get_head - First observed
portal_get_network_info - First observed
portal_get_recent_activity - First observed
portal_get_time_series - First observed
portal_get_wallet_summary - First observed
portal_hyperliquid_get_analytics - First observed
portal_hyperliquid_get_ohlc - First observed
portal_hyperliquid_query_fills - First observed
portal_list_networks - First observed
portal_resolve_entity - First observed
portal_solana_get_analytics - First observed
portal_solana_query_instructions - First observed
portal_solana_query_transactions - First observed
portal_substrate_get_analytics - First observed
portal_substrate_query_calls - First observed
portal_substrate_query_events
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
TRON Energy marketplace + DEX swap aggregator for AI agents. 27 MCP tools.
Blockchain data across 100+ chains: token prices, NFTs, transfers, simulation, traces, Solana DAS
Query real-time blockchain token data across EVM and Solana networks. Access token balances, transfers, prices, holders, NFT ownership, DEX swaps, and liquidity pools. Supports Ethereum, Base, Arbitrum, BSC, Polygon, Solana, and more.
Full Solana DeFi coverage: launchpads, tokens, trades, and wallets, decoded at scale.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables natural-language-driven on-chain data analysis for TRON blockchain events via MongoDB, allowing AI assistants to query blocks, transactions, contract events, and perform analytics like aggregations, histograms, and address profiling.-

SQDofficial
AlicenseAqualityAmaintenanceThin MCP wrapper around the SQD Portal API for blockchain data queries across multiple networks including EVM, Solana, Bitcoin, Substrate, and Hyperliquid. Provides 25 public tools for discovery, cross-chain queries, and chain-specific operations.10281MIT
mcp-server-usddofficial
AlicenseAqualityDmaintenanceEnables management of USDD protocol vaults, PSM swaps, savings, and token transfers across TRON, Ethereum, and BSC, plus protocol analytics and treasury insights.44245MIT- AlicenseNot gradedqualityCmaintenanceEnables querying on-chain data (balances, transactions, token transfers, blocks) across 20+ EVM chains through natural language.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each VM has a parallel analytics/query family, but the network and object names keep most tools clearly separated. A few near-overlaps exist (evm_query_logs vs evm_query_token_transfers; get_head vs get_network_info; get_recent_activity vs raw query tools), though the usage notes provide good disambiguation.
All tools follow the same snake_case portal_<vm>_<verb>_<object> pattern, with get used for summaries, query for raw records, and a consistent debug prefix for advanced/internal tools. The naming is highly predictable.
At 28 tools the set is above the 25+ threshold and feels heavy even though the multi-chain scope explains much of the mass. The five network analytics and multiple raw query tools could be consolidated, but the count is not extreme.
The surface covers analytics, raw transactions/logs/calls/events/fills, time series, wallet summaries, entity resolution, and network freshness information across several ecosystems. Obvious gaps are minor: no convenient transaction-by-hash or block-by-number lookup outside the debug tools, and wallet summary coverage is not uniformly demonstrated for every VM.