Skip to main content
Glama

Server Details

Query 130+ SQD Portal datasets across blockchains, including native Tron transactions and events.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
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 tools
portal_bitcoin_get_analyticsAnalyze Bitcoin activityA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoExecution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.deep
networkNoNetwork name (default: bitcoin-mainnet)bitcoin-mainnet
to_blockNoEnding block number
timeframeNoTime range: '1h' (~6 blocks), '6h' (~36 blocks), '24h' (~144 blocks). Default: '1h'
from_blockNoStarting block number (use this OR timeframe)
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago".
response_formatNoResponse format: 'summary' (high-level metrics only), 'compact' (core sections, lighter payload), 'full' (complete analytics).full
include_address_activityNoInclude unique address count and output value (requires extra queries, slower)

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 transactionsA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax transactions to return (default: 20, max: 25)
cursorNoContinuation cursor from a previous response
networkNoNetwork name (default: bitcoin-mainnet). Optional when continuing with cursor.
to_blockNoEnding block number
timeframeNoTime range (e.g., '1h', '24h'). Alternative to from_block/to_block.
from_blockNoStarting block number
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
finalized_onlyNoOnly query finalized blocks
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
include_inputsNoAttach transaction inputs inline
include_outputsNoAttach transaction outputs inline
response_formatNoResponse format: defaults to 'compact' for chat-friendly output. Compact mode keeps inline inputs and outputs in a smaller shape when requested.

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 recordsA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoUser wallet addresses (0x-prefixed, lowercase)
limitNoMax actions to return (1). Replica command payloads can contain large batches, so this exact one-record cursor page is the verified safe response budget.
cursorNoContinuation cursor from a previous response
statusNoFilter by action status
networkNoNetwork name (default: 'hyperliquid-replica-cmds'). Optional when continuing with cursor.hyperliquid-replica-cmds
to_blockNoEnding block number
timeframeNoTime range (e.g., '1h', '24h'). Alternative to from_block/to_block.
from_blockNoStarting block number (use this OR timeframe)
action_typeNoAction types to filter
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
vault_addressNoVault addresses (0x-prefixed, lowercase)
finalized_onlyNoOnly query finalized blocks
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 blocksA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax blocks to return (default: 20). Note: Lower default for MCP to reduce context usage.
cursorNoContinuation cursor from a previous response
networkNoNetwork name or alias. Optional when continuing with cursor.
to_blockNoEnding block number
timeframeNoTime range (e.g., '1h', '24h'). Alternative to from_block/to_block.
from_blockNoStarting block number (use this OR timeframe)
field_presetNoField preset for EVM datasets: 'minimal' (number+timestamp+gas), 'standard' (+hash+miner+size), 'full' (all block fields). Ignored for Solana/Bitcoin.standard
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
finalized_onlyNoOnly query finalized blocks
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
include_l2_fieldsNoInclude L2-specific fields (auto-detected for L2 chains)

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 blockA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
networkYesNetwork name or alias
timestampYesUnix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago"

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 activityA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoExecution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.deep
limitNoNumber of top contracts to return (default: 10, max: 100)
cursorNoContinuation cursor from a previous response
networkNoNetwork name (supports short names: 'ethereum', 'polygon', 'base', etc.). Optional when continuing with cursor.
timeframeNoOptional natural time window like '1h' or '24h'
num_blocksNoNumber of recent blocks to analyze when timeframe is omitted (default: 50, max: 10000)
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
include_detailsNoInclude sample transaction hashes for each contract

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 activityA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoExecution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.deep
networkYesNetwork name or alias
timeframeNoAnalysis period as timeframe or block count. Examples: '1h', '24h', '7d', '3d', '1000'.1000
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
include_eventsNoInclude event log summary
contract_addressYesContract address to analyze

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 deploymentA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
networkYesEVM network name or alias, e.g. base, ethereum, arbitrum.
contractNoContract address or a supported well-known alias/name, e.g. "bayc" or "bored apes" on Ethereum.
to_blockNoOptional ending block. Defaults to the indexed head.
timeframeNoOptional recent time window to search, e.g. "24h" or "7d".
from_blockNoOptional starting block. Provide this for older contracts when the deployment is not recent.
scan_orderNoScan latest first for recent deployments, or earliest first when you provide a historical from_block.latest
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "7d ago".
max_scan_blocksNoSafety cap for historical deployment scans. Default: scan the requested window up to 1,000,000 blocks.
contract_addressNoContract address whose deployment transaction should be located.
search_depth_blocksNoWhen no explicit range is given, search this many recent blocks backward from the indexed head.

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 historyA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
feeNoOptional Uniswap v4 LP fee in hundredths of a bip, e.g. 3000 for 0.30%.
modeNoExecution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.deep
cursorNoContinuation cursor from a previous candle page
sourceNoWhich 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
networkNoEVM network name (default: base-mainnet)base-mainnet
pool_idNoUniswap v4 pool id (bytes32). Optional when you provide the full v4 pool key instead.
durationNoHow much recent history to cover. Accepts compact durations like "1h" or natural phrases like "past 30 minutes".1h
intervalNoCandle interval. auto uses chart-friendly defaults like 1h→5m and 24h→1h.auto
price_inNoChoose which token the displayed price should be expressed in. auto picks the more human-readable quote side.auto
base_tokenNoLegacy orientation input. Prefer price_in instead.
pool_addressNoPool/pair contract address for address-keyed sources like Uniswap v3, Slipstream, or Sync-derived CPMM pools.
tick_spacingNoOptional Uniswap v4 tick spacing. Required with the rest of the pool key when deriving pool_id.
hooks_addressNoOptional Uniswap v4 hooks contract address. Defaults to the zero address when omitted.
token0_symbolNoOptional token0 symbol label for summaries
token1_symbolNoOptional token1 symbol label for summaries
token0_addressNoOptional token0 address to infer known decimals
token1_addressNoOptional token1 address to infer known decimals
token0_decimalsNoOptional token0 decimals for human-readable prices
token1_decimalsNoOptional token1 decimals for human-readable prices
currency0_addressNoOptional Uniswap v4 currency0 address. Use with currency1_address, fee, and tick_spacing to derive pool_id factually.
currency1_addressNoOptional Uniswap v4 currency1 address. Use with currency0_address, fee, and tick_spacing to derive pool_id factually.
recent_trades_limitNoMaximum number of recent trades to return in the trade tape.
pool_manager_addressNoUniswap v4 PoolManager address. Optional on networks with a built-in official Uniswap deployment mapping.
include_recent_tradesNoInclude a recent trade tape for swap-derived sources when factual per-trade amounts are available.

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 eventsA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
eventNoCommon event alias or topic0 hash. Examples: "transfer", "approval", "swap", "sync", "deposit", "withdrawal". Merges with topic0.
limitNoMax logs to return (default: 20, max: 25). This verified ceiling keeps pages within MCP client budgets.
cursorNoContinuation cursor from a previous response
decodeNoDecode known log signatures inline when topics/data are available
topic0NoEvent signatures (topic0). E.g., Transfer = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
topic1NoTopic1 filter (often: from address in Transfer, indexed parameter 1)
topic2NoTopic2 filter (often: to address in Transfer, indexed parameter 2)
topic3NoTopic3 filter (indexed parameter 3, chain-specific)
networkNoNetwork name or alias. Optional when continuing with cursor.
to_blockNoEnding block number. RECOMMENDED: <10k blocks for fast (<1s) responses. Larger ranges may be slow or timeout.
addressesNoContract addresses to filter (e.g., ['0xUSDC...', '0xDAI...']). IMPORTANT: Always include this or topics for fast queries.
timeframeNoNatural time range such as '5m', '1h', '24h', '7d', or 'past 30 minutes'. Alternative to from_block/to_block.
from_blockNoStarting block number (use this OR timeframe)
scan_orderNoWhich side of the block window to scan first. Use earliest for first-event questions.latest
field_presetNoField 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_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
token_symbolsNoToken symbols to resolve via open token-list data and merge into addresses, e.g. ["USDC"].
finalized_onlyNoOnly query finalized blocks
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
max_scan_blocksNoMaximum 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_formatNoResponse format: defaults to 'compact' for chat-friendly output, or stays 'full' when inline transaction context is requested. Use 'summary' for counting or categorizing.
include_transactionNoInclude parent transaction data
include_transaction_logsNoInclude all logs from parent transactions
max_token_symbol_matchesNoMaximum token-list matches to include per token symbol. Use addresses for deterministic single-contract filters.
include_transaction_tracesNoInclude traces for parent transactions

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 transfersA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax transfers
cursorNoContinuation cursor from a previous response
networkNoNetwork name or alias. Optional when continuing with cursor.
to_blockNoEnding block number. RECOMMENDED: <10k blocks for fast responses.
timeframeNoTime range (e.g., '1h', '24h'). Alternative to block numbers.
from_blockNoStarting block number
scan_orderNoWhich side of the block window to scan first. Use earliest for first-transfer questions.latest
to_addressesNoRecipient addresses
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
token_symbolsNoToken symbols to resolve via open token-list data, e.g. ["USDC"]. Merges with token_addresses.
from_addressesNoSender addresses
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
token_addressesNoToken contract addresses
include_token_infoNoInclude token metadata (symbol, decimals) inline. Avoids separate token metadata lookups.
max_token_symbol_matchesNoMaximum token-list matches to include per token symbol. Use token_addresses for deterministic single-contract filters.

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 transactionsA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax transactions (default: 20, max: 25). This verified ceiling keeps pages within MCP client budgets.
cursorNoContinuation cursor from a previous response
methodNoFILTER: Common EVM method alias or 4-byte sighash. Examples: "transfer", "approve", "transferFrom", "deposit", "withdraw". Merges with sighash.
networkNoNetwork name or alias. Optional when continuing with cursor.
sighashNoFILTER: Function sighash (4-byte hex, e.g., '0xa9059cbb' for transfer). Optional if limit <=100.
order_byNoOptional ranking for top-N questions. Use value_desc, gas_used_desc, or effective_gas_price_desc.chronological
to_blockNoEnding block number. RECOMMENDED: <5k blocks for fast (<500ms) responses. Larger ranges may be slow.
timeframeNoNatural 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_blockNoStarting block number (use this OR timeframe). Large ranges OK with low limit (<=100).
last_nonceNoMaximum nonce
scan_orderNoWhich 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_nonceNoMinimum nonce
aggregate_byNoOptional bounded aggregation for top sender/receiver questions. Returns ranked address rows instead of raw transactions.
field_presetNoField 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_logsNoInclude logs emitted by transactions
min_gas_usedNoFILTER/RANKING: Minimum receipt gasUsed. Accepts decimal or hex string.
to_addressesNoFILTER: Recipient addresses (typically contracts being called, or wallets receiving ETH). Optional if limit <=100.
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
min_value_weiNoFILTER/RANKING: Minimum native token value in wei. Accepts decimal or hex string.
finalized_onlyNoOnly query finalized blocks
from_addressesNoFILTER: Sender addresses (wallets or contracts that initiated the transaction). Optional if limit <=100.
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
include_tracesNoInclude traces for transactions
max_scan_blocksNoSafety cap for first/last/ranked client-side scans. Default: min(window, 10000 blocks).
response_formatNoResponse 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_metricNoMetric 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_symbolsNoResolve token symbols via open token-list data and merge them into to_addresses, e.g. transfer/approve calls to USDC.
transaction_typeNoFILTER: 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_creationNoFILTER: true returns contract-creation transactions; false excludes them. Useful for "first contract creation from this wallet".
include_l2_fieldsNoInclude L2-specific fields
from_token_symbolsNoResolve token symbols via open token-list data and merge them into from_addresses. Rare, but useful for token-contract-originated transactions.
transaction_statusNoFILTER: Transaction receipt status. Use "success"/1 or "failed"/0 for failed/reverted transaction searches.
include_state_diffsNoInclude state diffs caused by transactions
max_token_symbol_matchesNoMaximum token-list matches to include per token symbol. Use from_addresses/to_addresses for deterministic single-contract filters.
min_effective_gas_price_weiNoFILTER/RANKING: Minimum effectiveGasPrice in wei. Accepts decimal or hex string.

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 blockA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoBlock typelatest
networkYesNetwork name or alias

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 statusA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
networkYesNetwork name or alias

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 activityA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax activity rows to return (default: 10, max: 25)
cursorNoContinuation cursor from a previous response
networkNoNetwork name (supports short names: 'polygon', 'base', 'ethereum', 'arbitrum', etc.). Optional when continuing with cursor.
timeframeNoTime period or block count. Examples: '100' (default), '1h', '6h', '24h', '7d', '3d'.100
to_addressesNoFilter by recipient addresses
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
from_addressesNoFilter by sender addresses
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 activityA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoExecution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.deep
metricYesMetric to aggregate over time
addressNoOptional: Filter to specific contract address for contract-specific trends
networkYesNetwork name (supports short names: 'ethereum', 'polygon', 'base', etc.)
durationNoTotal 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_byNoOptional grouping mode. contract is currently supported only for EVM transaction_countnone
intervalYesTime bucket interval (5m, 15m, 1h, 6h, 1d)
group_limitNoMaximum number of contract groups when group_by=contract
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "24h ago".
compare_previousNoCompare the selected window against the immediately previous window

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 activityA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoExecution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.deep
cursorNoContinuation cursor from a previous response
addressNoWallet address to analyze. Optional when continuing with cursor.
networkNoNetwork name or alias. Optional when continuing with cursor.
timeframeNoLook-back period as timeframe or block count. Examples: '1h', '24h', '7d', '3d', '1000'.1000
include_nftsNoInclude NFT transfers (ERC721/1155)
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
include_tokensNoInclude ERC20 token transfers
limit_per_typeNoRequested 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_formatNoResponse format: defaults to 'compact' for a readable wallet investigation. Use 'summary' for headline flow only or 'full' for all returned activity rows.

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 tradingA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by asset symbols (e.g., ["BTC", "ETH"])
modeNoExecution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.deep
cursorNoContinuation cursor for ranked analytics sections
networkNoNetwork name (default: 'hyperliquid-fills')hyperliquid-fills
timeframeNoTime range: '1h', '6h', '24h'. Default: '1h'1h
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
section_limitNoPer-section page size for ranked sections. Default: 6
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago".
response_formatNoResponse format: 'summary' (smallest snapshot), 'compact' (chat-sized ranked sections, default), 'full' (complete analytics).compact

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 pricesA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAsset symbol to build candles for (for example: "BTC", "ETH", "SOL"). Optional when continuing with cursor.
userNoOptional trader wallet address (0x-prefixed, lowercase)
cursorNoContinuation cursor from a previous candle page
networkNoNetwork name (default: 'hyperliquid-fills')hyperliquid-fills
durationNoHow 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".
intervalNoCandle interval. Use auto for chart-friendly defaults: 1h→5m, 6h→15m, 12h→30m, 24h→1h.auto
to_timestampNoExact inclusive candle-window end. Use together with from_timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input.
from_timestampNoExact candle-window start. Use together with to_timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input.

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 tradesA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNoTrade direction: "Open Long", "Close Long", "Open Short", "Close Short"
coinNoAsset symbols (e.g., "ETH", "BTC", "SOL")
userNoTrader wallet addresses (0x-prefixed, lowercase)
cloidNoClient order IDs (0x-prefixed hex)
limitNoRequested 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.
cursorNoContinuation cursor from a previous response
builderNoBuilder addresses (0x-prefixed, lowercase)
networkNoNetwork name (default: 'hyperliquid-fills'). Optional when continuing with cursor.hyperliquid-fills
to_blockNoEnding block number
fee_tokenNoFee token symbols
timeframeNoTime range (e.g., '1h', '24h'). Alternative to from_block/to_block.
from_blockNoStarting block number (use this OR timeframe)
include_pnlNoInclude closedPnl and startPosition fields
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
finalized_onlyNoOnly query finalized blocks
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
response_formatNoResponse format: defaults to 'compact' for chat-friendly output. Use 'summary' for aggregate stats or 'full' when you truly need every fill field.
include_builder_infoNoInclude builder and builderFee fields

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 networksA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
vmNoFilter by VM family
limitNoMax results to return (default: 25, max: 100)
queryNoSearch by name, alias, or chain ID
cursorNoContinuation cursor from a previous network catalog page
network_typeNoFilter by network type
real_time_onlyNoOnly show networks with a real-time indexed head

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 contractA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoEntity kind to resolve: token, contract alias/address, pool identifier, protocol name, or Hyperliquid coin/ticker.token
limitNoMaximum matches to return.
queryYesEntity string to resolve, e.g. "USDC", "bayc", "uniswap", "BTC", or "0x...".
networkNoNetwork name or alias when the entity is network-scoped, e.g. "base", "ethereum", "arbitrum-one", or "hyperliquid-fills".

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 activityA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoExecution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.deep
cursorNoContinuation cursor for paginating top_programs
networkNoNetwork name (default: solana-mainnet)solana-mainnet
timeframeNoTime range. Accepts compact durations like '15m' or natural phrases like 'past 30 minutes'. Optional; defaults to a 1h analysis window.
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
program_limitNoMax top-program rows to return per page when include_programs is enabled
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
response_formatNoResponse format: 'summary' (high-level metrics), 'compact' (core sections), 'full' (complete analytics).full
include_programsNoInclude top programs by instruction count (requires an extra instruction scan and is slower)
include_compute_unitsNoInclude average compute-unit stats across the full range (disabled by default for speed)

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 activityA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
a0NoAccount at index 0. You can pass a single string or an array.
a1NoAccount at index 1. You can pass a single string or an array.
a2NoAccount at index 2. You can pass a single string or an array.
a3NoAccount at index 3. You can pass a single string or an array.
a4NoAccount at index 4. You can pass a single string or an array.
a5NoAccount at index 5. You can pass a single string or an array.
a6NoAccount at index 6. You can pass a single string or an array.
a7NoAccount at index 7. You can pass a single string or an array.
a8NoAccount at index 8. You can pass a single string or an array.
a9NoAccount at index 9. You can pass a single string or an array.
d1No1-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array.
d2No2-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array.
d4No4-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array.
d8No8-byte discriminator filter - Anchor (0x-prefixed hex). You can pass a single string or an array.
a10NoAccount at index 10. You can pass a single string or an array.
a11NoAccount at index 11. You can pass a single string or an array.
a12NoAccount at index 12. You can pass a single string or an array.
a13NoAccount at index 13. You can pass a single string or an array.
a14NoAccount at index 14. You can pass a single string or an array.
a15NoAccount at index 15. You can pass a single string or an array.
limitNoMax instructions (default: 20, max: 25)
cursorNoContinuation cursor from a previous response
networkNoNetwork name or alias. Optional when continuing with cursor.
to_blockNoEnding slot number. Keep ranges reasonable for performance.
timeframeNoTime range (e.g., '1h', '24h'). Alternative to from_block/to_block. Solana slots are ~400ms.
from_blockNoStarting slot number (use this OR timeframe)
program_idNoProgram IDs. You can pass a single string or an array.
include_logsNoInclude program logs
is_committedNoOnly committed transactions
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
finalized_onlyNoOnly query finalized slots
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
mentions_accountNoAccounts mentioned anywhere in the instruction. You can pass a single string or an array.
include_transactionNoInclude transaction data
transaction_fee_payerNoFee payer filter. You can pass a single string or an array.
include_inner_instructionsNoInclude inner (CPI) instructions
include_transaction_balancesNoInclude SOL balance changes
include_transaction_instructionsNoInclude all instructions from the parent transaction (sibling instructions)
include_transaction_token_balancesNoInclude token balance changes

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 transactionsA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax transactions to return (default: 20, max: 25)
cursorNoContinuation cursor from a previous response
networkNoNetwork name or alias. Optional when continuing with cursor.
to_blockNoEnding slot number
fee_payerNoFee payer addresses
timeframeNoTime range (e.g., '1h', '24h'). Alternative to from_block/to_block.
from_blockNoStarting slot number (use this OR timeframe)
include_logsNoInclude program logs
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
finalized_onlyNoOnly query finalized slots
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
include_rewardsNoInclude block rewards (validator staking rewards). Filter by pubkey using mentions_account.
response_formatNoResponse 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_balancesNoInclude SOL balance changes
mentions_accountNoAccounts mentioned anywhere in the transaction
include_instructionsNoInclude instruction data
include_token_balancesNoInclude SPL token balance changes

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 activityA
Read-only
Inspect

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"}

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoExecution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.deep
networkNoSubstrate network name (default: polkadot)polkadot
to_blockNoEnding block number
timeframeNoTime range like '1h', '6h', or '24h'. Default: '1h'
from_blockNoStarting block number (use this OR timeframe)
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
section_limitNoMax rows to keep in ranked event and call sections
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago".
response_formatNoResponse format: 'summary' (headline metrics only), 'compact' (core sections), 'full' (full dashboard payload)full

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 callsA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax calls to return (max: 10; use compact mode for context-rich rows)
cursorNoContinuation cursor from a previous response
networkNoSubstrate network name or alias. Optional when continuing with cursor.
to_blockNoEnding block number
timeframeNoTime range (e.g. '1h', '24h'). Alternative to from_block/to_block.
call_namesNoOptional qualified call names like Timestamp.set or Balances.transfer_keep_alive
from_blockNoStarting block number
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
include_stackNoAttach the parent call stack for each matching call
finalized_onlyNoOnly query finalized blocks
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago".
include_eventsNoAttach events emitted directly by each matching call
response_formatNoResponse format: defaults to 'compact' for chat-friendly output. Compact mode keeps requested subcalls, events, and extrinsic context in a smaller inline shape.
include_subcallsNoAttach direct descendant calls inline for each matching call
include_extrinsicNoAttach the parent extrinsic inline for each matching call

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 eventsA
Read-only
Inspect

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax events to return (max: 10; use compact mode for context-rich rows)
cursorNoContinuation cursor from a previous response
networkNoSubstrate network name or alias. Optional when continuing with cursor.
to_blockNoEnding block number
timeframeNoTime range (e.g. '1h', '24h'). Alternative to from_block/to_block.
from_blockNoStarting block number
event_namesNoOptional qualified event names like Balances.Transfer or System.ExtrinsicSuccess
include_callNoAttach the emitting call inline when the event has call context
to_timestampNoEnding timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".
include_stackNoAttach the parent call stack when the event has nested call context
finalized_onlyNoOnly query finalized blocks
from_timestampNoStarting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago".
response_formatNoResponse format: defaults to 'compact' for chat-friendly output. Compact mode keeps requested extrinsic or call context in a smaller inline shape.
include_extrinsicNoAttach the parent extrinsic inline for each matching event

Output Schema

ParametersJSON Schema
NameRequiredDescription
_uiNoOptional chart, table, and follow-up presentation metadata.
_appNoSQD Explorer identity and honest host-render state.
_llmNoHints that help an AI client locate the primary evidence.
_metaNoNetwork, block range, timing, and row-count metadata.
errorNoStructured failure details when the tool cannot complete the request.
itemsNoPrimary result rows when the tool returns a list.
valueNoPrimary result when the tool returns a scalar value.
answerNoConcise answer grounded in the returned blockchain data.
_noticeNoImportant limitation or truncation notice.
_serverNoObservable SQD server identity and exact release version.
displayNoPlain-language labels for presenting the result.
_noticesNoImportant limitations or truncation notices.
_summaryNoHuman-readable summary of the result.
_coverageNoCompleteness of the requested window and result set.
_evidenceNoReplayable arguments, exact-data digest, row count, and completeness receipt.
_orderingNoOrdering guarantees for the returned data.
_executionNoBounded execution and scan details.
_freshnessNoFreshness and finality information for the returned data.
next_stepsNoSafe follow-up actions and continuation guidance.
_paginationNoPagination state and an optional continuation cursor.
investigationNoEvidence paths, useful pivots, and result limitations.
pipes_handoffNoOptional SQD Pipes guidance for custom data needs.
_tool_contractNoTool identity, intent, and supported blockchain families.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 28 tool updates
    • Changedportal_bitcoin_get_analytics2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_bitcoin_query_transactions2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_debug_hyperliquid_query_replica_commands2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_debug_query_blocks2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_debug_resolve_time_to_block2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_evm_get_analytics2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_evm_get_contract_activity2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_evm_get_contract_deployment2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_evm_get_ohlc2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_evm_query_logs2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_evm_query_token_transfers2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_evm_query_transactions2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_get_head2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_get_network_info2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_get_recent_activity2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_get_time_series2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_get_wallet_summary4 fields changed
      • changedInput schema / properties / limit_per_type / description
        Previous 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."
      • changedInput schema / properties / limit_per_type / maximum
        Previous value: -5New value: +10
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_hyperliquid_get_analytics2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_hyperliquid_get_ohlc6 fields changed
      • removedInput schema / properties / duration / default
        Removed value: -"1h"
      • changedInput schema / properties / duration / description
        Previous 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\"."
      • addedInput schema / properties / from_timestamp
        Added 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."
        +}
      • addedInput schema / properties / to_timestamp
        Added 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."
        +}
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_hyperliquid_query_fills4 fields changed
      • changedInput schema / properties / limit / description
        Previous 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."
      • changedInput schema / properties / limit / maximum
        Previous value: -25New value: +200
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_list_networks2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_resolve_entity2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_solana_get_analytics2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_solana_query_instructions2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_solana_query_transactions2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_substrate_get_analytics2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_substrate_query_calls2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
    • Changedportal_substrate_query_events2 fields changed
      • changedOutput schema / properties / _app / description
        Previous value: -"SQD Blockchain Activity Explorer identity and honest host-render state."New value: +"SQD Explorer identity and honest host-render state."
      • addedOutput schema / properties / _server
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Observable SQD server identity and exact release version.",
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "version"
        +  ],
        +  "type": "object"
        +}
  2. 28 tool updates
    • Changedportal_bitcoin_get_analytics1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_bitcoin_query_transactions4 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -50New value: +20
      • changedInput schema / properties / limit / description
        Previous value: -"Max transactions to return (default: 50, max: 200)"New value: +"Max transactions to return (default: 20, max: 25)"
      • changedInput schema / properties / limit / maximum
        Previous value: -200New value: +25
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_debug_hyperliquid_query_replica_commands6 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -50New value: +1
      • changedInput schema / properties / limit / description
        Previous 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."
      • addedInput schema / properties / limit / maximum
        Added value: +1
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_debug_query_blocks1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_debug_resolve_time_to_block1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_get_analytics1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_get_contract_activity1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_get_contract_deployment1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_get_ohlc1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_query_logs5 fields changed
      • changedInput schema / properties / limit / description
        Previous 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."
      • changedInput schema / properties / limit / maximum
        Previous value: -200New value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_query_token_transfers1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_query_transactions5 fields changed
      • changedInput schema / properties / limit / description
        Previous 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."
      • changedInput schema / properties / limit / maximum
        Previous value: -200New value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_get_head1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_get_network_info1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_get_recent_activity5 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Max transactions to return (max: 200)"New value: +"Max activity rows to return (default: 10, max: 25)"
      • changedInput schema / properties / limit / maximum
        Previous value: -200New value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_get_time_series1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_get_wallet_summary6 fields changed
      • changedInput schema / properties / limit_per_type / default
        Previous value: -10New value: +5
      • changedInput schema / properties / limit_per_type / description
        Previous 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."
      • addedInput schema / properties / limit_per_type / maximum
        Added value: +5
      • addedInput schema / properties / limit_per_type / minimum
        Added value: +1
      • changedInput schema / properties / limit_per_type / type
        Previous value: -"number"New value: +"integer"
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_hyperliquid_get_analytics1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_hyperliquid_get_ohlc1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_hyperliquid_query_fills4 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -50New value: +20
      • changedInput schema / properties / limit / description
        Previous value: -"Max fills to return (default: 50, max: 200)"New value: +"Max fills to return (default: 20, max: 25)"
      • changedInput schema / properties / limit / maximum
        Previous value: -200New value: +25
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_list_networks1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_resolve_entity1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_solana_get_analytics1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_solana_query_instructions6 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -50New value: +20
      • changedInput schema / properties / limit / description
        Previous value: -"Max instructions"New value: +"Max instructions (default: 20, max: 25)"
      • addedInput schema / properties / limit / maximum
        Added value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_solana_query_transactions4 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -50New value: +20
      • changedInput schema / properties / limit / description
        Previous value: -"Max transactions to return (default: 50, max: 200)"New value: +"Max transactions to return (default: 20, max: 25)"
      • changedInput schema / properties / limit / maximum
        Previous value: -200New value: +25
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_substrate_get_analytics1 field changed
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_substrate_query_calls6 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -50New value: +10
      • changedInput schema / properties / limit / description
        Previous value: -"Max calls to return"New value: +"Max calls to return (max: 10; use compact mode for context-rich rows)"
      • addedInput schema / properties / limit / maximum
        Added value: +10
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_substrate_query_events6 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -50New value: +10
      • changedInput schema / properties / limit / description
        Previous value: -"Max events to return"New value: +"Max events to return (max: 10; use compact mode for context-rich rows)"
      • addedInput schema / properties / limit / maximum
        Added value: +10
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedOutput schema / properties / _app
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "SQD Blockchain Activity Explorer identity and honest host-render state.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
  3. 28 tool updates
    • Changedportal_bitcoin_get_analytics1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_bitcoin_query_transactions1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_debug_hyperliquid_query_replica_commands1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_debug_query_blocks1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_debug_resolve_time_to_block1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_get_analytics1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_get_contract_activity1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_get_contract_deployment1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_get_ohlc1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_query_logs1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_query_token_transfers1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_evm_query_transactions1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_get_head1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_get_network_info1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_get_recent_activity1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_get_time_series1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_get_wallet_summary1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_hyperliquid_get_analytics1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_hyperliquid_get_ohlc1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_hyperliquid_query_fills1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_list_networks1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_resolve_entity1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_solana_get_analytics1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_solana_query_instructions1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_solana_query_transactions1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_substrate_get_analytics1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_substrate_query_calls1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedportal_substrate_query_events1 field changed
      • addedOutput schema / properties / _evidence
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Replayable arguments, exact-data digest, row count, and completeness receipt.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
  4. 28 tool updates
    • Changedportal_bitcoin_get_analytics1 field changed
      • changedOutput 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"
        +}
    • Changedportal_bitcoin_query_transactions1 field changed
      • changedOutput 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"
        +}
    • Changedportal_debug_hyperliquid_query_replica_commands1 field changed
      • changedOutput 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"
        +}
    • Changedportal_debug_query_blocks1 field changed
      • changedOutput 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"
        +}
    • Changedportal_debug_resolve_time_to_block1 field changed
      • changedOutput 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"
        +}
    • Changedportal_evm_get_analytics1 field changed
      • changedOutput 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"
        +}
    • Changedportal_evm_get_contract_activity1 field changed
      • changedOutput 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"
        +}
    • Changedportal_evm_get_contract_deployment1 field changed
      • changedOutput 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"
        +}
    • Changedportal_evm_get_ohlc1 field changed
      • changedOutput 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"
        +}
    • Changedportal_evm_query_logs1 field changed
      • changedOutput 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"
        +}
    • Changedportal_evm_query_token_transfers1 field changed
      • changedOutput 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"
        +}
    • Changedportal_evm_query_transactions1 field changed
      • changedOutput 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"
        +}
    • Changedportal_get_head1 field changed
      • changedOutput 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"
        +}
    • Changedportal_get_network_info1 field changed
      • changedOutput 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"
        +}
    • Changedportal_get_recent_activity1 field changed
      • changedOutput 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"
        +}
    • Changedportal_get_time_series1 field changed
      • changedOutput 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"
        +}
    • Changedportal_get_wallet_summary1 field changed
      • changedOutput 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"
        +}
    • Changedportal_hyperliquid_get_analytics1 field changed
      • changedOutput 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"
        +}
    • Changedportal_hyperliquid_get_ohlc1 field changed
      • changedOutput 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"
        +}
    • Changedportal_hyperliquid_query_fills1 field changed
      • changedOutput 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"
        +}
    • Changedportal_list_networks1 field changed
      • changedOutput 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"
        +}
    • Changedportal_resolve_entity1 field changed
      • changedOutput 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"
        +}
    • Changedportal_solana_get_analytics1 field changed
      • changedOutput 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"
        +}
    • Changedportal_solana_query_instructions1 field changed
      • changedOutput 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"
        +}
    • Changedportal_solana_query_transactions1 field changed
      • changedOutput 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"
        +}
    • Changedportal_substrate_get_analytics1 field changed
      • changedOutput 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"
        +}
    • Changedportal_substrate_query_calls1 field changed
      • changedOutput 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"
        +}
    • Changedportal_substrate_query_events1 field changed
      • changedOutput 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"
        +}
  5. 3 tool updates
    • Changedportal_evm_query_logs1 field changed
      • changedInput schema / properties / timeframe / description
        Previous 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."
    • Changedportal_evm_query_transactions1 field changed
      • changedInput schema / properties / timeframe / description
        Previous 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)."
    • Changedportal_list_networks1 field changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Continuation cursor from a previous network catalog page",
        +  "type": "string"
        +}
  6. 28 tool updates
    • Changedportal_bitcoin_get_analytics6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
    • Changedportal_bitcoin_query_transactions6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_debug_hyperliquid_query_replica_commands6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_debug_query_blocks6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_debug_resolve_time_to_block4 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_evm_get_analytics6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_evm_get_contract_activity6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
    • Changedportal_evm_get_contract_deployment6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_evm_get_ohlc6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / fee / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / fee / minimum
        Added value: +-9007199254740991
      • addedInput schema / properties / tick_spacing / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / tick_spacing / minimum
        Added value: +-9007199254740991
    • Changedportal_evm_query_logs7 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / max_scan_blocks
        Added 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"
        +}
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_evm_query_token_transfers6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_evm_query_transactions14 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / min_effective_gas_price_wei / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / min_effective_gas_price_wei / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
      • addedInput schema / properties / min_gas_used / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / min_gas_used / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
      • addedInput schema / properties / min_value_wei / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / min_value_wei / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / transaction_type / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / transaction_type / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_get_head2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedportal_get_network_info2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedportal_get_recent_activity6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_get_time_series6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_get_wallet_summary6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
    • Changedportal_hyperliquid_get_analytics6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
    • Changedportal_hyperliquid_get_ohlc2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedportal_hyperliquid_query_fills6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_list_networks3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / vm / enum
        Previous value: -[
        -  "evm",
        -  "solana",
        -  "bitcoin",
        -  "substrate",
        -  "hyperliquid"
        -]New value: +[
        +  "evm",
        +  "tron",
        +  "solana",
        +  "bitcoin",
        +  "substrate",
        +  "hyperliquid"
        +]
    • Changedportal_resolve_entity2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedportal_solana_get_analytics6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
    • Changedportal_solana_query_instructions6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_solana_query_transactions6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_substrate_get_analytics6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_substrate_query_calls6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
    • Changedportal_substrate_query_events6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / from_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / from_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
      • addedInput schema / properties / to_timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / to_timestamp / type
        Removed value: -[
        -  "number",
        -  "string"
        -]
  7. 28 tool updates
    • First observedportal_bitcoin_get_analytics
    • First observedportal_bitcoin_query_transactions
    • First observedportal_debug_hyperliquid_query_replica_commands
    • First observedportal_debug_query_blocks
    • First observedportal_debug_resolve_time_to_block
    • First observedportal_evm_get_analytics
    • First observedportal_evm_get_contract_activity
    • First observedportal_evm_get_contract_deployment
    • First observedportal_evm_get_ohlc
    • First observedportal_evm_query_logs
    • First observedportal_evm_query_token_transfers
    • First observedportal_evm_query_transactions
    • First observedportal_get_head
    • First observedportal_get_network_info
    • First observedportal_get_recent_activity
    • First observedportal_get_time_series
    • First observedportal_get_wallet_summary
    • First observedportal_hyperliquid_get_analytics
    • First observedportal_hyperliquid_get_ohlc
    • First observedportal_hyperliquid_query_fills
    • First observedportal_list_networks
    • First observedportal_resolve_entity
    • First observedportal_solana_get_analytics
    • First observedportal_solana_query_instructions
    • First observedportal_solana_query_transactions
    • First observedportal_substrate_get_analytics
    • First observedportal_substrate_query_calls
    • First observedportal_substrate_query_events

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Thin 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.
    10
    28
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying on-chain data (balances, transactions, token transfers, blocks) across 20+ EVM chains through natural language.
    5
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count2/5

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.

Completeness4/5

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.