SQD Portal
REMOTE · PORTAL.SQD.DEV · SCANNED AUG 3
Query onchain data across EVM, Solana, Bitcoin, Substrate, and Hyperliquid via the SQD Portal API.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security51
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 28 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS not yet verified: we couldn't determine whether a plaintext access path exists. View diagnostics → Unverified
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability35
- 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Fail
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 14257 tokens (~445/item across 32 items; 28 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · portal.sqd.dev
claude mcp add --transport http subsquid-labs-portal-mcp-server https://portal.sqd.dev/mcp
[mcp_servers.subsquid-labs-portal-mcp-server] url = "https://portal.sqd.dev/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"subsquid-labs-portal-mcp-server": {
"type": "remote",
"url": "https://portal.sqd.dev/mcp",
"enabled": true
}
}
} openclaw mcp add subsquid-labs-portal-mcp-server --url https://portal.sqd.dev/mcp --transport streamable-http
mcp_servers:
subsquid-labs-portal-mcp-server:
url: "https://portal.sqd.dev/mcp" {
"mcpServers": {
"subsquid-labs-portal-mcp-server": {
"type": "http",
"url": "https://portal.sqd.dev/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 52
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://portal.sqd.dev/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=sqd.dev | CN=WE1,O=Google Trust Services,C=US | 11 Jul 2026 | 9 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 20153086aeabc4960ecefb1421d91752 |
| SANs: sqd.dev, *.sqd.dev, *.docs.sqd.dev | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of portal.sqd.dev. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| dev. | present | 60074 | 8 | Verified |
| sqd.dev. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://portal.sqd.dev/mcp | Verified | 200 | |
| http (plaintext) | http://portal.sqd.dev/mcp | Inconclusive | 405 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
portal_bitcoin_get_analytics ~364
Get the big picture for Bitcoin block, fee, and address activity over a recent or explicit window. COMMON USER ASKS: - Bitcoin network snapshot FIRST CHOICE FOR: - the big picture for Bitcoin right now WHEN TO USE: - You want the big picture for Bitcoin right now. - You want a network-level Bitcoin snapshot. - You care about block cadence, fees, SegWit/Taproot adoption, or activity metrics. DON'T USE: - You need raw transactions rather than network analytics. EXAMPLES: - Bitcoin network snapshot: {"network":"bitcoin-mainnet","timeframe":"1h"}
| Name | Type | Req | Description |
|---|---|---|---|
| from_block | number | — | Starting block number (use this OR timeframe) |
| from_timestamp | string|number | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago". |
| include_address_activity | boolean | — | Include unique address count and output value (requires extra queries, slower) |
| mode | string | — | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. |
| network | string | — | Network name (default: bitcoin-mainnet) |
| response_format | string | — | Response format: 'summary' (high-level metrics only), 'compact' (core sections, lighter payload), 'full' (complete analytics). |
| timeframe | string | — | Time range: '1h' (~6 blocks), '6h' (~36 blocks), '24h' (~144 blocks). Default: '1h' |
| to_block | number | — | Ending block number |
| to_timestamp | string|number | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_bitcoin_query_transactions ~375
Query raw Bitcoin transactions and optionally attach inputs and outputs inline. COMMON USER ASKS: - Recent Bitcoin transactions - Attach inputs and outputs WHEN TO USE: - You need raw Bitcoin transaction records. - You want the UTXO envelope without switching to separate input/output tools. DON'T USE: - You only need a quick wallet or network summary. EXAMPLES: - Recent Bitcoin transactions: {"network":"bitcoin-mainnet","timeframe":"1h","limit":20} - Attach inputs and outputs: {"network":"bitcoin-mainnet","timeframe":"1h","include_inputs":true,"include_outputs":true,"limit":10}
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Continuation cursor from a previous response |
| finalized_only | boolean | — | Only query finalized blocks |
| from_block | number | — | Starting block number |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_inputs | boolean | — | Attach transaction inputs inline |
| include_outputs | boolean | — | Attach transaction outputs inline |
| limit | integer | — | Max transactions to return (default: 50, max: 200) |
| network | string | — | Network name (default: bitcoin-mainnet). Optional when continuing with cursor. |
| response_format | string | — | Response format: defaults to 'compact' for chat-friendly output. Compact mode keeps inline inputs and outputs in a smaller shape when requested. |
| timeframe | string | — | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. |
| to_block | number | — | Ending block number |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_debug_hyperliquid_query_replica_commands ~363
ADVANCED: Query Hyperliquid replica-command actions such as orders, cancels, and leverage updates. COMMON USER ASKS: - Recent order actions 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 actions: {"network":"hyperliquid-replica-cmds","timeframe":"1h","limit":20}
| Name | Type | Req | Description |
|---|---|---|---|
| action_type | array | — | Action types to filter |
| cursor | string | — | Continuation cursor from a previous response |
| finalized_only | boolean | — | Only query finalized blocks |
| from_block | number | — | Starting block number (use this OR timeframe) |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| limit | number | — | Max actions to return |
| network | string | — | Network name (default: 'hyperliquid-replica-cmds'). Optional when continuing with cursor. |
| status | string | — | Filter by action status |
| timeframe | string | — | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. |
| to_block | number | — | Ending block number |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
| user | array | — | User wallet addresses (0x-prefixed, lowercase) |
| vault_address | array | — | Vault addresses (0x-prefixed, lowercase) |
No output schema declared.
No examples provided.
portal_debug_query_blocks ~378
ADVANCED: Query raw block records directly for EVM, Solana, or Bitcoin. COMMON USER ASKS: - Recent Base blocks WHEN TO USE: - You are debugging Portal coverage or block-level fields. - You need raw block records instead of transactions, logs, or summaries. DON'T USE: - You are answering a normal end-user question; prefer recent activity, time series, or raw transaction tools first. EXAMPLES: - Recent Base blocks: {"network":"base-mainnet","timeframe":"1h","limit":5}
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Continuation cursor from a previous response |
| field_preset | string | — | Field preset for EVM datasets: 'minimal' (number+timestamp+gas), 'standard' (+hash+miner+size), 'full' (all block fields). Ignored for Solana/Bitcoin. |
| finalized_only | boolean | — | Only query finalized blocks |
| from_block | number | — | Starting block number (use this OR timeframe) |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_l2_fields | boolean | — | Include L2-specific fields (auto-detected for L2 chains) |
| limit | number | — | Max blocks to return (default: 20). Note: Lower default for MCP to reduce context usage. |
| network | string | — | Network name or alias. Optional when continuing with cursor. |
| timeframe | string | — | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. |
| to_block | number | — | Ending block number |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_debug_resolve_time_to_block ~196
ADVANCED: Resolve a timestamp to the nearest indexed block or slot. COMMON USER ASKS: - Resolve one hour ago on Base - Resolve an older time on Polkadot WHEN TO USE: - You are debugging timestamp windows or building a manual block-range query. - You want to inspect exact versus estimated timestamp-to-block resolution. DON'T USE: - You just want to query by time; most public tools already accept natural timestamps directly. EXAMPLES: - Resolve one hour ago on Base: {"network":"base-mainnet","timestamp":"1h ago"} - Resolve an older time on Polkadot: {"network":"polkadot","timestamp":"2026-04-08T12:00:00Z"}
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | yes | Network name or alias |
| timestamp | number|string | yes | Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago" |
No output schema declared.
No examples provided.
portal_evm_get_analytics ~369
Get the big picture for network-wide EVM activity with ranked contracts and compact overview metrics. COMMON USER ASKS: - Top contracts on Base FIRST CHOICE FOR: - the big picture for activity on an EVM network like Base or Optimism WHEN TO USE: - You want the big picture for activity on an EVM network. - You want the most active contracts on an EVM network. - You want an analytics-style network overview instead of a raw record list. DON'T USE: - You need chart buckets over time rather than ranked entities. EXAMPLES: - Top contracts on Base: {"network":"base-mainnet","timeframe":"1h","limit":10}
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Continuation cursor from a previous response |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_details | boolean | — | Include sample transaction hashes for each contract |
| limit | number | — | Number of top contracts to return (default: 10, max: 100) |
| mode | string | — | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. |
| network | string | — | Network name (supports short names: 'ethereum', 'polygon', 'base', etc.). Optional when continuing with cursor. |
| num_blocks | number | — | Number of recent blocks to analyze when timeframe is omitted (default: 50, max: 10000) |
| timeframe | string | — | Optional natural time window like '1h' or '24h' |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_evm_get_contract_activity ~330
Summarize what one specific contract has been doing lately, including recent interactions, unique callers, and optional event activity. COMMON USER ASKS: - Contract activity snapshot FIRST CHOICE FOR: - what one specific contract has been doing lately on an EVM network WHEN TO USE: - You want to ask "what has this contract been doing?" and get a contract-level answer. - You want a contract-centric activity summary instead of raw records. - You need top callers and interaction volume for one contract. DON'T USE: - You need the underlying raw logs or transactions. - You want general recent network activity without naming one contract. EXAMPLES: - Contract activity snapshot: {"network":"base-mainnet","contract_address":"0xabc...","timeframe":"24h"}
| Name | Type | Req | Description |
|---|---|---|---|
| contract_address | string | yes | Contract address to analyze |
| from_timestamp | string|number | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_events | boolean | — | Include event log summary |
| mode | string | — | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. |
| network | string | yes | Network name or alias |
| timeframe | string | — | Analysis period as timeframe or block count. Examples: '1h', '24h', '7d', '3d', '1000'. |
| to_timestamp | string|number | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_evm_get_contract_deployment ~579
Locate the create trace and parent transaction that deployed a specific EVM contract address within a bounded window. COMMON USER ASKS: - Find BAYC deployment - Find recent deployment - Find deployment from known range FIRST CHOICE FOR: - who deployed this EVM contract - when was this contract deployed - what deployment transaction created this contract WHEN TO USE: - You need the deployer, deployment block, deployment timestamp, or deployment transaction for an EVM contract. - You can provide a starting block/time window, a contract address, or a supported well-known contract alias such as BAYC/Bored Apes. - You want a deployment lookup instead of general contract activity. DON'T USE: - You need all activity for a contract after deployment. - The contract is old and no block/time hint is available; provide from_block or from_timestamp first. EXAMPLES: - Find BAYC deployment: {"network":"ethereum-mainnet","contract":"bored apes","from_block":12000000,"to_block":13000000,"scan_order":"earliest"} - Find recent deployment: {"network":"base-mainnet","contract_address":"0xabc...","search_depth_blocks":100000} - Find deployment from known range: {"network":"ethereum-mainnet","contract_address":"0xabc...","from_block":17000000,"to_block":17100000,"scan_order":"earliest"}
| Name | Type | Req | Description |
|---|---|---|---|
| contract | string | — | Contract address or a supported well-known alias/name, e.g. "bayc" or "bored apes" on Ethereum. |
| contract_address | string | — | Contract address whose deployment transaction should be located. |
| from_block | number | — | Optional starting block. Provide this for older contracts when the deployment is not recent. |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "7d ago". |
| max_scan_blocks | number | — | Safety cap for historical deployment scans. Default: scan the requested window up to 1,000,000 blocks. |
| network | string | yes | EVM network name or alias, e.g. base, ethereum, arbitrum. |
| scan_order | string | — | Scan latest first for recent deployments, or earliest first when you provide a historical from_block. |
| search_depth_blocks | number | — | When no explicit range is given, search this many recent blocks backward from the indexed head. |
| timeframe | string | — | Optional recent time window to search, e.g. "24h" or "7d". |
| to_block | number | — | Optional ending block. Defaults to the indexed head. |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_evm_get_ohlc ~989
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<pool-address>","duration":"1h","interval":"5m","price_in":"auto","include_recent_trades":true} - Base Uniswap candles: {"network":"base-mainnet","source":"uniswap_v3_swap","pool_address":"0x<pool-address>","duration":"1h","interval":"5m","price_in":"auto"} - Base Uniswap v4 candles: {"network":"base-mainnet","source":"uniswap_v4_swap","pool_id":"0x<pool-id>","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<pool-address>","duration":"1h","interval":"5m","price_in":"token1"}
| Name | Type | Req | Description |
|---|---|---|---|
| base_token | string | — | Legacy orientation input. Prefer price_in instead. |
| currency0_address | string | — | Optional Uniswap v4 currency0 address. Use with currency1_address, fee, and tick_spacing to derive pool_id factually. |
| currency1_address | string | — | Optional Uniswap v4 currency1 address. Use with currency0_address, fee, and tick_spacing to derive pool_id factually. |
| cursor | string | — | Continuation cursor from a previous candle page |
| duration | string | — | How much recent history to cover. Accepts compact durations like "1h" or natural phrases like "past 30 minutes". |
| fee | integer | — | Optional Uniswap v4 LP fee in hundredths of a bip, e.g. 3000 for 0.30%. |
| hooks_address | string | — | Optional Uniswap v4 hooks contract address. Defaults to the zero address when omitted. |
| include_recent_trades | boolean | — | Include a recent trade tape for swap-derived sources when factual per-trade amounts are available. |
| interval | string | — | Candle interval. auto uses chart-friendly defaults like 1h→5m and 24h→1h. |
| mode | string | — | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. |
| network | string | — | EVM network name (default: base-mainnet) |
| pool_address | string | — | Pool/pair contract address for address-keyed sources like Uniswap v3, Slipstream, or Sync-derived CPMM pools. |
| pool_id | string | — | Uniswap v4 pool id (bytes32). Optional when you provide the full v4 pool key instead. |
| pool_manager_address | string | — | Uniswap v4 PoolManager address. Optional on networks with a built-in official Uniswap deployment mapping. |
| price_in | string | — | Choose which token the displayed price should be expressed in. auto picks the more human-readable quote side. |
| recent_trades_limit | integer | — | Maximum number of recent trades to return in the trade tape. |
| source | string | — | Which event source to build candles from. Prefer swap-derived sources for factual trade prices and volumes. Uniswap v4 uses PoolManager Swap events filtered by pool_id, not a per-pool contract addres… |
| tick_spacing | integer | — | Optional Uniswap v4 tick spacing. Required with the rest of the pool key when deriving pool_id. |
| token0_address | string | — | Optional token0 address to infer known decimals |
| token0_decimals | number | — | Optional token0 decimals for human-readable prices |
| token0_symbol | string | — | Optional token0 symbol label for summaries |
| token1_address | string | — | Optional token1 address to infer known decimals |
| token1_decimals | number | — | Optional token1 decimals for human-readable prices |
| token1_symbol | string | — | Optional token1 symbol label for summaries |
No output schema declared.
No examples provided.
portal_evm_query_logs ~1,205
Query raw EVM logs with address/topic filters, common event aliases, earliest/latest scanning, and optional inline decoding. COMMON USER ASKS: - Recent USDC Transfer logs - First recent USDC Transfer log - Latest ERC721/pass mint ID and tx hash FIRST CHOICE FOR: - NFT or ERC721 mint lookups such as latest pass minted, token ID, and mint transaction hash - contract event questions where the user needs exact event evidence rather than wallet or transaction summaries WHEN TO USE: - You need event logs filtered by contract or topic signature. - You want decoded log hints while still keeping the raw log shape available. - You want the first or last matching event in a bounded block/time window. - You want common event names such as transfer, approval, swap, mint, or burn instead of remembering topic0 hashes. - You need the latest ERC721/pass mint in a bounded deployment/recent window: filter Transfer events with topic1 as the zero address, use scan_order=latest, limit=1, and decode=true to expose decoded_log.decoded.token_id plus transaction_hash. DON'T USE: - You only want token transfers, which are easier with the token-transfer tool. EXAMPLES: - Recent USDC Transfer logs: {"network":"base-mainnet","timeframe":"1h","token_symbols":["USDC"],"event":"transfer","limit":20} - First recent USDC Transfer log: {"network":"base-mainnet","timeframe":"1h","token_symbols":["USDC"],"event":"transfer","scan_order":"earliest","limit":1} - Latest ERC721/pass mint ID and tx hash: {"network":"base-mainnet","from_block":46020000,"to_block":46100000,"addresses":["0xE4E70FdF2Fc1147a7f35c4c5de88E6BeA63eeAfA"],"event":"transfer","topic1":["0x0000000000000000000000000000000000000000000000000000000000000000"],"scan_order":"latest","decode":true,"include_transaction":true,"limit":1} - Decode logs inline: {"network":"ethereum-mainnet","timeframe":"1h","topic0":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],"decode":true,"limit":10}
| Name | Type | Req | Description |
|---|---|---|---|
| addresses | array | — | Contract addresses to filter (e.g., ['0xUSDC...', '0xDAI...']). IMPORTANT: Always include this or topics for fast queries. |
| cursor | string | — | Continuation cursor from a previous response |
| decode | boolean | — | Decode known log signatures inline when topics/data are available |
| event | — | — | Common event alias or topic0 hash. Examples: "transfer", "approval", "swap", "sync", "deposit", "withdrawal". Merges with topic0. |
| field_preset | string | — | Field preset: 'minimal' (address+topic0+block, ~80% smaller), 'standard' (all topics+timestamp), 'full' (includes raw data hex, largest). Use 'minimal' to reduce context usage. |
| finalized_only | boolean | — | Only query finalized blocks |
| from_block | number | — | Starting block number (use this OR timeframe) |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_transaction | boolean | — | Include parent transaction data |
| include_transaction_logs | boolean | — | Include all logs from parent transactions |
| include_transaction_traces | boolean | — | Include traces for parent transactions |
| limit | number | — | Max logs to return (default: 20, max: 200). Note: Lower default for MCP to reduce context usage. |
| max_token_symbol_matches | number | — | Maximum token-list matches to include per token symbol. Use addresses for deterministic single-contract filters. |
| network | string | — | Network name or alias. Optional when continuing with cursor. |
| response_format | string | — | Response format: defaults to 'compact' for chat-friendly output, or stays 'full' when inline transaction context is requested. Use 'summary' for counting or categorizing. |
| scan_order | string | — | Which side of the block window to scan first. Use earliest for first-event questions. |
| timeframe | string | — | Time range (e.g., '24h', '7d'). Alternative to from_block/to_block. Supported: 1h, 6h, 12h, 24h, 3d, 7d, 14d, 30d |
| to_block | number | — | Ending block number. RECOMMENDED: <10k blocks for fast (<1s) responses. Larger ranges may be slow or timeout. |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
| token_symbols | array | — | Token symbols to resolve via open token-list data and merge into addresses, e.g. ["USDC"]. |
| topic0 | array | — | Event signatures (topic0). E.g., Transfer = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef |
| topic1 | array | — | Topic1 filter (often: from address in Transfer, indexed parameter 1) |
| topic2 | array | — | Topic2 filter (often: to address in Transfer, indexed parameter 2) |
| topic3 | array | — | Topic3 filter (indexed parameter 3, chain-specific) |
No output schema declared.
No examples provided.
portal_evm_query_token_transfers ~541
Query token-transfer activity on EVM without needing to remember Transfer event signatures. Best for "did token X move?" and asset-tracing questions. COMMON USER ASKS: - Recent USDC transfers - First recent USDC transfer WHEN TO USE: - You want ERC-20 style transfer activity filtered by token, sender, or recipient. - You want the fastest answer to a token movement question like "did USDC move?". - You are tracing suspicious, stolen, bridged, or exploit-related token movement and need sender/recipient/transaction pivots. - You want the easiest raw transfer query on an EVM network. - You need the first matching transfer in a bounded window without typing the Transfer topic hash. DON'T USE: - You need arbitrary event logs beyond token transfers. EXAMPLES: - Recent USDC transfers: {"network":"base-mainnet","timeframe":"1h","token_symbols":["USDC"],"limit":20} - First recent USDC transfer: {"network":"base-mainnet","timeframe":"1h","token_symbols":["USDC"],"scan_order":"earliest","limit":1}
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Continuation cursor from a previous response |
| from_addresses | array | — | Sender addresses |
| from_block | number | — | Starting block number |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_token_info | boolean | — | Include token metadata (symbol, decimals) inline. Avoids separate token metadata lookups. |
| limit | number | — | Max transfers |
| max_token_symbol_matches | number | — | Maximum token-list matches to include per token symbol. Use token_addresses for deterministic single-contract filters. |
| network | string | — | Network name or alias. Optional when continuing with cursor. |
| scan_order | string | — | Which side of the block window to scan first. Use earliest for first-transfer questions. |
| timeframe | string | — | Time range (e.g., '1h', '24h'). Alternative to block numbers. |
| to_addresses | array | — | Recipient addresses |
| to_block | number | — | Ending block number. RECOMMENDED: <10k blocks for fast responses. |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
| token_addresses | array | — | Token contract addresses |
| token_symbols | array | — | Token symbols to resolve via open token-list data, e.g. ["USDC"]. Merges with token_addresses. |
No output schema declared.
No examples provided.
portal_evm_query_transactions ~1,506
Query raw EVM transactions with optional logs, traces, state-diff context, and evidence pivots for transaction-level investigations. COMMON USER ASKS: - Recent Base transactions - Filter by sender - First EIP-2930 transaction from Berlin fork WHEN TO USE: - You need raw transaction records on an EVM network. - You want chain-specific transaction fields or include flags that convenience tools do not expose. - You need exact transaction evidence for an investigation, including sender, receiver, transaction hash, logs, traces, or failed calls. - You need to find the first transaction matching a raw field condition such as transaction type 0x1 from a known block. - You need top-N raw transactions ranked by value, gas used, or effective gas price. - You need top senders or receivers from a bounded transaction window. - You want common method names such as transfer, approve, deposit, or withdraw instead of remembering sighashes. - You want calls to a token contract by symbol, such as transfer calls to USDC, without hardcoding token addresses. DON'T USE: - You only need a quick recent feed or wallet-level summary. EXAMPLES: - Recent Base transactions: {"network":"base-mainnet","timeframe":"1h","limit":20} - Filter by sender: {"network":"ethereum-mainnet","timeframe":"6h","from_addresses":["0xabc..."],"limit":20} - First EIP-2930 transaction from Berlin fork: {"network":"ethereum-mainnet","from_block":12244000,"transaction_type":"0x1","scan_order":"earliest","limit":1,"field_preset":"minimal"} - Largest recent calls to a resolved token contract: {"network":"base-mainnet","timeframe":"1h","to_token_symbols":["USDC"],"method":"transfer","order_by":"gas_used_desc","limit":5} - Top senders by transaction count: {"network":"base-mainnet","timeframe":"1h","aggregate_by":"sender","aggregate_metric":"count","limit":10}
| Name | Type | Req | Description |
|---|---|---|---|
| aggregate_by | string | — | Optional bounded aggregation for top sender/receiver questions. Returns ranked address rows instead of raw transactions. |
| aggregate_metric | string | — | Metric used with aggregate_by. count ranks by tx count; value by total native value; gas_used by total gas used; effective_gas_price by max effective gas price. |
| contract_creation | boolean | — | FILTER: true returns contract-creation transactions; false excludes them. Useful for "first contract creation from this wallet". |
| cursor | string | — | Continuation cursor from a previous response |
| field_preset | string | — | Field preset: 'minimal' (from/to/value+block, ~70% smaller), 'standard' (hash+gas+timestamp), 'full' (includes input data hex, largest). Use 'minimal' to reduce context usage. |
| finalized_only | boolean | — | Only query finalized blocks |
| first_nonce | number | — | Minimum nonce |
| from_addresses | array | — | FILTER: Sender addresses (wallets or contracts that initiated the transaction). Optional if limit <=100. |
| from_block | number | — | Starting block number (use this OR timeframe). Large ranges OK with low limit (<=100). |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| from_token_symbols | array | — | Resolve token symbols via open token-list data and merge them into from_addresses. Rare, but useful for token-contract-originated transactions. |
| include_l2_fields | boolean | — | Include L2-specific fields |
| include_logs | boolean | — | Include logs emitted by transactions |
| include_state_diffs | boolean | — | Include state diffs caused by transactions |
| include_traces | boolean | — | Include traces for transactions |
| last_nonce | number | — | Maximum nonce |
| limit | number | — | Max transactions (default: 20, max: 200). Note: Lower default for MCP to reduce context usage. |
| max_scan_blocks | number | — | Safety cap for first/last/ranked client-side scans. Default: min(window, 10000 blocks). |
| max_token_symbol_matches | number | — | Maximum token-list matches to include per token symbol. Use from_addresses/to_addresses for deterministic single-contract filters. |
| method | — | — | FILTER: Common EVM method alias or 4-byte sighash. Examples: "transfer", "approve", "transferFrom", "deposit", "withdraw". Merges with sighash. |
| min_effective_gas_price_wei | string|number | — | FILTER/RANKING: Minimum effectiveGasPrice in wei. Accepts decimal or hex string. |
| min_gas_used | string|number | — | FILTER/RANKING: Minimum receipt gasUsed. Accepts decimal or hex string. |
| min_value_wei | string|number | — | FILTER/RANKING: Minimum native token value in wei. Accepts decimal or hex string. |
| network | string | — | Network name or alias. Optional when continuing with cursor. |
| order_by | string | — | Optional ranking for top-N questions. Use value_desc, gas_used_desc, or effective_gas_price_desc. |
| response_format | string | — | Response format: defaults to 'compact' for chat-friendly output, or stays 'full' when inline logs, traces, or state diffs are requested. Use 'summary' for counting or profiling. |
| scan_order | string | — | Which side of the block window to scan first. Normal previews default to latest; transaction_type searches default to earliest, so "first tx type 0x1 from block N" scans forward from from_block. |
| sighash | array | — | FILTER: Function sighash (4-byte hex, e.g., '0xa9059cbb' for transfer). Optional if limit <=100. |
| timeframe | string | — | 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). |
| to_addresses | array | — | FILTER: Recipient addresses (typically contracts being called, or wallets receiving ETH). Optional if limit <=100. |
| to_block | number | — | Ending block number. RECOMMENDED: <5k blocks for fast (<500ms) responses. Larger ranges may be slow. |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
| to_token_symbols | array | — | Resolve token symbols via open token-list data and merge them into to_addresses, e.g. transfer/approve calls to USDC. |
| transaction_status | — | — | FILTER: Transaction receipt status. Use "success"/1 or "failed"/0 for failed/reverted transaction searches. |
| transaction_type | number|string | — | FILTER: EVM transaction type. Accepts decimal or hex strings such as 0, 1, 2, "0x0", "0x1", "0x2". Applied client-side while streaming Portal results; use with scan_order="earliest" and from_block to… |
No output schema declared.
No examples provided.
portal_get_head ~160
Get just the latest indexed head block or slot for a network. COMMON USER ASKS: - Latest head - Finalized head FIRST CHOICE FOR: - getting the current indexed head before building a manual block range WHEN TO USE: - You only need the current block or slot number. - You need the current head before building a raw block-range query. DON'T USE: - You want to know if the network is caught up, behind, fresh, or what tables are available. EXAMPLES: - Latest head: {"network":"base-mainnet"} - Finalized head: {"network":"ethereum-mainnet","type":"finalized"}
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | yes | Network name or alias |
| type | string | — | Block type |
No output schema declared.
No examples provided.
portal_get_network_info ~145
Answer "is this network caught up?" with indexing freshness, lag, heads, and available tables. COMMON USER ASKS: - Is Base caught up? FIRST CHOICE FOR: - checking indexing head, lag, tables, and capabilities for one network WHEN TO USE: - You want to know whether a network is indexed, fresh, caught up, or behind before querying. - You need chain family, real-time status, or available tables for a network. DON'T USE: - You only need the latest block or slot number. EXAMPLES: - Is Base caught up?: {"network":"base-mainnet"}
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | yes | Network name or alias |
No output schema declared.
No examples provided.
portal_get_recent_activity ~458
Get a simple recent-activity feed across EVM, Solana, Bitcoin, or Hyperliquid with chronological paging and investigation pivots. COMMON USER ASKS: - Recent activity on Base - Recent Hyperliquid fills FIRST CHOICE FOR: - recent activity on any supported network without manual block math - questions like "what has been happening on Base lately?" - first-pass incident triage when the user asks what happened recently on a network WHEN TO USE: - You want a quick recent-activity feed for a network. - You want to ask what has been happening lately on a network and see the newest activity first. - You want the simplest starting point before reaching for raw VM-specific query tools. - You are investigating an incident and need a bounded, recent evidence timeline before narrowing to wallets, transfers, logs, or fills. DON'T USE: - You need raw logs, instructions, or chain-specific fields that only raw query tools return. - You want a chart over time rather than a recent feed. EXAMPLES: - Recent activity on Base: {"network":"base-mainnet","timeframe":"1h","limit":10} - Recent Hyperliquid fills: {"network":"hyperliquid-fills","timeframe":"1h","limit":10}
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Continuation cursor from a previous response |
| from_addresses | array | — | Filter by sender addresses |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| limit | number | — | Max transactions to return (max: 200) |
| network | string | — | Network name (supports short names: 'polygon', 'base', 'ethereum', 'arbitrum', etc.). Optional when continuing with cursor. |
| timeframe | string | — | Time period or block count. Examples: '100' (default), '1h', '6h', '24h', '7d', '3d'. |
| to_addresses | array | — | Filter by recipient addresses |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_get_time_series ~517
Build simple activity charts and other time-series views across supported VMs, including compare-previous windows and grouped EVM contract trends. COMMON USER ASKS: - Base transactions per 15m bucket - Compare two periods FIRST CHOICE FOR: - activity over time, compare-current-vs-previous, grouped trends, and simple activity charts WHEN TO USE: - You want chart-ready metric buckets over time. - You want a simple activity chart for a network, defaulting to a 6h interactive window unless a longer window is explicitly requested. - You want to compare the current period to the previous period. DON'T USE: - You need raw record lists instead of aggregated buckets. - You need DEX pool candles or OHLC output. EXAMPLES: - Base transactions per 15m bucket: {"network":"base-mainnet","metric":"transaction_count","duration":"6h","interval":"15m"} - Compare two periods: {"network":"solana-mainnet","metric":"transaction_count","duration":"1h","interval":"5m","compare_previous":true}
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | — | Optional: Filter to specific contract address for contract-specific trends |
| compare_previous | boolean | — | Compare the selected window against the immediately previous window |
| duration | string | — | Total time period to analyze. Defaults to "6h" for interactive use. Explicit longer windows like "24h" or "7d" are supported but can take longer. Accepts compact durations like "30m" or natural phras… |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "24h ago". |
| group_by | string | — | Optional grouping mode. contract is currently supported only for EVM transaction_count |
| group_limit | number | — | Maximum number of contract groups when group_by=contract |
| interval | string | yes | Time bucket interval (5m, 15m, 1h, 6h, 1d) |
| metric | string | yes | Metric to aggregate over time |
| mode | string | — | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. |
| network | string | yes | Network name (supports short names: 'ethereum', 'polygon', 'base', etc.) |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_get_wallet_summary ~525
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, top counterparties, largest movements, and exact next pivots before drilling into raw transactions or fills. - The user asks to investigate a suspicious wallet, stolen-funds path, exploit counterparty, or incident address. DON'T USE: - You need every raw record with full chain-specific fields and no summarization. EXAMPLES: - EVM wallet fund-flow triage: {"network":"base-mainnet","address":"0xabc...","timeframe":"24h"} - Solana wallet activity and fee flow: {"network":"solana-mainnet","address":"Vote111...","timeframe":"6h"}
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | — | Wallet address to analyze. Optional when continuing with cursor. |
| cursor | string | — | Continuation cursor from a previous response |
| from_timestamp | string|number | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_nfts | boolean | — | Include NFT transfers (ERC721/1155) |
| include_tokens | boolean | — | Include ERC20 token transfers |
| limit_per_type | number | — | Max items per category (txs, tokens, nfts) |
| mode | string | — | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. |
| network | string | — | Network name or alias. Optional when continuing with cursor. |
| response_format | string | — | Response format: defaults to 'compact' for a readable wallet investigation. Use 'summary' for headline flow only or 'full' for all returned activity rows. |
| timeframe | string | — | Look-back period as timeframe or block count. Examples: '1h', '24h', '7d', '3d', '1000'. |
| to_timestamp | string|number | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_hyperliquid_get_analytics ~393
Get the big-picture Hyperliquid fill analytics with top traders, volume by coin, fees, and PnL. COMMON USER ASKS: - Hyperliquid fill snapshot - Who traded the most? WHEN TO USE: - You want network-level Hyperliquid fill analytics. - You want to know who traded the most, which coins had volume, or how fees and PnL looked. - You want grouped aggregate sections without stitching raw fills together yourself. DON'T USE: - You need individual fill records or OHLC candles. EXAMPLES: - Hyperliquid fill snapshot: {"network":"hyperliquid-fills","timeframe":"1h"} - Who traded the most?: {"network":"hyperliquid-fills","timeframe":"1h"}
| Name | Type | Req | Description |
|---|---|---|---|
| coin | array | — | Filter by asset symbols (e.g., ["BTC", "ETH"]) |
| cursor | string | — | Continuation cursor for ranked analytics sections |
| from_timestamp | string|number | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago". |
| mode | string | — | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. |
| network | string | — | Network name (default: 'hyperliquid-fills') |
| response_format | string | — | Response format: 'summary' (smallest snapshot), 'compact' (chat-sized ranked sections, default), 'full' (complete analytics). |
| section_limit | number | — | Per-section page size for ranked sections. Default: 6 |
| timeframe | string | — | Time range: '1h', '6h', '24h'. Default: '1h' |
| to_timestamp | string|number | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_hyperliquid_get_ohlc ~277
Build chart-ready Hyperliquid trade OHLC candles with fixed buckets and auto intervals. COMMON USER ASKS: - BTC candles WHEN TO USE: - You want candles for one coin on Hyperliquid. - You need chart-ready OHLC, volume, and VWAP data from fills. DON'T USE: - You want scalar time-series buckets or raw fills. EXAMPLES: - BTC candles: {"network":"hyperliquid-fills","coin":"BTC","duration":"6h","interval":"auto"}
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | — | Asset symbol to build candles for (for example: "BTC", "ETH", "SOL"). Optional when continuing with cursor. |
| cursor | string | — | Continuation cursor from a previous candle page |
| duration | string | — | How much recent trading history to cover. Accepts compact durations like "1h" or natural phrases like "past 30 minutes". |
| interval | string | — | Candle interval. Use auto for chart-friendly defaults: 1h→5m, 6h→15m, 12h→30m, 24h→1h. |
| network | string | — | Network name (default: 'hyperliquid-fills') |
| user | string | — | Optional trader wallet address (0x-prefixed, lowercase) |
No output schema declared.
No examples provided.
portal_hyperliquid_query_fills ~499
Query raw individual Hyperliquid fills with trader, coin, fee, PnL, and builder context. COMMON USER ASKS: - Recent BTC fills WHEN TO USE: - You need raw fill records on Hyperliquid. - You want to filter by trader, coin, direction, builder, or fee token. DON'T USE: - You want the big picture, top traders, grouped aggregates, or candles instead of raw fill rows. EXAMPLES: - Recent BTC fills: {"network":"hyperliquid-fills","timeframe":"1h","coin":["BTC"],"limit":20}
| Name | Type | Req | Description |
|---|---|---|---|
| builder | array | — | Builder addresses (0x-prefixed, lowercase) |
| cloid | array | — | Client order IDs (0x-prefixed hex) |
| coin | array | — | Asset symbols (e.g., "ETH", "BTC", "SOL") |
| cursor | string | — | Continuation cursor from a previous response |
| dir | array | — | Trade direction: "Open Long", "Close Long", "Open Short", "Close Short" |
| fee_token | array | — | Fee token symbols |
| finalized_only | boolean | — | Only query finalized blocks |
| from_block | number | — | Starting block number (use this OR timeframe) |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_builder_info | boolean | — | Include builder and builderFee fields |
| include_pnl | boolean | — | Include closedPnl and startPosition fields |
| limit | integer | — | Max fills to return (default: 50, max: 200) |
| network | string | — | Network name (default: 'hyperliquid-fills'). Optional when continuing with cursor. |
| response_format | string | — | Response format: defaults to 'compact' for chat-friendly output. Use 'summary' for aggregate stats or 'full' when you truly need every fill field. |
| timeframe | string | — | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. |
| to_block | number | — | Ending block number |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
| user | array | — | Trader wallet addresses (0x-prefixed, lowercase) |
No output schema declared.
No examples provided.
portal_list_networks ~268
Find the right network or chain name to use across EVM, Solana, Bitcoin, Substrate, and Hyperliquid. COMMON USER ASKS: - Find Base-like networks - Show Solana mainnets - Show Substrate mainnets FIRST CHOICE FOR: - finding the correct network before any other query WHEN TO USE: - You are not sure which network name, chain name, or alias to use. - You want to filter networks by VM family, network type, or real-time availability. DON'T USE: - You already know the exact network and want live data from that network. EXAMPLES: - Find Base-like networks: {"query":"base","limit":10} - Show Solana mainnets: {"vm":"solana","network_type":"mainnet"} - Show Substrate mainnets: {"vm":"substrate","network_type":"mainnet"}
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Max results to return (default: 25, max: 100) |
| network_type | string | — | Filter by network type |
| query | string | — | Search by name, alias, or chain ID |
| real_time_only | boolean | — | Only show networks with a real-time indexed head |
| vm | string | — | Filter by VM family |
No output schema declared.
No examples provided.
portal_resolve_entity ~464
Resolve user-facing blockchain entities into query-ready identifiers, with ambiguity kept explicit. COMMON USER ASKS: - Resolve USDC on Base - Resolve WETH on Ethereum - Resolve BAYC contract FIRST CHOICE FOR: - resolving a token symbol like USDC to token contract addresses - resolving EVM contract aliases, protocol names, pool identifiers, or Hyperliquid coin names before querying - checking which token-list addresses a symbol maps to before querying logs or transfers - turning a user-friendly token name into deterministic EVM filters WHEN TO USE: - The user names a token symbol such as USDC, WETH, DAI, or PEPE and you need contract addresses before querying raw data. - The user names a well-known EVM contract, protocol, pool identifier, or Hyperliquid ticker and you need a deterministic follow-up filter. - You need to disambiguate bridged token variants on an EVM network. - You want a source-backed token address rather than relying on memory or hardcoded constants. DON'T USE: - You already have the exact address, pool id, protocol slug, or coin filter and can pass it directly. EXAMPLES: - Resolve USDC on Base: {"network":"base-mainnet","kind":"token","query":"USDC","limit":10} - Resolve WETH on Ethereum: {"network":"ethereum-mainnet","kind":"token","query":"WETH","limit":5} - Resolve BAYC contract: {"network":"ethereum-mainnet","kind":"contract","query":"bored apes"} - Resolve Hyperliquid coin: {"kind":"hyperliquid_coin","query":"bitcoin"}
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | — | Entity kind to resolve: token, contract alias/address, pool identifier, protocol name, or Hyperliquid coin/ticker. |
| limit | number | — | Maximum matches to return. |
| network | string | — | Network name or alias when the entity is network-scoped, e.g. "base", "ethereum", "arbitrum-one", or "hyperliquid-fills". |
| query | string | yes | Entity string to resolve, e.g. "USDC", "bayc", "uniswap", "BTC", or "0x...". |
No output schema declared.
No examples provided.
portal_solana_get_analytics ~435
Get the big picture for Solana throughput, fees, wallet activity, and optional top-program usage. COMMON USER ASKS: - Solana network snapshot - Include top programs FIRST CHOICE FOR: - the big picture for Solana right now WHEN TO USE: - You want the big picture for Solana right now. - You want a network health snapshot for Solana. - You want throughput, fee, success-rate, or top-program analytics rather than raw records. DON'T USE: - You want chart buckets or raw transaction/instruction records. EXAMPLES: - Solana network snapshot: {"network":"solana-mainnet","timeframe":"1h"} - Include top programs: {"network":"solana-mainnet","timeframe":"1h","include_programs":true}
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Continuation cursor for paginating top_programs |
| from_timestamp | string|number | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_compute_units | boolean | — | Include average compute-unit stats across the full range (disabled by default for speed) |
| include_programs | boolean | — | Include top programs by instruction count (requires an extra instruction scan and is slower) |
| mode | string | — | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. |
| network | string | — | Network name (default: solana-mainnet) |
| program_limit | number | — | Max top-program rows to return per page when include_programs is enabled |
| response_format | string | — | Response format: 'summary' (high-level metrics), 'compact' (core sections), 'full' (complete analytics). |
| timeframe | string | — | Time range. Accepts compact durations like '15m' or natural phrases like 'past 30 minutes'. Optional; defaults to a 1h analysis window. |
| to_timestamp | string|number | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_solana_query_instructions ~927
Query raw Solana instructions with program and account filters. COMMON USER ASKS: - Token Program instructions WHEN TO USE: - You need program-level or account-level instruction activity. - You want to inspect Token Program, Jupiter, System Program, or Anchor discriminator activity. DON'T USE: - You only need transaction-level activity and not individual instructions. EXAMPLES: - Token Program instructions: {"network":"solana-mainnet","timeframe":"1h","program_id":["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],"limit":20}
| Name | Type | Req | Description |
|---|---|---|---|
| a0 | — | — | Account at index 0. You can pass a single string or an array. |
| a1 | — | — | Account at index 1. You can pass a single string or an array. |
| a10 | — | — | Account at index 10. You can pass a single string or an array. |
| a11 | — | — | Account at index 11. You can pass a single string or an array. |
| a12 | — | — | Account at index 12. You can pass a single string or an array. |
| a13 | — | — | Account at index 13. You can pass a single string or an array. |
| a14 | — | — | Account at index 14. You can pass a single string or an array. |
| a15 | — | — | Account at index 15. You can pass a single string or an array. |
| a2 | — | — | Account at index 2. You can pass a single string or an array. |
| a3 | — | — | Account at index 3. You can pass a single string or an array. |
| a4 | — | — | Account at index 4. You can pass a single string or an array. |
| a5 | — | — | Account at index 5. You can pass a single string or an array. |
| a6 | — | — | Account at index 6. You can pass a single string or an array. |
| a7 | — | — | Account at index 7. You can pass a single string or an array. |
| a8 | — | — | Account at index 8. You can pass a single string or an array. |
| a9 | — | — | Account at index 9. You can pass a single string or an array. |
| cursor | string | — | Continuation cursor from a previous response |
| d1 | — | — | 1-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array. |
| d2 | — | — | 2-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array. |
| d4 | — | — | 4-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array. |
| d8 | — | — | 8-byte discriminator filter - Anchor (0x-prefixed hex). You can pass a single string or an array. |
| finalized_only | boolean | — | Only query finalized slots |
| from_block | number | — | Starting slot number (use this OR timeframe) |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_inner_instructions | boolean | — | Include inner (CPI) instructions |
| include_logs | boolean | — | Include program logs |
| include_transaction | boolean | — | Include transaction data |
| include_transaction_balances | boolean | — | Include SOL balance changes |
| include_transaction_instructions | boolean | — | Include all instructions from the parent transaction (sibling instructions) |
| include_transaction_token_balances | boolean | — | Include token balance changes |
| is_committed | boolean | — | Only committed transactions |
| limit | number | — | Max instructions |
| mentions_account | — | — | Accounts mentioned anywhere in the instruction. You can pass a single string or an array. |
| network | string | — | Network name or alias. Optional when continuing with cursor. |
| program_id | — | — | Program IDs. You can pass a single string or an array. |
| timeframe | string | — | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. Solana slots are ~400ms. |
| to_block | number | — | Ending slot number. Keep ranges reasonable for performance. |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
| transaction_fee_payer | — | — | Fee payer filter. You can pass a single string or an array. |
No output schema declared.
No examples provided.
portal_solana_query_transactions ~496
Query raw Solana transactions with optional balances, rewards, logs, and instruction context. COMMON USER ASKS: - Recent Solana transactions - Filter by program WHEN TO USE: - You need raw Solana transaction records. - You want Solana-specific filters or include flags that convenience tools do not expose. DON'T USE: - You only want recent activity or a compact network summary. EXAMPLES: - Recent Solana transactions: {"network":"solana-mainnet","timeframe":"1h","limit":20} - Filter by program: {"network":"solana-mainnet","timeframe":"1h","program_id":["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],"limit":20}
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Continuation cursor from a previous response |
| fee_payer | array | — | Fee payer addresses |
| finalized_only | boolean | — | Only query finalized slots |
| from_block | number | — | Starting slot number (use this OR timeframe) |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago". |
| include_balances | boolean | — | Include SOL balance changes |
| include_instructions | boolean | — | Include instruction data |
| include_logs | boolean | — | Include program logs |
| include_rewards | boolean | — | Include block rewards (validator staking rewards). Filter by pubkey using mentions_account. |
| include_token_balances | boolean | — | Include SPL token balance changes |
| limit | integer | — | Max transactions to return (default: 50, max: 200) |
| mentions_account | array | — | Accounts mentioned anywhere in the transaction |
| network | string | — | Network name or alias. Optional when continuing with cursor. |
| response_format | string | — | Response format: defaults to 'compact' for chat-friendly output, or stays 'full' when inline instruction, balance, log, or reward context is requested. Use 'summary' for aggregate stats. |
| timeframe | string | — | Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. |
| to_block | number | — | Ending slot number |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_substrate_get_analytics ~498
Analytics snapshot for Substrate or Polkadot activity in an indexed window, with event, call, and extrinsic counts plus top event and call names. COMMON USER ASKS: - Polkadot activity snapshot - Big picture for Polkadot activity - How is Polkadot doing? FIRST CHOICE FOR: - Polkadot activity analytics in an indexed window - how Polkadot is doing in an indexed window - analytics snapshot for Polkadot or another Substrate network in an indexed window WHEN TO USE: - You want Polkadot activity analytics in a selected indexed window. - You want to ask "how is Polkadot doing in this indexed window?" and get an analytics answer rather than just network freshness metadata. - You want a quick Substrate network snapshot or health check. - You want top pallet events and calls rather than raw rows. - You want to know how a Substrate network is doing in the selected indexed window. DON'T USE: - You need full raw event or call records. EXAMPLES: - Polkadot activity snapshot: {"network":"polkadot","timeframe":"1h"} - Big picture for Polkadot activity: {"network":"polkadot","timeframe":"1h"} - How is Polkadot doing?: {"network":"polkadot","timeframe":"6h"}
| Name | Type | Req | Description |
|---|---|---|---|
| from_block | number | — | Starting block number (use this OR timeframe) |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago". |
| mode | string | — | Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews. |
| network | string | — | Substrate network name (default: polkadot) |
| response_format | string | — | Response format: 'summary' (headline metrics only), 'compact' (core sections), 'full' (full dashboard payload) |
| section_limit | number | — | Max rows to keep in ranked event and call sections |
| timeframe | string | — | Time range like '1h', '6h', or '24h'. Default: '1h' |
| to_block | number | — | Ending block number |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_substrate_query_calls ~518
Query raw Substrate or Polkadot calls with pallet/call-name filters and optional child-call, emitted-event, or extrinsic context. COMMON USER ASKS: - Recent Balances calls - Polkadot calls with emitted events FIRST CHOICE FOR: - raw Substrate or Polkadot call rows, especially when you want the events emitted by those calls WHEN TO USE: - You need raw call records on a Substrate network. - You want pallet call activity like Balances.transfer_keep_alive or Ethereum.transact. - You want calls plus the events emitted by those calls. DON'T USE: - You want events or aggregate analytics rather than call rows. EXAMPLES: - Recent Balances calls: {"network":"polkadot","timeframe":"1h","call_names":["Balances.transfer_keep_alive"],"limit":20} - Polkadot calls with emitted events: {"network":"polkadot","timeframe":"1h","call_names":["ParaInherent.enter"],"include_events":true,"limit":20}
| Name | Type | Req | Description |
|---|---|---|---|
| call_names | array | — | Optional qualified call names like Timestamp.set or Balances.transfer_keep_alive |
| cursor | string | — | Continuation cursor from a previous response |
| finalized_only | boolean | — | Only query finalized blocks |
| from_block | number | — | Starting block number |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago". |
| include_events | boolean | — | Attach events emitted directly by each matching call |
| include_extrinsic | boolean | — | Attach the parent extrinsic inline for each matching call |
| include_stack | boolean | — | Attach the parent call stack for each matching call |
| include_subcalls | boolean | — | Attach direct descendant calls inline for each matching call |
| limit | number | — | Max calls to return |
| network | string | — | Substrate network name or alias. Optional when continuing with cursor. |
| response_format | string | — | Response format: defaults to 'compact' for chat-friendly output. Compact mode keeps requested subcalls, events, and extrinsic context in a smaller inline shape. |
| timeframe | string | — | Time range (e.g. '1h', '24h'). Alternative to from_block/to_block. |
| to_block | number | — | Ending block number |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.
portal_substrate_query_events ~460
Query raw Substrate or Polkadot event rows with pallet/event-name filters and optional parent call or extrinsic context. COMMON USER ASKS: - Balances.Transfer events on Polkadot FIRST CHOICE FOR: - raw Substrate or Polkadot event rows with optional parent call or extrinsic context WHEN TO USE: - You need raw event records on a Substrate network. - You want pallet-level event activity like Balances.Transfer or Contracts.ContractEmitted. - You want event rows first, even if the network is a Polkadot-family chain. DON'T USE: - You want calls or aggregate analytics rather than event rows. EXAMPLES: - Balances.Transfer events on Polkadot: {"network":"polkadot","timeframe":"1h","event_names":["Balances.Transfer"],"limit":20}
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Continuation cursor from a previous response |
| event_names | array | — | Optional qualified event names like Balances.Transfer or System.ExtrinsicSuccess |
| finalized_only | boolean | — | Only query finalized blocks |
| from_block | number | — | Starting block number |
| from_timestamp | number|string | — | Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago". |
| include_call | boolean | — | Attach the emitting call inline when the event has call context |
| include_extrinsic | boolean | — | Attach the parent extrinsic inline for each matching event |
| include_stack | boolean | — | Attach the parent call stack when the event has nested call context |
| limit | number | — | Max events to return |
| network | string | — | Substrate network name or alias. Optional when continuing with cursor. |
| response_format | string | — | Response format: defaults to 'compact' for chat-friendly output. Compact mode keeps requested extrinsic or call context in a smaller inline shape. |
| timeframe | string | — | Time range (e.g. '1h', '24h'). Alternative to from_block/to_block. |
| to_block | number | — | Ending block number |
| to_timestamp | number|string | — | Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now". |
No output schema declared.
No examples provided.