accueil / serveurs / Finance & Paiement / io.github.subsquid-labs/portal-mcp-server
io.github.subsquid-labs/portal-mcp-server
serveur MCP (Model Context Protocol) · sqd-portal-mcp-server 0.8.5
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.subsquid-labs/portal-mcp-server est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.subsquid-labs/portal-mcp-server » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 31 outils
- portal_bitcoin_get_analytics≈ 1180 tokens
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"}
Paramètres, retour & exemple (9)
Paramètresmode· string · optionnel · fast | deep
Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.network· string · optionnel
Network name (default: bitcoin-mainnet)to_block· number · optionnel
Ending block numbertimeframe· string · optionnel
Time range: '1h' (~6 blocks), '6h' (~36 blocks), '24h' (~144 blocks). Default: '1h'from_block· number · optionnel
Starting block number (use this OR timeframe)to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".from_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago".response_format· string · optionnel · full | compact | summary
Response format: 'summary' (high-level metrics only), 'compact' (core sections, lighter payload), 'full' (complete analytics).include_address_activity· boolean · optionnel
Include unique address count and output value (requires extra queries, slower)
Exemple d'appel{"name": "portal_bitcoin_get_analytics", "arguments": {"mode": "fast", "network": "texte", "to_block": 1, "timeframe": "texte", "from_block": 1, "to_timestamp": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_bitcoin_query_transactions≈ 1279 tokens
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}
Paramètres, retour & exemple (12)
Paramètreslimit· integer · optionnel
Max transactions to return (default: 20, max: 25). With include_inputs or include_outputs and response_format "full", a page near the maximum can exceed the 50,000-byte response budget; the response_too_large error then names the limit to retry with.cursor· string · optionnel
Continuation cursor from a previous responsenetwork· string · optionnel
Network name (default: bitcoin-mainnet). Optional when continuing with cursor.to_block· number · optionnel
Ending block numbertimeframe· string · optionnel
Time range (e.g., '1h', '24h'). Alternative to from_block/to_block.from_block· number · optionnel
Starting block numberto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".finalized_only· boolean · optionnel
Only query finalized blocksfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".include_inputs· boolean · optionnel
Attach transaction inputs inlineinclude_outputs· boolean · optionnel
Attach transaction outputs inlineresponse_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for chat-friendly output. Compact mode keeps inline inputs and outputs in a smaller shape when requested.
Exemple d'appel{"name": "portal_bitcoin_query_transactions", "arguments": {"limit": 1, "cursor": "texte", "network": "texte", "to_block": 1, "timeframe": "texte", "from_block": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_debug_hyperliquid_query_replica_commands≈ 1268 tokens
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}
Paramètres, retour & exemple (13)
Paramètresuser· array · optionnel
User wallet addresses (0x-prefixed, lowercase)limit· integer · optionnel
Max actions to return (1). Replica command payloads can contain large batches, so this exact one-record cursor page is the verified safe response budget.cursor· string · optionnel
Continuation cursor from a previous responsestatus· string · optionnel · ok | err
Filter by action statusnetwork· string · optionnel
Network name (default: 'hyperliquid-replica-cmds'). Optional when continuing with cursor.to_block· number · optionnel
Ending block numbertimeframe· string · optionnel
Time range (e.g., '1h', '24h'). Alternative to from_block/to_block.from_block· number · optionnel
Starting block number (use this OR timeframe)action_type· array · optionnel
Action types to filterto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".vault_address· array · optionnel
Vault addresses (0x-prefixed, lowercase)finalized_only· boolean · optionnel
Only query finalized blocksfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
Exemple d'appel{"name": "portal_debug_hyperliquid_query_replica_commands", "arguments": {"user": [], "limit": 1, "cursor": "texte", "status": "ok", "network": "texte", "to_block": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_debug_query_blocks≈ 1182 tokens
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}
Paramètres, retour & exemple (11)
Paramètreslimit· number · optionnel
Max blocks to return (default: 20). Note: Lower default for MCP to reduce context usage.cursor· string · optionnel
Continuation cursor from a previous responsenetwork· string · optionnel
Network name or alias. Optional when continuing with cursor.to_block· number · optionnel
Ending block numbertimeframe· string · optionnel
Time range (e.g., '1h', '24h'). Alternative to from_block/to_block.from_block· number · optionnel
Starting block number (use this OR timeframe)field_preset· string · optionnel · minimal | standard | full
Field preset for EVM datasets: 'minimal' (number+timestamp+gas), 'standard' (+hash+miner+size), 'full' (all block fields). Ignored for Solana/Bitcoin.to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".finalized_only· boolean · optionnel
Only query finalized blocksfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".include_l2_fields· boolean · optionnel
Include L2-specific fields (auto-detected for L2 chains)
Exemple d'appel{"name": "portal_debug_query_blocks", "arguments": {"limit": 1, "cursor": "texte", "network": "texte", "to_block": 1, "timeframe": "texte", "from_block": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_debug_resolve_time_to_block≈ 906 tokens
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"}
Paramètres, retour & exemple (2)
Paramètresnetwork· string · requis
Network name or aliastimestamp· ? · requis
Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago"
Exemple d'appel{"name": "portal_debug_resolve_time_to_block", "arguments": {"network": "texte", "timestamp": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_evm_get_analytics≈ 1186 tokens
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}
Paramètres, retour & exemple (9)
Paramètresmode· string · optionnel · fast | deep
Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.limit· number · optionnel
Number of top contracts to return (default: 10, max: 100)cursor· string · optionnel
Continuation cursor from a previous responsenetwork· string · optionnel
Network name (supports short names: 'ethereum', 'polygon', 'base', etc.). Optional when continuing with cursor.timeframe· string · optionnel
Optional natural time window like '1h' or '24h'num_blocks· number · optionnel
Number of recent blocks to analyze when timeframe is omitted (default: 50, max: 10000)to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".from_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".include_details· boolean · optionnel
Include sample transaction hashes for each contract
Exemple d'appel{"name": "portal_evm_get_analytics", "arguments": {"mode": "fast", "limit": 1, "cursor": "texte", "network": "texte", "timeframe": "texte", "num_blocks": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_evm_get_contract_activity≈ 1144 tokens
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"}
Paramètres, retour & exemple (7)
Paramètresmode· string · optionnel · fast | deep
Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.network· string · requis
Network name or aliastimeframe· string · optionnel
Analysis period as timeframe or block count. Examples: '1h', '24h', '7d', '3d', '1000'.to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".from_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".include_events· boolean · optionnel
Include event log summarycontract_address· string · requis
Contract address to analyze
Exemple d'appel{"name": "portal_evm_get_contract_activity", "arguments": {"network": "texte", "contract_address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_evm_get_contract_deployment≈ 1451 tokens
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"}
Paramètres, retour & exemple (11)
Paramètresnetwork· string · requis
EVM network name or alias, e.g. base, ethereum, arbitrum.contract· string · optionnel
Contract address or a supported well-known alias/name, e.g. "bayc" or "bored apes" on Ethereum.to_block· number · optionnel
Optional ending block. Defaults to the indexed head.timeframe· string · optionnel
Optional recent time window to search, e.g. "24h" or "7d".from_block· number · optionnel
Optional starting block. Provide this for older contracts when the deployment is not recent.scan_order· string · optionnel · latest | earliest
Scan latest first for recent deployments, or earliest first when you provide a historical from_block.to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".from_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "7d ago".max_scan_blocks· number · optionnel
Safety cap for historical deployment scans. Default: scan the requested window up to 1,000,000 blocks.contract_address· string · optionnel
Contract address whose deployment transaction should be located.search_depth_blocks· number · optionnel
When no explicit range is given, search this many recent blocks backward from the indexed head.
Exemple d'appel{"name": "portal_evm_get_contract_deployment", "arguments": {"network": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_evm_get_ohlc≈ 2031 tokens
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"}
Paramètres, retour & exemple (24)
Paramètresfee· integer · optionnel
Optional Uniswap v4 LP fee in hundredths of a bip, e.g. 3000 for 0.30%.mode· string · optionnel · fast | deep
Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.cursor· string · optionnel
Continuation cursor from a previous candle pagesource· string · optionnel · uniswap_v2_swap | uniswap_v3_swap | uniswap_v4_swap | aerodrome_slipstream_swap | uniswap_v2_sync
Which event source to build candles from. Prefer swap-derived sources for factual trade prices and volumes. Uniswap v4 uses PoolManager Swap events filtered by pool_id, not a per-pool contract address.network· string · optionnel
EVM network name (default: base-mainnet)pool_id· string · optionnel
Uniswap v4 pool id (bytes32). Optional when you provide the full v4 pool key instead.duration· string · optionnel
How much recent history to cover. Accepts compact durations like "1h" or natural phrases like "past 30 minutes".interval· string · optionnel · auto | 1m | 5m | 15m | 30m | 1h | 4h | 6h
Candle interval. auto uses chart-friendly defaults like 1h→5m and 24h→1h.price_in· string · optionnel · auto | token0 | token1
Choose which token the displayed price should be expressed in. auto picks the more human-readable quote side.base_token· string · optionnel · token0 | token1
Legacy orientation input. Prefer price_in instead.pool_address· string · optionnel
Pool/pair contract address for address-keyed sources like Uniswap v3, Slipstream, or Sync-derived CPMM pools.tick_spacing· integer · optionnel
Optional Uniswap v4 tick spacing. Required with the rest of the pool key when deriving pool_id.hooks_address· string · optionnel
Optional Uniswap v4 hooks contract address. Defaults to the zero address when omitted.token0_symbol· string · optionnel
Optional token0 symbol label for summariestoken1_symbol· string · optionnel
Optional token1 symbol label for summariestoken0_address· string · optionnel
Optional token0 address to infer known decimalstoken1_address· string · optionnel
Optional token1 address to infer known decimalstoken0_decimals· number · optionnel
Optional token0 decimals for human-readable pricestoken1_decimals· number · optionnel
Optional token1 decimals for human-readable pricescurrency0_address· string · optionnel
Optional Uniswap v4 currency0 address. Use with currency1_address, fee, and tick_spacing to derive pool_id factually.currency1_address· string · optionnel
Optional Uniswap v4 currency1 address. Use with currency0_address, fee, and tick_spacing to derive pool_id factually.recent_trades_limit· integer · optionnel
Maximum number of recent trades to return in the trade tape.pool_manager_address· string · optionnel
Uniswap v4 PoolManager address. Optional on networks with a built-in official Uniswap deployment mapping.include_recent_trades· boolean · optionnel
Include a recent trade tape for swap-derived sources when factual per-trade amounts are available.
Exemple d'appel{"name": "portal_evm_get_ohlc", "arguments": {"fee": 1, "mode": "fast", "cursor": "texte", "source": "uniswap_v2_swap", "network": "texte", "pool_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_evm_query_logs≈ 2272 tokens
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}
Paramètres, retour & exemple (25)
Paramètresevent· ? · optionnel
Common event alias or topic0 hash. Examples: "transfer", "approval", "swap", "sync", "deposit", "withdrawal". Merges with topic0.limit· integer · optionnel
Max logs to return (default: 20, max: 25). This verified ceiling keeps pages within MCP client budgets.cursor· string · optionnel
Continuation cursor from a previous responsedecode· boolean · optionnel
Decode known log signatures inline when topics/data are availabletopic0· array · optionnel
Event signatures (topic0). E.g., Transfer = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3eftopic1· array · optionnel
Topic1 filter (often: from address in Transfer, indexed parameter 1)topic2· array · optionnel
Topic2 filter (often: to address in Transfer, indexed parameter 2)topic3· array · optionnel
Topic3 filter (indexed parameter 3, chain-specific)network· string · optionnel
Network name or alias. Optional when continuing with cursor.to_block· number · optionnel
Ending block number. RECOMMENDED: <10k blocks for fast (<1s) responses. Larger ranges may be slow or timeout.addresses· array · optionnel
Contract addresses to filter (e.g., ['0xUSDC...', '0xDAI...']). IMPORTANT: Always include this or topics for fast queries.timeframe· string · optionnel
Natural time range such as '5m', '1h', '24h', '7d', or 'past 30 minutes'. Alternative to from_block/to_block.from_block· number · optionnel
Starting block number (use this OR timeframe)scan_order· string · optionnel · latest | earliest
Which side of the block window to scan first. Use earliest for first-event questions.field_preset· string · optionnel · minimal | standard | full
Field preset: 'minimal' (address+topic0+block, ~80% smaller), 'standard' (all topics+timestamp), 'full' (includes raw data hex, largest). Use 'minimal' to reduce context usage.to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".token_symbols· array · optionnel
Token symbols to resolve via open token-list data and merge into addresses, e.g. ["USDC"].finalized_only· boolean · optionnel
Only query finalized blocksfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".max_scan_blocks· integer · optionnel
Maximum blocks to inspect for bounded earliest/latest scans. Sparse latest searches default to 25,000 blocks to stay within MCP request timeouts; raise only when deeper coverage is worth the added latency.response_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for chat-friendly output, or stays 'full' when inline transaction context is requested. Use 'summary' for counting or categorizing.include_transaction· boolean · optionnel
Include parent transaction datainclude_transaction_logs· boolean · optionnel
Include all logs from parent transactionsmax_token_symbol_matches· number · optionnel
Maximum token-list matches to include per token symbol. Use addresses for deterministic single-contract filters.include_transaction_traces· boolean · optionnel
Include traces for parent transactions
Exemple d'appel{"name": "portal_evm_query_logs", "arguments": {"event": "texte", "limit": 1, "cursor": "texte", "decode": true, "topic0": [], "topic1": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_evm_query_token_transfers≈ 1454 tokens
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}
Paramètres, retour & exemple (15)
Paramètreslimit· number · optionnel
Max transferscursor· string · optionnel
Continuation cursor from a previous responsenetwork· string · optionnel
Network name or alias. Optional when continuing with cursor.to_block· number · optionnel
Ending block number. RECOMMENDED: <10k blocks for fast responses.timeframe· string · optionnel
Time range (e.g., '1h', '24h'). Alternative to block numbers.from_block· number · optionnel
Starting block numberscan_order· string · optionnel · latest | earliest
Which side of the block window to scan first. Use earliest for first-transfer questions.to_addresses· array · optionnel
Recipient addressesto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".token_symbols· array · optionnel
Token symbols to resolve via open token-list data, e.g. ["USDC"]. Merges with token_addresses.from_addresses· array · optionnel
Sender addressesfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".token_addresses· array · optionnel
Token contract addressesinclude_token_info· boolean · optionnel
Include token metadata (symbol, decimals) inline. Avoids separate token metadata lookups.max_token_symbol_matches· number · optionnel
Maximum token-list matches to include per token symbol. Use token_addresses for deterministic single-contract filters.
Exemple d'appel{"name": "portal_evm_query_token_transfers", "arguments": {"limit": 1, "cursor": "texte", "network": "texte", "to_block": 1, "timeframe": "texte", "from_block": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_evm_query_traces≈ 2049 tokens
Query raw EVM traces: internal calls, contract creations, self-destructs, and block rewards, filtered by caller, callee, method, deployer, or one transaction, with the parent transaction hash on every row. COMMON USER ASKS: - Internal calls of one transaction - Recent internal calls into a contract - Contracts deployed by an address FIRST CHOICE FOR: - what a transaction called internally, including value moved by internal calls - contracts deployed by an address, or the internal call tree behind an incident WHEN TO USE: - You need the internal calls of a transaction: which contracts it called, with what selector and value, and which calls failed. - You want contracts created by a deployer or the creation trace of a contract. - You are tracing an exploit or incident below the top-level transaction and log surface. - You want internal ETH transfers between contracts that emit no event. DON'T USE: - You only need top-level transactions or event logs; those tools are cheaper. - You need storage changes; state diffs are not exposed by this tool. EXAMPLES: - Internal calls of one transaction: {"network":"ethereum-mainnet","from_block":12244145,"to_block":12244145,"transaction_hash":"0x851bad0415758075a1eb86776749c829b866d43179c57c3e4a4b9359a0358231","limit":25} - Recent internal calls into a contract: {"network":"base-mainnet","timeframe":"10m","type":["call"],"call_to":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"],"method":"transfer","limit":20} - Contracts deployed by an address: {"network":"base-mainnet","timeframe":"24h","type":["create"],"create_from":["0x4200000000000000000000000000000000000006"],"limit":10}
Paramètres, retour & exemple (23)
Paramètrestype· array · optionnel
FILTER: trace types. 'create' covers both CREATE and CREATE2; 'reward' only exists on proof-of-work history.limit· integer · optionnel
Max traces to return (default: 20, max: 25)cursor· string · optionnel
Continuation cursor from a previous responsemethod· ? · optionnel
FILTER (call traces): method alias such as transfer, approve, deposit, or a 4-byte selector. Merges with call_sighash.call_to· array · optionnel
FILTER (call traces): called addresses.network· string · optionnel
Network name or alias. Optional when continuing with cursor.to_block· number · optionnel
Ending block number. Traces are expensive: keep filtered windows under 5,000 blocks.call_from· array · optionnel
FILTER (call traces): calling addresses, contracts or wallets.timeframe· string · optionnel
Time range (e.g., '10m', '1h'). Alternative to from_block/to_block. Keep it short for traces.from_block· number · optionnel
Starting block number (use this OR timeframe)scan_order· string · optionnel · earliest | latest
Which side of the block window to scan first. Use earliest for first-occurrence questions.create_from· array · optionnel
FILTER (create traces): deployer addresses.call_sighash· array · optionnel
FILTER (call traces): 4-byte selectors such as 0xa9059cbb.field_preset· string · optionnel · minimal | standard | full
Field preset: 'minimal' (type, from, to), 'standard' (value, selector, gas, result address), 'full' (adds call input and output and creation code).to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".finalized_only· boolean · optionnel
Only query finalized blocksfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".max_scan_blocks· integer · optionnel
Safety cap for bounded scans. Default: 5,000 blocks with filters, 100 without.response_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for chat-friendly output. Use 'summary' for counts by type, failures, value moved, and top callers.transaction_hash· string · optionnel
FILTER: keep only traces of this transaction. Give its block (from_block = to_block) or a window of at most 1,000 blocks; find the block with portal_evm_query_transactions first when unknown.include_subtraces· boolean · optionnel
Also return the child traces of each matching traceinclude_transaction· boolean · optionnel
Attach the parent transaction (sender, recipient, value, status). The hash is always attached.create_result_address· array · optionnel
FILTER (create traces): deployed contract addresses.
Exemple d'appel{"name": "portal_evm_query_traces", "arguments": {"type": [], "limit": 1, "cursor": "texte", "method": "texte", "call_to": [], "network": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_evm_query_transactions≈ 2808 tokens
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}
Paramètres, retour & exemple (35)
Paramètreslimit· integer · optionnel
Max transactions (default: 20, max: 25). This verified ceiling keeps pages within MCP client budgets.cursor· string · optionnel
Continuation cursor from a previous responsemethod· ? · optionnel
FILTER: Common EVM method alias or 4-byte sighash. Examples: "transfer", "approve", "transferFrom", "deposit", "withdraw". Merges with sighash.network· string · optionnel
Network name or alias. Optional when continuing with cursor.sighash· array · optionnel
FILTER: Function sighash (4-byte hex, e.g., '0xa9059cbb' for transfer). Optional if limit <=100.order_by· string · optionnel · chronological | value_desc | gas_used_desc | effective_gas_price_desc
Optional ranking for top-N questions. Use value_desc, gas_used_desc, or effective_gas_price_desc.to_block· number · optionnel
Ending block number. RECOMMENDED: <5k blocks for fast (<500ms) responses. Larger ranges may be slow.timeframe· string · optionnel
Natural time range such as '5m', '1h', '24h', '7d', or 'past 30 minutes'. Alternative to from_block/to_block. Large ranges are allowed with a low limit (<=100).from_block· number · optionnel
Starting block number (use this OR timeframe). Large ranges OK with low limit (<=100).last_nonce· number · optionnel
Maximum noncescan_order· string · optionnel · latest | earliest
Which side of the block window to scan first. Normal previews default to latest; transaction_type searches default to earliest, so "first tx type 0x1 from block N" scans forward from from_block.first_nonce· number · optionnel
Minimum nonceaggregate_by· string · optionnel · sender | receiver
Optional bounded aggregation for top sender/receiver questions. Returns ranked address rows instead of raw transactions.field_preset· string · optionnel · minimal | standard | full
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.include_logs· boolean · optionnel
Include logs emitted by transactionsmin_gas_used· ? · optionnel
FILTER/RANKING: Minimum receipt gasUsed. Accepts decimal or hex string.to_addresses· array · optionnel
FILTER: Recipient addresses (typically contracts being called, or wallets receiving ETH). Optional if limit <=100.to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".min_value_wei· ? · optionnel
FILTER/RANKING: Minimum native token value in wei. Accepts decimal or hex string.finalized_only· boolean · optionnel
Only query finalized blocksfrom_addresses· array · optionnel
FILTER: Sender addresses (wallets or contracts that initiated the transaction). Optional if limit <=100.from_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".include_traces· boolean · optionnel
Include traces for transactionsmax_scan_blocks· number · optionnel
Safety cap for first/last/ranked client-side scans. Default: min(window, 10000 blocks).response_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for chat-friendly output, or stays 'full' when inline logs, traces, or state diffs are requested. Use 'summary' for counting or profiling.aggregate_metric· string · optionnel · count | value | gas_used | effective_gas_price
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.to_token_symbols· array · optionnel
Resolve token symbols via open token-list data and merge them into to_addresses, e.g. transfer/approve calls to USDC.transaction_type· ? · optionnel
FILTER: EVM transaction type. Accepts decimal or hex strings such as 0, 1, 2, "0x0", "0x1", "0x2". Applied client-side while streaming Portal results; use with scan_order="earliest" and from_block to find the first typed transaction.contract_creation· boolean · optionnel
FILTER: true returns contract-creation transactions; false excludes them. Useful for "first contract creation from this wallet".include_l2_fields· boolean · optionnel
Include L2-specific fieldsfrom_token_symbols· array · optionnel
Resolve token symbols via open token-list data and merge them into from_addresses. Rare, but useful for token-contract-originated transactions.transaction_status· ? · optionnel
FILTER: Transaction receipt status. Use "success"/1 or "failed"/0 for failed/reverted transaction searches.include_state_diffs· boolean · optionnel
Include state diffs caused by transactionsmax_token_symbol_matches· number · optionnel
Maximum token-list matches to include per token symbol. Use from_addresses/to_addresses for deterministic single-contract filters.min_effective_gas_price_wei· ? · optionnel
FILTER/RANKING: Minimum effectiveGasPrice in wei. Accepts decimal or hex string.
Exemple d'appel{"name": "portal_evm_query_transactions", "arguments": {"limit": 1, "cursor": "texte", "method": "texte", "network": "texte", "sighash": [], "order_by": "chronological"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_get_head≈ 870 tokens
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"}
Paramètres, retour & exemple (2)
Paramètrestype· string · optionnel · latest | finalized
Block typenetwork· string · requis
Network name or alias
Exemple d'appel{"name": "portal_get_head", "arguments": {"network": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_get_network_info≈ 836 tokens
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"}
Paramètres, retour & exemple (1)
Paramètresnetwork· string · requis
Network name or alias
Exemple d'appel{"name": "portal_get_network_info", "arguments": {"network": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_get_recent_activity≈ 1274 tokens
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}
Paramètres, retour & exemple (8)
Paramètreslimit· integer · optionnel
Max activity rows to return (default: 10, max: 25)cursor· string · optionnel
Continuation cursor from a previous responsenetwork· string · optionnel
Network name (supports short names: 'polygon', 'base', 'ethereum', 'arbitrum', etc.). Optional when continuing with cursor.timeframe· string · optionnel
Time period or block count. Examples: '100' (default), '1h', '6h', '24h', '7d', '3d'.to_addresses· array · optionnel
Filter by recipient addressesto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".from_addresses· array · optionnel
Filter by sender addressesfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".
Exemple d'appel{"name": "portal_get_recent_activity", "arguments": {"limit": 1, "cursor": "texte", "network": "texte", "timeframe": "texte", "to_addresses": [], "to_timestamp": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_get_time_series≈ 1607 tokens
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}
Paramètres, retour & exemple (11)
Paramètresmode· string · optionnel · fast | deep
Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.metric· string · requis · transaction_count | transactions_per_block | avg_gas_price | gas_used | block_utilization | unique_addresses | tps | avg_fee
Metric to aggregate over time. Per chain family: evm: transaction_count, transactions_per_block, avg_gas_price, gas_used, block_utilization, unique_addresses; solana: transaction_count, unique_addresses, tps, avg_fee, success_rate, slots_per_hour; bitcoin: transaction_count, unique_addresses, fees_btc, block_size_bytes; hyperliquid: volume, fill_count, unique_traders. Others are refused.address· string · optionnel
Optional: Filter to specific contract address for contract-specific trendsnetwork· string · requis
Network name (supports short names: 'ethereum', 'polygon', 'base', etc.)duration· string · optionnel
Total time period to analyze. Defaults to "6h" for interactive use. The bound is in blocks, not time: this tool reads every block in the window and stops at 12,000, so "24h" is fine on Bitcoin or Ethereum and refused on a 2-second chain like Base (43,200 blocks). A window over the bound is refused at once and the error names a duration that fits. Accepts compact durations like "30m" or natural phrases like "past 30 minutes".group_by· string · optionnel · none | contract
Optional grouping mode. contract is currently supported only for EVM transaction_countinterval· string · requis · 5m | 15m | 1h | 6h | 1d
Time bucket interval (5m, 15m, 1h, 6h, 1d)group_limit· number · optionnel
Maximum number of contract groups when group_by=contractto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".from_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "24h ago".compare_previous· boolean · optionnel
Compare the selected window against the immediately previous window
Exemple d'appel{"name": "portal_get_time_series", "arguments": {"metric": "transaction_count", "network": "texte", "interval": "5m"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_get_wallet_summary≈ 1436 tokens
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"}
Paramètres, retour & exemple (11)
Paramètresmode· string · optionnel · fast | deep
Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.cursor· string · optionnel
Continuation cursor from a previous responseaddress· string · optionnel
Wallet address to analyze. Optional when continuing with cursor.network· string · optionnel
Network name or alias. Optional when continuing with cursor.timeframe· string · optionnel
Look-back period as timeframe or block count. Examples: '1h', '24h', '7d', '3d', '1000'.include_nfts· boolean · optionnel
Include NFT transfers (ERC721/1155)to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".from_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".include_tokens· boolean · optionnel
Include ERC20 token transferslimit_per_type· integer · optionnel
Requested items per category (default: 5). Values up to the retained compatibility maximum of 10 are accepted, while each category is safely capped at 4 rows and remains cursorable.response_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for a readable wallet investigation. Use 'summary' for headline flow only or 'full' for all returned activity rows.
Exemple d'appel{"name": "portal_get_wallet_summary", "arguments": {"mode": "fast", "cursor": "texte", "address": "texte", "network": "texte", "timeframe": "texte", "include_nfts": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_hyperliquid_get_analytics≈ 1204 tokens
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"}
Paramètres, retour & exemple (9)
Paramètrescoin· array · optionnel
Filter by asset symbols (e.g., ["BTC", "ETH"])mode· string · optionnel · fast | deep
Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.cursor· string · optionnel
Continuation cursor for ranked analytics sectionsnetwork· string · optionnel
Network name (default: 'hyperliquid-fills')timeframe· string · optionnel
Time range: '1h', '6h', '24h'. Default: '1h'to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".section_limit· number · optionnel
Per-section page size for ranked sections. Default: 6from_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago".response_format· string · optionnel · full | compact | summary
Response format: 'summary' (smallest snapshot), 'compact' (chat-sized ranked sections, default), 'full' (complete analytics).
Exemple d'appel{"name": "portal_hyperliquid_get_analytics", "arguments": {"coin": [], "mode": "fast", "cursor": "texte", "network": "texte", "timeframe": "texte", "to_timestamp": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_hyperliquid_get_ohlc≈ 1133 tokens
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"}
Paramètres, retour & exemple (8)
Paramètrescoin· string · optionnel
Asset symbol to build candles for (for example: "BTC", "ETH", "SOL"). Optional when continuing with cursor.user· string · optionnel
Optional trader wallet address (0x-prefixed, lowercase)cursor· string · optionnel
Continuation cursor from a previous candle pagenetwork· string · optionnel
Network name (default: 'hyperliquid-fills')duration· string · optionnel
How much recent trading history to cover when exact timestamps are omitted. Defaults to "1h". Accepts compact durations like "1h" or natural phrases like "past 30 minutes".interval· string · optionnel · auto | 1m | 5m | 15m | 30m | 1h | 4h | 6h
Candle interval. Use auto for chart-friendly defaults: 1h→5m, 6h→15m, 12h→30m, 24h→1h.to_timestamp· ? · optionnel
Exact inclusive candle-window end. Use together with from_timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input.from_timestamp· ? · optionnel
Exact candle-window start. Use together with to_timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input.
Exemple d'appel{"name": "portal_hyperliquid_get_ohlc", "arguments": {"coin": "texte", "user": "texte", "cursor": "texte", "network": "texte", "duration": "texte", "interval": "auto"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_hyperliquid_query_fills≈ 1429 tokens
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}
Paramètres, retour & exemple (18)
Paramètresdir· array · optionnel
Trade direction: "Open Long", "Close Long", "Open Short", "Close Short"coin· array · optionnel
Asset symbols (e.g., "ETH", "BTC", "SOL")user· array · optionnel
Trader wallet addresses (0x-prefixed, lowercase)cloid· array · optionnel
Client order IDs (0x-prefixed hex)limit· integer · optionnel
Requested fills per page (default: 20). Values up to the retained compatibility maximum of 200 are accepted, while each response is safely capped at 25 rows and remains cursorable.cursor· string · optionnel
Continuation cursor from a previous responsebuilder· array · optionnel
Builder addresses (0x-prefixed, lowercase)network· string · optionnel
Network name (default: 'hyperliquid-fills'). Optional when continuing with cursor.to_block· number · optionnel
Ending block numberfee_token· array · optionnel
Fee token symbolstimeframe· string · optionnel
Time range (e.g., '1h', '24h'). Alternative to from_block/to_block.from_block· number · optionnel
Starting block number (use this OR timeframe)include_pnl· boolean · optionnel
Include closedPnl and startPosition fieldsto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".finalized_only· boolean · optionnel
Only query finalized blocksfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".response_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for chat-friendly output. Use 'summary' for aggregate stats or 'full' when you truly need every fill field.include_builder_info· boolean · optionnel
Include builder and builderFee fields
Exemple d'appel{"name": "portal_hyperliquid_query_fills", "arguments": {"dir": [], "coin": [], "user": [], "cloid": [], "limit": 1, "cursor": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_list_networks≈ 1033 tokens
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"}
Paramètres, retour & exemple (6)
Paramètresvm· string · optionnel · evm | tron | solana | bitcoin | substrate | hyperliquid
Filter by VM familylimit· number · optionnel
Max results to return (default: 25, max: 100)query· string · optionnel
Search by name, alias, or chain IDcursor· string · optionnel
Continuation cursor from a previous network catalog pagenetwork_type· string · optionnel · mainnet | testnet | devnet
Filter by network typereal_time_only· boolean · optionnel
Only show networks with a real-time indexed head
Exemple d'appel{"name": "portal_list_networks", "arguments": {"vm": "evm", "limit": 1, "query": "texte", "cursor": "texte", "network_type": "mainnet", "real_time_only": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_resolve_entity≈ 1236 tokens
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"}
Paramètres, retour & exemple (4)
Paramètreskind· string · optionnel · token | contract | pool | protocol | hyperliquid_coin
Entity kind to resolve: token, contract alias/address, pool identifier, protocol name, or Hyperliquid coin/ticker.limit· number · optionnel
Maximum matches to return.query· string · requis
Entity string to resolve, e.g. "USDC", "bayc", "uniswap", "BTC", or "0x...".network· string · optionnel
Network name or alias when the entity is network-scoped, e.g. "base", "ethereum", "arbitrum-one", or "hyperliquid-fills".
Exemple d'appel{"name": "portal_resolve_entity", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_solana_get_analytics≈ 1284 tokens
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}
Paramètres, retour & exemple (10)
Paramètresmode· string · optionnel · fast | deep
Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.cursor· string · optionnel
Continuation cursor for paginating top_programsnetwork· string · optionnel
Network name (default: solana-mainnet)timeframe· string · optionnel
Time range. Accepts compact durations like '15m' or natural phrases like 'past 30 minutes'. Optional; defaults to a 1h analysis window.to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".program_limit· number · optionnel
Max top-program rows to return per page when include_programs is enabledfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".response_format· string · optionnel · full | compact | summary
Response format: 'summary' (high-level metrics), 'compact' (core sections), 'full' (complete analytics).include_programs· boolean · optionnel
Include top programs by instruction count (requires an extra instruction scan and is slower)include_compute_units· boolean · optionnel
Include average compute-unit stats across the full range (disabled by default for speed)
Exemple d'appel{"name": "portal_solana_get_analytics", "arguments": {"mode": "fast", "cursor": "texte", "network": "texte", "timeframe": "texte", "to_timestamp": "texte", "program_limit": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_solana_query_instructions≈ 2322 tokens
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}
Paramètres, retour & exemple (39)
Paramètresa0· ? · optionnel
Account at index 0. You can pass a single string or an array.a1· ? · optionnel
Account at index 1. You can pass a single string or an array.a2· ? · optionnel
Account at index 2. You can pass a single string or an array.a3· ? · optionnel
Account at index 3. You can pass a single string or an array.a4· ? · optionnel
Account at index 4. You can pass a single string or an array.a5· ? · optionnel
Account at index 5. You can pass a single string or an array.a6· ? · optionnel
Account at index 6. You can pass a single string or an array.a7· ? · optionnel
Account at index 7. You can pass a single string or an array.a8· ? · optionnel
Account at index 8. You can pass a single string or an array.a9· ? · optionnel
Account at index 9. You can pass a single string or an array.d1· ? · optionnel
1-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array.d2· ? · optionnel
2-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array.d4· ? · optionnel
4-byte discriminator filter (0x-prefixed hex). You can pass a single string or an array.d8· ? · optionnel
8-byte discriminator filter - Anchor (0x-prefixed hex). You can pass a single string or an array.a10· ? · optionnel
Account at index 10. You can pass a single string or an array.a11· ? · optionnel
Account at index 11. You can pass a single string or an array.a12· ? · optionnel
Account at index 12. You can pass a single string or an array.a13· ? · optionnel
Account at index 13. You can pass a single string or an array.a14· ? · optionnel
Account at index 14. You can pass a single string or an array.a15· ? · optionnel
Account at index 15. You can pass a single string or an array.limit· integer · optionnel
Max instructions (default: 20, max: 25)cursor· string · optionnel
Continuation cursor from a previous responsenetwork· string · optionnel
Network name or alias. Optional when continuing with cursor.to_block· number · optionnel
Ending slot number. Keep ranges reasonable for performance.timeframe· string · optionnel
Time range (e.g., '1h', '24h'). Alternative to from_block/to_block. Solana slots are ~400ms.from_block· number · optionnel
Starting slot number (use this OR timeframe)program_id· ? · optionnel
Program IDs. You can pass a single string or an array.include_logs· boolean · optionnel
Include program logsis_committed· boolean · optionnel
Only committed transactionsto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".finalized_only· boolean · optionnel
Only query finalized slotsfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".mentions_account· ? · optionnel
Accounts mentioned anywhere in the instruction. You can pass a single string or an array.include_transaction· boolean · optionnel
Include transaction datatransaction_fee_payer· ? · optionnel
Fee payer filter. You can pass a single string or an array.include_inner_instructions· boolean · optionnel
Include inner (CPI) instructionsinclude_transaction_balances· boolean · optionnel
Include SOL balance changesinclude_transaction_instructions· boolean · optionnel
Include all instructions from the parent transaction (sibling instructions)include_transaction_token_balances· boolean · optionnel
Include token balance changes
Exemple d'appel{"name": "portal_solana_query_instructions", "arguments": {"a0": "texte", "a1": "texte", "a2": "texte", "a3": "texte", "a4": "texte", "a5": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_solana_query_transactions≈ 1398 tokens
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}
Paramètres, retour & exemple (17)
Paramètreslimit· integer · optionnel
Max transactions to return (default: 20, max: 25)cursor· string · optionnel
Continuation cursor from a previous responsenetwork· string · optionnel
Network name or alias. Optional when continuing with cursor.to_block· number · optionnel
Ending slot numberfee_payer· array · optionnel
Fee payer addressestimeframe· string · optionnel
Time range (e.g., '1h', '24h'). Alternative to from_block/to_block.from_block· number · optionnel
Starting slot number (use this OR timeframe)include_logs· boolean · optionnel
Include program logsto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".finalized_only· boolean · optionnel
Only query finalized slotsfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".include_rewards· boolean · optionnel
Include block rewards (validator staking rewards). Filter by pubkey using mentions_account.response_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for chat-friendly output, or stays 'full' when inline instruction, balance, log, or reward context is requested. Use 'summary' for aggregate stats.include_balances· boolean · optionnel
Include SOL balance changesmentions_account· array · optionnel
Accounts mentioned anywhere in the transactioninclude_instructions· boolean · optionnel
Include instruction datainclude_token_balances· boolean · optionnel
Include SPL token balance changes
Exemple d'appel{"name": "portal_solana_query_transactions", "arguments": {"limit": 1, "cursor": "texte", "network": "texte", "to_block": 1, "fee_payer": [], "timeframe": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_substrate_get_analytics≈ 1316 tokens
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"}
Paramètres, retour & exemple (9)
Paramètresmode· string · optionnel · fast | deep
Execution depth. Defaults to complete requested-window analysis; the optional fast value is only for explicitly bounded previews.network· string · optionnel
Substrate network name (default: polkadot)to_block· number · optionnel
Ending block numbertimeframe· string · optionnel
Time range like '1h', '6h', or '24h'. Default: '1h'from_block· number · optionnel
Starting block number (use this OR timeframe)to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".section_limit· number · optionnel
Max rows to keep in ranked event and call sectionsfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago".response_format· string · optionnel · full | compact | summary
Response format: 'summary' (headline metrics only), 'compact' (core sections), 'full' (full dashboard payload)
Exemple d'appel{"name": "portal_substrate_get_analytics", "arguments": {"mode": "fast", "network": "texte", "to_block": 1, "timeframe": "texte", "from_block": 1, "to_timestamp": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_substrate_query_calls≈ 1429 tokens
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}
Paramètres, retour & exemple (15)
Paramètreslimit· integer · optionnel
Max calls to return (max: 10; use compact mode for context-rich rows)cursor· string · optionnel
Continuation cursor from a previous responsenetwork· string · optionnel
Substrate network name or alias. Optional when continuing with cursor.to_block· number · optionnel
Ending block numbertimeframe· string · optionnel
Time range (e.g. '1h', '24h'). Alternative to from_block/to_block.call_names· array · optionnel
Optional qualified call names like Timestamp.set or Balances.transfer_keep_alivefrom_block· number · optionnel
Starting block numberto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".include_stack· boolean · optionnel
Attach the parent call stack for each matching callfinalized_only· boolean · optionnel
Only query finalized blocksfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago".include_events· boolean · optionnel
Attach events emitted directly by each matching callresponse_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for chat-friendly output. Compact mode keeps requested subcalls, events, and extrinsic context in a smaller inline shape.include_subcalls· boolean · optionnel
Attach direct descendant calls inline for each matching callinclude_extrinsic· boolean · optionnel
Attach the parent extrinsic inline for each matching call
Exemple d'appel{"name": "portal_substrate_query_calls", "arguments": {"limit": 1, "cursor": "texte", "network": "texte", "to_block": 1, "timeframe": "texte", "call_names": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_substrate_query_events≈ 1354 tokens
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}
Paramètres, retour & exemple (14)
Paramètreslimit· integer · optionnel
Max events to return (max: 10; use compact mode for context-rich rows)cursor· string · optionnel
Continuation cursor from a previous responsenetwork· string · optionnel
Substrate network name or alias. Optional when continuing with cursor.to_block· number · optionnel
Ending block numbertimeframe· string · optionnel
Time range (e.g. '1h', '24h'). Alternative to from_block/to_block.from_block· number · optionnel
Starting block numberevent_names· array · optionnel
Optional qualified event names like Balances.Transfer or System.ExtrinsicSuccessinclude_call· boolean · optionnel
Attach the emitting call inline when the event has call contextto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".include_stack· boolean · optionnel
Attach the parent call stack when the event has nested call contextfinalized_only· boolean · optionnel
Only query finalized blocksfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "6h ago".response_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for chat-friendly output. Compact mode keeps requested extrinsic or call context in a smaller inline shape.include_extrinsic· boolean · optionnel
Attach the parent extrinsic inline for each matching event
Exemple d'appel{"name": "portal_substrate_query_events", "arguments": {"limit": 1, "cursor": "texte", "network": "texte", "to_block": 1, "timeframe": "texte", "from_block": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_tron_query_logs≈ 1712 tokens
Query raw Tron (TVM) event logs by contract address and topics with common event aliases, the parent transaction hash on every row, and optional inline decoding. COMMON USER ASKS: - Recent USDT transfers on Tron - USDT transfers received by one wallet FIRST CHOICE FOR: - TRC-20 token transfer events on Tron such as USDT - contract event evidence on Tron with the parent transaction hash WHEN TO USE: - You need TRC-20 Transfer or Approval events for a token such as USDT on Tron. - You need event logs from a Tron contract filtered by topic signature or indexed address. - You want the exact transaction hash behind each Tron event. DON'T USE: - You want native TRX transfers or contract calls; use portal_tron_query_transactions. - You need an Ethereum-compatible network; use portal_evm_query_logs. EXAMPLES: - Recent USDT transfers on Tron: {"network":"tron-mainnet","timeframe":"5m","addresses":["TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"],"event":"transfer","decode":true,"limit":20} - USDT transfers received by one wallet: {"network":"tron-mainnet","from_block":84000000,"to_block":84000100,"addresses":["TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"],"event":"transfer","topic2":["TJLuVi6UhS3UTx5EUXNCoz9VNqP2gnPmyf"],"decode":true,"limit":20}
Paramètres, retour & exemple (19)
Paramètresevent· ? · optionnel
FILTER: common event alias (transfer, approval, swap, mint, burn) or a topic0 hash. Merges with topic0.limit· integer · optionnel
Max logs to return (default: 20, max: 25)cursor· string · optionnel
Continuation cursor from a previous responsedecode· boolean · optionnel
Decode known event signatures inline with Base58 addressestopic0· array · optionnel
FILTER: event signature hashes, with or without 0x.topic1· array · optionnel
FILTER: indexed parameter 1 (often the sender). An address in any form is padded to a topic.topic2· array · optionnel
FILTER: indexed parameter 2 (often the recipient). An address in any form is padded to a topic.topic3· array · optionnel
FILTER: indexed parameter 3.network· string · optionnel
Network name (default: tron-mainnet). Optional when continuing with cursor.to_block· number · optionnel
Ending block number. Tron produces a block every 3 seconds.addresses· array · optionnel
FILTER: emitting contract addresses in any form (Base58 T..., 41-prefixed hex, 0x or bare 20-byte hex). Always include this or topic0 for fast queries.timeframe· string · optionnel
Time range (e.g., '5m', '1h'). Alternative to from_block/to_block.from_block· number · optionnel
Starting block numberto_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".finalized_only· boolean · optionnel
Only query finalized blocksfrom_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".max_scan_blocks· integer · optionnel
Safety cap for filtered latest-first scans. Default: min(window, 50000).response_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for chat-friendly output. Use 'summary' for counts by contract and event.include_transaction· boolean · optionnel
Attach the parent transaction (type, caller, contract, result, fee). The hash is always attached.
Exemple d'appel{"name": "portal_tron_query_logs", "arguments": {"event": "texte", "limit": 1, "cursor": "texte", "decode": true, "topic0": [], "topic1": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}} - portal_tron_query_transactions≈ 1918 tokens
Query raw Tron transactions: native TRX transfers, TRC-10 asset transfers, TriggerSmartContract calls by contract and method, or any contract type, with optional inline logs and internal transactions. COMMON USER ASKS: - Recent native TRX transfers - USDT transfer calls in a block window - TRX sent from one wallet FIRST CHOICE FOR: - native TRX transfers, TRC-10 transfers, and smart-contract calls on Tron - who sent TRX to an address on Tron, or which wallets called a Tron contract WHEN TO USE: - You need raw Tron transaction records with sender, recipient, amount in TRX, fee, energy, and success. - You want native TRX transfers to or from a wallet in a bounded window. - You want calls to a Tron contract such as USDT filtered by method (transfer, approve) or caller. - You want TRC-10 asset transfers by asset id. DON'T USE: - You need TRC-20 token events; those are logs, so use portal_tron_query_logs. - You need an Ethereum-compatible network; use portal_evm_query_transactions. EXAMPLES: - Recent native TRX transfers: {"network":"tron-mainnet","timeframe":"5m","kind":"transfer","limit":20} - USDT transfer calls in a block window: {"network":"tron-mainnet","from_block":84000000,"to_block":84000010,"contract_addresses":["TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"],"method":"transfer","limit":20} - TRX sent from one wallet: {"network":"tron-mainnet","timeframe":"1h","kind":"transfer","from_addresses":["TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"],"limit":20}
Paramètres, retour & exemple (21)
Paramètreskind· string · optionnel · auto | all | transfer | transfer_asset | trigger_smart_contract
Which Tron transaction family to query: transfer (native TRX), transfer_asset (TRC-10), trigger_smart_contract (contract calls), all (any contract type, filter by types only). auto picks from the filters you pass.asset· array · optionnel
FILTER (transfer_asset): TRC-10 asset id such as 1005157, or the raw hex asset name.limit· integer · optionnel
Max transactions to return (default: 20, max: 25)types· array · optionnel
FILTER (kind=all): Tron contract types such as TransferContract, TriggerSmartContract, DelegateResourceContract.cursor· string · optionnel
Continuation cursor from a previous responsemethod· ? · optionnel
FILTER (trigger_smart_contract): method alias such as transfer, approve, transferFrom, or a 4-byte sighash.network· string · optionnel
Network name (default: tron-mainnet). Optional when continuing with cursor.sighash· array · optionnel
FILTER (trigger_smart_contract): 4-byte method selectors, with or without 0x. Merges with method.to_block· number · optionnel
Ending block number. Tron produces a block every 3 seconds.timeframe· string · optionnel
Time range (e.g., '5m', '1h'). Alternative to from_block/to_block.from_block· number · optionnel
Starting block numberinclude_logs· boolean · optionnel
Attach the event logs each transaction emittedto_addresses· array · optionnel
FILTER (transfer, transfer_asset): recipient addresses in any accepted form.to_timestamp· ? · optionnel
Ending timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "now".finalized_only· boolean · optionnel
Only query finalized blocksfrom_addresses· array · optionnel
FILTER: sender or caller addresses. Accepts Base58 (T...), 41-prefixed hex, or 0x/bare 20-byte hex.from_timestamp· ? · optionnel
Starting timestamp. Accepts Unix seconds, Unix milliseconds, ISO datetime, or relative input like "1h ago".max_scan_blocks· integer · optionnel
Safety cap for filtered latest-first scans. Default: min(window, 50000).response_format· string · optionnel · full | compact | summary
Response format: defaults to 'compact' for chat-friendly output. Use 'summary' for counts by type, TRX moved, and top callers.contract_addresses· array · optionnel
FILTER (trigger_smart_contract): called contract addresses in any accepted form, e.g. USDT.include_internal_transactions· boolean · optionnel
Attach the internal transactions of each transaction
Exemple d'appel{"name": "portal_tron_query_transactions", "arguments": {"kind": "auto", "asset": [], "limit": 1, "types": [], "cursor": "texte", "method": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"_ui": "texte", "_app": "texte", "_llm": "texte", "_meta": "texte", "error": {}, "items": [], "value": "texte", "answer": "texte", "_notice": "texte", "_server": {}, "display": "texte", "_notices": []}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».