Skip to main content
Glama

Agent Einstein — Crypto & Market Intelligence

Server Details

AI price forecasts, whale flows, market sentiment and prediction signals. 18 tools free, no account.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
98.7% over 38 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
ChuXo/einstein-claude-plugin
GitHub Stars
0

TDQS

A3.5/5.0

Scored across 42 tools

Disambiguation2/5

Multiple tools serve overlapping purposes: five whale-tracking tools (track_whales, get_hyperliquid_whales, get_polymarket_whales, get_robinhood_whale_prints, get_smart_money_flow/inflow) and several market-scan tools (scan_market, get_top_movers, get_market_sentiment) create ambiguity. While descriptions are detailed, an agent will struggle to pick the right one without deep context, especially for similar concepts like 'smart money' vs 'whales' vs 'copy trading'.

Naming Consistency4/5

All tools use snake_case with a verb first, following a consistent verb_noun pattern (analyze_, get_, scan_, check_, find_, etc.). The verbs vary but are descriptive, and there are no style inconsistencies like camelCase or mixed conventions. Minor deviations like 'ask_einstein' still fit the pattern.

Tool Count2/5

42 tools is heavy for a single server, exceeding the typical 15-25 range. Many tools could be consolidated (e.g., combining whale-related functions into one tool with a 'kind' parameter, as several analyze_* tools already do). The breadth is broad but feels bloated, making the server harder to navigate.

Completeness4/5

The tool surface covers a wide range of market intelligence domains: security analysis, whale tracking, forecasts, sentiment, backtesting, quantum risk, and regulatory data. Gaps exist (e.g., no tool for historical OHLCV data beyond forecasts, no direct trade execution), but these are acceptable for an intelligence-focused server. The presence of a 'catch-all' ask_einstein tool mitigates minor gaps.

Available Tools

42 tools
analyze_bitcoinBitcoin AnalyticsA
Read-onlyIdempotent
Inspect

Bitcoin-native analysis: mempool and fee intelligence, network and mining health, BRC-20 tokens, Runes, bridge comparison, or Babylon staking. [Paid: $0.25–$0.85 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNomempool · onchain · brc20 · runes · bridges · staking.mempool
limitNoMaximum results (1-100).

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare read-only, idempotent, and non-destructive behavior, so the description is not required to restate them. It adds genuine behavioral context not in the annotations: the $0.25–$0.85 per-call cost drawn from Einstein credit balance and the existence of free alternatives. It could have added pagination or response-shape notes, but the output schema handles much of that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences: the first front-loads the full capability list, and the second delivers the cost and free-alternative caveat. No filler or duplicated schema text. The most decision-relevant information (scope, price, alternative) appears early.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema, optional parameters, and non-destructive annotations, the description covers the remaining essential context: cost, credit source, and where to find free alternatives. It does not explicitly tie each domain to a 'kind' value, but the enum and its descriptions are self-explanatory, so nothing critical is missing for selecting and invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is strong, and the description adds meaning by expanding the enum values into concrete analysis intents: 'mempool and fee intelligence,' 'bridges comparison,' and 'Babylon staking.' It does not discuss the 'limit' parameter, but the schema already documents it with default and range, so the description does not need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource ('Bitcoin-native analysis') and enumerates the supported domains: mempool/fee intelligence, network/mining health, BRC-20, Runes, bridges, and staking. This maps cleanly to the 'kind' enum and separates it from the general analyze_wallet and other analyze_* siblings. It loses one point because the description says only 'analysis' and does not state what kind of result the caller gets (e.g., metrics, rankings, comparisons).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The paid-cost warning and pointer to list_einstein_capabilities for free alternatives is useful routing information and an implied when-not-to-use signal. However, it never explicitly tells the agent when to pick analyze_bitcoin over closely related siblings such as inspect_onchain or get_bitcoin_cycle_position, so usage guidance remains mostly implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_copy_tradingCopy Trading IntelligenceA
Read-onlyIdempotent
Inspect

The ranked leaderboard of profitable wallets worth following, or a deeper intelligence read on a specific trader’s edge, consistency and risk. [Paid: $0.85–$1.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoleaderboard · intel (needs `walletAddress`).leaderboard
limitNoMaximum results (1-100).
walletAddressNoTrader wallet, for `intel`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description is not burdened with covering basic safety. It adds valuable behavioral context about paid usage and the exact price range from the user's credit balance. This cost disclosure goes beyond what annotations and the schema provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the tool's core function, and includes only the essential cost caveat. The sentence structure efficiently conveys both modes and the paid nature without extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the parameter schema fully documents all fields, an output schema exists, and annotations cover read-only/idempotent behavior, the description is complete enough for correct invocation. The cost and mode guidance further round out the context. A minor gap is not explicitly describing what the intel output contains, but the output schema likely covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all three parameters already documented including the enum values, default for limit, and the walletAddress requirement for 'intel'. The description adds little semantic detail beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as providing either a ranked leaderboard of profitable copy-trading wallets or deeper intelligence on a specific trader's edge, consistency, and risk. It is specific about the resource and output modes, and although it lacks an explicit verb, the meaning is unambiguous. The 'copy trading' focus helps distinguish it from broader whale-tracking or wallet-analysis siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two modes ('leaderboard' for general rankings, 'intel' for a specific trader) and includes a practical cost note. It directs users to list_einstein_capabilities for free alternatives, which is useful decision guidance. It does not name specific sibling tools or conditions for choosing between them, but the mode breakdown effectively tells the agent when to use each variant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_prediction_marketsPrediction Market AnalysisA
Read-onlyIdempotent
Inspect

Polymarket analysis: browse live markets, scan for insider-shaped positions, measure bid/ask spreads, find high-conviction positioning, or fade over-priced long shots. [Paid: $0.50–$1.50 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNomarkets · insiders · spread · conviction · longshot_fade.markets
limitNoMaximum results (1-100).
queryNoTopic or market keyword to focus on.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds valuable beyond-annotation context: the per-call cost ($0.50–$1.50) and that it debits from an Einstein credit balance, plus the existence of free alternatives. This is meaningful behavioral transparency beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-load the core capabilities and then address cost and alternatives. No wasted words; every sentence serves a distinct purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, combined with a 100%-covered schema and a declared output schema, is nearly complete. It explains all five modes, cost, and points to free alternatives. Minor gaps remain around precise definitions of 'insider-shaped' or 'high-conviction', but these are acceptable given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameter descriptions at 100%, so the baseline is 3. The description adds semantic meaning by mapping each kind enum value to a concrete action (browse markets, scan insiders, measure spreads, find conviction, fade long shots), which is genuinely useful beyond the schema's simple enum list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (Polymarket) and enumerates five distinct analysis capabilities that map to the 'kind' parameter. It is specific enough to distinguish from generic analysis tools, though it doesn't explicitly name sibling tools to differentiate itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when this tool is appropriate (paid Polymarket analysis) and directs users to list_einstein_capabilities for free alternatives. It lacks explicit when-not-to-use conditions, but the pointer to alternatives provides adequate guidance for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_tokenized_stocksTokenized-Equity Market IntelligenceA
Read-onlyIdempotent
Inspect

The market where memecoins are priced in SHARES, on Base and Robinhood Chain. Float-corner risk (whose on-chain stock float is locked in one pool while the issuer cannot mint), stock-paired launches with their tax and dividend structure on Base AND on Robinhood Chain (~$68M/day of stock-quoted curve volume there — the larger half of this market), who bought a token earliest and who FUNDED those wallets, and which wallets keep entering early and actually realize money. [Paid: $0.25 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
boardNoportfolio = deterministic non-executing Coinbase B20 portfolio draft on Base (use `intent`) · float-corner = float concentration + mint window · wrapper-trust = can the wrapper be trusted as COLLATERAL (on-chain rate path, vault-inflation exposure, an unscheduled rate move, pause/permissioning) · stock-pairs = BaseStonk launches priced in an equity (Base) · pons-stock-pairs = Pons launches priced in an equity, and which equity the venue is collectively long (Robinhood Chain 4663) · early-buyers = entry-ranked buyers of one token plus a one-hop funding trace (needs `token`) · trader-record = which wallets are actually good · event-risk = scheduled corporate actions and the implied gap at the open.float-corner
tokenNoToken contract address. Required when board=early-buyers.
intentNoNatural-language portfolio objective. Used when board=portfolio; no transactions are executed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds valuable behavioral context beyond annotations by disclosing the per-call cost ($0.25 from Einstein credit balance) and flagging free alternatives—traits an agent should know before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description packs substantial information in two main sentences plus a bracket note, with front-loaded context about the market and a sequence of concrete use cases. It is not excessively long and the paid/free note is clearly delimited. Slight wordiness in the second sentence prevents a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a strong annotation stack and 100% schema coverage, the definition only needs to supply operational and pricing context. It does that, plus the board descriptions and the pointer to free paths. The only secondary missing piece is the nuance of 'openWorldHint' and exact response structure, but an output schema exists, keeping the description adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with detailed board meanings already in the input schema. The tool description restates some board concepts in natural language (e.g., 'float-corner risk', 'stock-paired launches'), but it does not define token or new dimensions, so the schema continues to do the heavy lifting. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's focus: market intelligence for 'memecoins priced in SHARES' on Base and Robinhood Chain, and names the major analysis categories (float-corner risk, stock-paired launches, early-buyer traces). It distinguishes the tool from broader siblings by its niche, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool through its market definition and notes that 'free alternatives exist for several of these — see list_einstein_capabilities', which points to alternative pathways. However, it stops short of explicit when/when-not guidance relative to sibling tools like analyze_token_security or analyze_wallet.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_token_securityToken Security AnalysisA
Read-onlyIdempotent
Inspect

Live security analysis of a token contract: rug-pull risk, holder concentration, sniper activity, dangerous approvals, or a full smart-contract audit. Choose the analysis with kind. [Paid: $0.35–$2.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNorug_pull = honeypot/rug risk scan · holders = concentration · sniping = launch-sniper activity · approvals = risky token approvals for a wallet · contract_audit = full source audit.rug_pull
chainNoBlockchain network.base
tokenAddressYesToken contract address to analyze.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare read-only, idempotent, and open-world traits. The description adds cost information ($0.35–$2.00 per call) and notes the existence of free alternatives, which are not covered by the annotations. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two sentences that front-load the core purpose and then provide usage and cost context. No unnecessary fluff or redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and the parameters are fully described, the description provides sufficient context: purpose, kind selection, and cost. It does not explain return values, but that is not required since an output schema is present. The cost and alternative note add valuable context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for parameters is 100%: each parameter has a clear description and enum values for `kind` and `chain` are explained. The description only reinforces the `kind` parameter's role and does not add new semantic details beyond the schema, so it stays at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it performs live security analysis of a token contract, listing specific risk types (rug-pull, holder concentration, sniper activity, approvals, full audit) and instructs to choose the analysis via the `kind` parameter. This distinguishes it from sibling tools like bitcoin analysis or copy trading, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions that free alternatives exist for several kinds and points to list_einstein_capabilities, providing a useful comparison. However, it does not explicitly specify conditions for when to prefer this paid tool over alternatives like check_token_safety or inspect_onchain, so it falls short of fully explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_walletWallet AnalysisA
Read-onlyIdempotent
Inspect

Analyze any wallet address: current holdings, realized/unrealized P&L, a trust score, forgotten or dust assets, unclaimed airdrops, or quantum-resistance of its address type. [Paid: $0.25–$1.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoportfolio = holdings · pnl = profit and loss x-ray · trust = trust score · forgotten = stranded assets · airdrops = unclaimed airdrops · quantum = post-quantum exposure.portfolio
chainNoBlockchain network.base
walletAddressYesWallet address to analyze.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint, idempotentHint, openWorldHint, and non-destructiveness, so the bar for additional behavioral disclosure is lower. The description adds valuable context beyond annotations: it is a paid call costing $0.25–$1.00 from the credit balance, and free alternatives exist for some analyses. This helps an agent decide whether to invoke the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence covering the core purpose and analysis modes, followed by a compact paid/alternative note. Every clause carries useful information and there is no filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, detailed enum descriptions, and safety annotations already present, the description does not need to restate return values or side-effect guarantees. It covers purpose, pricing, and alternative routes well. It would be more complete with explicit guidance on supported chains or overlap with sibling tools, but nothing critical is missing for invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds useful semantic gloss over the kind enum: 'current holdings' maps to portfolio, 'realized/unrealized P&L' maps to pnl, 'forgotten or dust assets' maps to forgotten, and 'quantum-resistance of its address type' maps to quantum. It does not add detail for chain or walletAddress, but the schema already documents those.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource — 'Analyze any wallet address' — and enumerates six concrete analysis outputs (holdings, P&L, trust score, forgotten assets, airdrops, quantum-resistance). It is clearly scoped to wallet-level analysis, but it does not explicitly differentiate itself from siblings like assess_quantum_risk or analyze_bitcoin, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The main usage context is clear: use this when the agent needs any of the listed wallet analyses. The description also points to free alternatives via list_einstein_capabilities, which is a useful routing signal. However, it does not state explicit when-not-to-use conditions or name which alternatives cover which sub-analyses.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ask_einsteinAsk EinsteinA
Read-onlyIdempotent
Inspect

Open-ended crypto and DeFi analysis from Einstein's full research stack — use this when no more specific tool fits, or when the question spans several domains. Returns a written analysis grounded in live on-chain and market data. [Paid: $1.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe question or analysis request, in plain language.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this as read-only, idempotent, and non-destructive. The description adds valuable behavioral detail: it costs $1.00 per call from the Einstein credit balance, returns 'a written analysis,' and grounds that analysis in 'live on-chain and market data.' This goes beyond the structured metadata without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, each earning its place: what it does, when to use it, and cost with an alternative pointer. The 'use this when' condition is front-loaded right after the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, open-ended analysis tool, the description is complete: it covers purpose, when to use it, what the return looks like, data grounding, cost, and where to find cheaper alternatives. No critical operational detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully documents the single 'prompt' parameter with a clear description. The tool description adds only that the prompt is the 'question or analysis request,' which is marginal value since the schema already says 'The question or analysis request, in plain language.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb and resource: 'Open-ended crypto and DeFi analysis from Einstein's full research stack.' It distinguishes itself from the many specialized sibling tools by saying it is for when 'no more specific tool fits' or the question 'spans several domains.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage guidance is explicit: use it as the default catch-all when specialized tools don't fit or for multi-domain questions. It also flags the paid nature and points to list_einstein_capabilities for free alternatives, giving clear decision context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_quantum_riskQuantum Risk AssessmentA
Read-onlyIdempotent
Inspect

Assess exposure to cryptographically-relevant quantum computing: organizational PQC readiness, a migration plan, portfolio-level quantum risk, or how close a CRQC actually is by current benchmarks. [Paid: $0.50–$1.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoreadiness · migration · portfolio · crqc_benchmark.readiness
walletAddressNoWallet to assess, for `portfolio`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds important behavioral context beyond the annotations: the call is paid from Einstein credit balance, pricing ranges from $0.50-$1.00, and the assessment draws on 'current benchmarks.' This helps an agent understand practical implications of invoking the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one dense, front-loaded sentence followed by a short billing note. Every phrase earns its place: the core purpose is stated first, the four variants are listed compactly, and the cost/alternative guidance is separated in brackets. No wasted words and no structural clutter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two optional parameters, full schema description coverage, an output schema, and read-only/idempotent annotations, this description is complete. It explains what the tool assesses, names all four kinds, notes the cost, and gives an explicit pointer for free alternatives. An agent has everything needed to decide whether and how to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds useful plain-language meaning to the 'kind' enum: 'organizational PQC readiness' maps to readiness, 'a migration plan' to migration, 'portfolio-level quantum risk' to portfolio, and 'how close a CRQC actually is' to crqc_benchmark. It does not explicitly discuss walletAddress, but the schema already covers that sufficiently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource — 'Assess exposure to cryptographically-relevant quantum computing' — and then enumerates the four concrete assessment types: PQC readiness, migration plan, portfolio-level risk, and CRQC benchmark. This maps cleanly to the tool's purpose and distinguishes it from every sibling tool, none of which addresses quantum risk assessment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly signals that this is a paid tool and directs the agent to list_einstein_capabilities for free alternatives, providing meaningful context for when not to use it. It does not give explicit when-to-use/when-not-to-use conditions beyond this, but the cost warning and pointer to alternatives are clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_content_integrityContent Integrity ScanA
Read-onlyIdempotent
Inspect

AI moderation and integrity scanning for user-generated content and yield-vault listings — judges content quality and runs a deep integrity scan for manipulation. [Paid: $0.05–$1.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNojudge = content quality · deep_scan = manipulation scan · vaults = list scanned vaults.judge
contentNoContent or vault identifier to assess.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds real-world cost context (Einstein credit balance, $0.05–$1.00) and a pointer to free alternatives, which is valuable beyond the schema and annotations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences; the first front-loads the tool's function and scope, and the second adds cost/alternative context without padding. Every clause earns its place in the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All required information is present or already structured: parameters are fully described in the schema, an output schema exists, annotations cover safety, and the description adds the crucial paid/cost dimension and free-alternative route. An agent has enough to invoke it and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the enum values in the schema already explain judge/deep_scan/vaults, so the description does not need to add much. The description loosely echoes the content/vault distinction but adds no new parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('scanning/judges') and a specific resource class ('user-generated content and yield-vault listings'), and clarifies that it covers content quality plus manipulation scanning. It is clearly distinct from token-focused or market-scan siblings, though it does not explicitly differentiate itself by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions that free alternatives exist and points to list_einstein_capabilities, which gives cost-conscious agents a next step. However, it does not specify when to choose this tool over a sibling, which kind to invoke, or any conditions that should route an agent elsewhere.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_token_safetyToken Safety CheckA
Read-onlyIdempotent
Inspect

Free honeypot / risk screen for an EVM token contract, from the cached GoPlus security dataset. This is the quick screen — the paid analyze_token_security tool runs a live, deeper scan on any contract including ones not in the cache.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoChain the contract is deployed on.base
contractYesToken contract address, 0x-prefixed 40 hex characters.

Output Schema

ParametersJSON Schema
NameRequiredDescription
chainNoChain it was screened on.
flagsNoIndividual risk flags recorded against the contract.
reasonNoWhy the payload is absent, when `available` is false.
resultNoThe raw cached row, for fields this summary does not normalize.
contractNoContract that was screened.
honeypotNoTrue when the cached scan flagged it as a honeypot.
screenedNoFALSE means the contract is not in the cached dataset — "not screened", NOT a clean bill of health. Only a true here makes the other fields meaningful.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.
riskLevelNoRisk grade recorded by the scan.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond those annotations: the check is free, quick, and backed by a cached GoPlus dataset rather than a live scan. This clarifies the data-freshness tradeoff without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences deliver the core purpose, data source, and the key comparison to the sibling tool. Every phrase earns its place, and the most decision-relevant information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with full schema coverage and an output schema, the description covers the intended use, the data source, the limitation relative to the live alternative, and when to choose that alternative. Nothing essential is missing for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents both parameters at 100% coverage, including the chain enum, default, and contract format. The description does not add parameter-specific meaning, so the baseline score of 3 is appropriate; no additional compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('honeypot / risk screen'), a clear resource ('EVM token contract'), and a specific data source ('cached GoPlus security dataset'). It also explicitly separates itself from analyze_token_security, so an agent can distinguish the two tools at a glance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states this is the 'quick screen' and contrasts it with the 'paid analyze_token_security tool' that runs a 'live, deeper scan' on contracts 'including ones not in the cache.' This gives an agent clear routing criteria: use this for cached quick checks and the sibling for deeper or non-cached coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_mevMEV Detection and ProtectionA
Read-onlyIdempotent
Inspect

Detect sandwich attacks and MEV extraction against a token or wallet, watch the live EVM mempool, or get a protected routing recommendation for a pending transaction. [Paid: $0.45–$0.60 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNodetection = historical MEV · mempool = live mempool watch · protection = protected routing advice.detection
chainNoBlockchain network.base
timeframeNoLookback window.24h
tokenAddressNoToken to inspect, when relevant.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds beyond-schema context: a per-call cost range and the existence of free alternatives, which meaningfully affects whether the agent should invoke this tool. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences carry all essential information: what the tool does, the three modes, cost, and alternatives. There is no fluff, and the primary action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the four parameters, all with 100% schema coverage, the enum descriptions, and the presence of an output schema, the description is sufficient for an agent to invoke the tool. It also adds the non-obvious billing and free-alternative context that would otherwise be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are already well documented. The description maps the kind enum to natural-language scenarios, but it mostly restates the schema descriptions for detection, mempool, and protection. It also mentions 'wallet' while the schema only exposes tokenAddress, adding slight ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and verb set: detect sandwich attacks/MEV against a token or wallet, watch the live EVM mempool, or get protected routing advice. It is concrete and distinguishes this tool from general onchain/analytics siblings such as inspect_onchain or analyze_wallet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the three supported use cases and adds practical selection guidance by flagging the paid nature and pointing to free alternatives via list_einstein_capabilities. It does not explicitly name all exclusion cases, but it gives enough context for an agent to decide whether this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_arbitrageArbitrage ScannerA
Read-onlyIdempotent
Inspect

Scan for live arbitrage: DEX price dislocations, flash-loan-fundable routes, cross-chain spreads, or prediction-market mispricings. [Paid: $0.60–$1.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNodex · flashloan · cross_chain · prediction_market.dex
chainNoBlockchain network.base
limitNoMaximum results (1-100).

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description only needs to add context beyond those. It does so by disclosing the per-call cost ($0.60–$1.00) and the existence of free alternatives, plus 'live' scanning. No contradiction exists, and the added cost/context is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in a single clear sentence, followed by a compact pricing/alternatives note. Every sentence earns its place; there is no redundant repetition of the input schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, idempotent tool with a full input schema and an output schema, the description covers the essential operational context: what it scans, the four kinds, the paid nature, and where to find free alternatives. Nothing critical for an agent to select and invoke the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents `kind`, `chain`, and `limit`. The description adds meaningful semantic gloss by translating each arbitrage category into plain-language concepts (e.g., 'flash-loan-fundable routes' for flashloan), which helps an agent pick the right enum value. It does not add extra semantics for chain or limit, but 100% coverage keeps this strong.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Scan for live arbitrage') and enumerates four concrete domains that map directly to the `kind` parameter: DEX price dislocations, flash-loan-fundable routes, cross-chain spreads, and prediction-market mispricings. This clearly differentiates find_arbitrage from nearby siblings like find_yield or scan_market.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the tool's domain explicit and adds usage context by noting it is a paid call with free alternatives, directing the agent to list_einstein_capabilities. It does not name specific sibling tools or exclusion conditions, but the first sentence plus the pricing pointer gives sufficient context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_yieldYield Opportunity FinderA
Read-onlyIdempotent
Inspect

Find yield: DeFi lending and LP opportunities ranked by risk-adjusted return, Pendle fixed-yield and YT/PT trades, a broad vault discovery sweep, or liquidation opportunities. [Paid: $0.10–$0.75 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNodefi · pendle · discover · liquidations.defi
chainNoBlockchain network. `robinhoodchain` covers the Pendle NVDA/PFE markets.base
limitNoMaximum results (1-100).

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the burden is light, and the description adds genuinely new behavioral context: per-call cost ($0.10–$0.75), that it draws on an Einstein credit balance, and that cheaper/free alternatives exist via list_einstein_capabilities. It does not, however, describe rate limits or result freshness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the four modes and trailing with the pricing caveat, so the actionable content comes first. The bracket cost note is dense but earns its place; the enumeration is long but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description needn't explain return values, and the rich annotations cover the safety profile. Cost, alternatives, and the four modes are all covered, leaving only minor gaps around result freshness and per-kind behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description does more than repeat the schema: it expands each `kind` enum value into a concrete opportunity category, which is meaningful semantic scaffolding for selecting the mode. `chain` and `limit` remain purely schema-documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource ('Find yield') and enumerates the four distinct opportunity classes (DeFi lending/LP, Pendle fixed-yield YT/PT, vault discovery sweep, liquidations) that map 1:1 to the `kind` enum, letting an agent separate it from siblings like find_arbitrage or get_prediction_market_yields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The four modes are described in the order of the `kind` values, which implicitly tells the agent which kind yields which output, and it flags that free alternatives exist for some modes. However, it never explicitly states when to choose one kind over another or when to prefer this tool over competitor siblings, leaving routing largely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forecast_chartAI Chart ForecastA
Read-onlyIdempotent
Inspect

Real-time data retrieval and compute for any token, on any supported chain — bundles a live dual-model price forecast (Google TimesFM 3.0 + Kronos, with quantile confidence bands) at no separate charge. Unlike the free get_price_forecast this runs fresh inference and is not limited to four assets. Experimental research feature — not investment advice; use at your own risk. [Paid: $0.65 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoBlockchain network.base
tokenYesToken symbol or contract address to forecast.
timeframeNoCandle interval for the forecast.1d

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and idempotentHint annotations, the description discloses that this is an experimental research feature, not investment advice, and that each call costs $0.65 from the user's Einstein credit balance. It also clarifies the bundled nature of the forecast, adding meaningful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose, differentiation, risk warning, and pricing are all covered without filler. Key differentiators are front-loaded early in the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema coverage, an output schema present, and annotations covering safety and idempotency, the description fills the remaining gaps: cost, experimental status, free alternatives, and comparison to a sibling. An agent has enough contextual information to decide whether and how to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents token, chain, and timeframe with clear descriptions and enums. The description adds 'any token' and 'not limited to four assets,' but does not significantly deepen parameter-level understanding beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: real-time data retrieval and compute bundled with a live dual-model price forecast for any token on any supported chain. It also explicitly distinguishes itself from the sibling get_price_forecast by noting it runs fresh inference and is not limited to four assets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts this tool with get_price_forecast, telling agents this should be used when fresh inference or coverage beyond four assets is needed. It also points to list_einstein_capabilities for free alternatives and discloses the paid nature of the call, giving clear selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_quantum_keyQuantum Key GenerationAInspect

Generate keys with hardware quantum randomness: a post-quantum wallet, an encryption key, a signing key, or raw verified quantum random numbers. Keys are returned once and never stored. [Paid: $0.25–$2.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNowallet · encryption · signing · random (raw QRNG output).random

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true, covering mutation and side-effect safety. The description adds valuable behavioral context: keys are returned once, never stored, and the call is paid from the Einstein credit balance. This goes meaningfully beyond the annotations, but not to the level of a 4-5 because it doesn't disclose details like whether repeated calls necessarily produce different keys or how the paid-billing failure mode behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the core capability, enumerates the four key kinds, then adds payment and alternative-tool context. The cost parenthetical is slightly dense but necessary. Not a 5 because the cost range and credit-balance note could be tightened without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with 100% schema coverage and an output schema present, the description is nearly complete. It covers what the tool generates, the key kinds, the one-time/no-storage behavior, the cost, and the free-alternative route. The only missing context is around the output schema's shape and any authentication/credit prerequisite, but the output schema check minimizes that burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema includes a clear enum description ('wallet · encryption · signing · random (raw QRNG output)'). The description itself restates the enum values with additional context (post-quantum wallet, encryption key, signing key, raw verified quantum random numbers), adding meaningful product-level meaning beyond the raw schema. The one-parameter design is simple and well-covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Generate) with clear resources (post-quantum wallet, encryption key, signing key, or raw verified quantum random numbers). It also names the sibling list_einstein_capabilities as a pointer for free alternatives, effectively distinguishing the paid quantum generation tool from other key-generation or capability-listing tools in the sibling set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly identifies when to use the tool: when hardware quantum randomness is needed for one of four key types. It also notes paid alternatives exist and points to list_einstein_capabilities, giving the agent an explicit escape hatch for cost-sensitive use. It does not explicitly say 'do not use this for...' or name specific non-quantum sibling alternatives, so a small gap remains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_contextEinstein Agent ContextA
Read-onlyIdempotent
Inspect

Einstein's own current market context and operating state — the same situational briefing its autonomous engine reads before making a decision. [Paid: $1.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior. The description adds valuable context: the $1.00 per-call cost, Einstein credit balance, and the fact this is Einstein's internal briefing. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core meaning is front-loaded, and the pricing/alternative guidance is compact and relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only tool with an output schema, the description is complete: it states what is returned, adds cost context, and points to alternatives. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema description coverage is 100%, so there is no parameter burden for the description to carry. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description names a specific resource: Einstein's own current market context and operating state. It also distinguishes itself from the many market-data siblings by explaining it is the same situational briefing Einstein's autonomous engine reads before deciding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (when you need Einstein's internal context/operating state) and explicitly directs users to list_einstein_capabilities for free alternatives. It does not enumerate specific sibling tools to use instead, but the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_analyst_accuracyCrypto Influencer AccuracyA
Read-onlyIdempotent
Inspect

Scored track record of public crypto commentators and influencers whose calls Einstein has graded against what actually happened. Ranked by measured hit-rate, not follower count. Reports how many calls are graded versus still awaiting their horizon, and says plainly when the record is too thin to rank.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNoOne source per row.
objectNoAlways "source-leaderboard".
reasonNoWhy the payload is absent, when `available` is false.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
pending_callsNoCalls made but not yet resolvable.
sources_trackedNoSources with any graded call.
sources_past_gateNoSources that cleared the gate — the only ones whose rate means anything.
reliability_gate_callsNoGraded calls a source needs before it is ranked.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/destructive annotations, the description discloses ranking criteria, that it reports both graded and pending-horizon calls, and that it will openly decline to rank thin records. This meaningfully informs the agent about output limitations and behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three purposeful sentences front-load the core purpose, then add ranking philosophy and output caveats. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple: one optional parameter, no required fields, an output schema, and strong annotations. The description covers result interpretation, ranking methodology, and a key edge case (too-thin records), making it complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%: the only parameter, limit, is already documented with default and range. The description adds no parameter-specific detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource—'scored track record of public crypto commentators and influencers'—and a clear evaluation method: calls graded against actual outcomes. It also distinguishes itself from popularity-based tools by saying 'ranked by measured hit-rate, not follower count,' which separates it from sibling social/sentiment tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied: an agent can infer this tool is for influencer accuracy, but the description gives no explicit when-to-use guidance, exclusions, or named alternatives. It is adequate but leaves the selection reasoning to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_bitcoin_cycle_positionBitcoin On-Chain CycleA
Read-onlyIdempotent
Inspect

Where Bitcoin sits in its cycle by on-chain measures — realized-profit, holder-behaviour and valuation indicators rather than price alone.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
nvtNoNVT ratio. Null when the metric is not in this pass.
mvrvNoMVRV ratio with its cycle signal and 7d trend.
staleNoTrue when the snapshot is past its refresh interval.
reasonNoWhy the payload is absent, when `available` is false.
sourceNoOn-chain data source.
txCountNoTransaction count.
priceUsdNoBTC price, raw and formatted.
txVolumeNoOn-chain transaction volume. Null when not in this pass.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.
marketCapNoMarket cap, raw and formatted.
totalFeesNoTotal fees paid.
timeSeriesNoHistory behind the metrics, one point per day.
realizedCapNoRealized cap. Null when not in this pass.
exchangeFlowNoExchange inflow/outflow and the net signal.
minerRevenueNoMiner revenue.
activeAddressesNoActive addresses, with a 7d trend.
dormantSupplyPctNoShare of supply dormant. Null when not in this pass.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive behavior, so the description only needs to add contextual value; it does so by enumerating the indicator families used and clarifying the non-price perspective. No additional side effects or response traits are mentioned, but none are needed for a zero-param read-only tool with an output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single front-loaded sentence: the object ('where Bitcoin sits in its cycle') comes first, followed by the method. No filler or redundant restatement of annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, read-only, idempotent tool with an output schema, the description is sufficient: it states the core question, the data basis, and the contrast to price analysis. The only mild gap is the absence of explicit sibling routing, which is already reflected in the usage-guidelines score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema already covers all of them (100% coverage). The description adds nothing about parameters, but there are no parameters to document, so the baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource ('Bitcoin's cycle position') and the method ('on-chain measures: realized-profit, holder-behaviour and valuation indicators'), making it clearly distinct from price-only or market-sentiment tools in the sibling list. Although phrased as a noun clause, the inherited verb 'get' makes the operation unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage when an on-chain cycle view is needed and explicitly contrasts itself with price-only analysis ('rather than price alone'). However, it never names a sibling alternative or states explicit when/when-not conditions, so routing decisions are left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_congress_tradesUS Congress Stock TradesA
Read-onlyIdempotent
Inspect

Recently disclosed stock and asset transactions by members of the US Congress, newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoDisclosures in this pass.
limitNoRow cap applied to every list in this payload.
staleNoTrue when the snapshot is past its refresh interval.
reasonNoWhy the payload is absent, when `available` is false.
shortsNoShort signals.
sourcesNoPer-source status — which filing feeds answered.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.
longSignalsNoScored buy-side signals.
shortSignalsNoScored sell-side signals; same fields as `longSignals`.
actionableLongsNoLong signals that cleared the scoring gate.
sectorAggregatesNoDisclosed dollars by sector.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful ordering behavior ('newest first') and recency framing ('Recently disclosed'), but it does not elaborate on pagination, data freshness limits, or any other operational nuances beyond what annotations and schema already convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence conveys the resource, scope, and ordering without extraneous words. Information is front-loaded and every element earns its place, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, one-parameter read-only tool with full schema coverage, a rich annotations block, and an output schema, the description is complete. It communicates the essential result shape and ordering; nothing necessary for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the single 'limit' parameter is fully documented with type, default, and range. The description does not mention parameters at all, but with complete schema coverage, the baseline of 3 is appropriate. No additional semantic burden is placed on the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource—recently disclosed stock and asset transactions by US Congress members—and specifies ordering as newest first. It lacks an explicit imperative verb like 'list' or 'retrieve,' but the intent is unmistakable and sufficiently distinguishes it from sibling tools focused on other data domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as get_government_contracts, get_market_sentiment, or get_trade_signals. There is no mention of use cases, exclusions, or contextual conditions, leaving the agent to infer applicability solely from the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_forecast_accuracyForecast Accuracy Track RecordA
Read-onlyIdempotent
Inspect

The measured, out-of-sample accuracy of Einstein's own price forecasts — MAPE and direction hit-rate per model, asset and horizon, scored after each forecast's horizon elapsed. Hit rates are computed over INDEPENDENT trials (one forecast per non-overlapping horizon window), so they are comparable to a 50% coin flip. Use this to decide how much weight to give a forecast.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoRestrict to one asset symbol, e.g. BTC. Omit for the whole board; the response lists every asset that has scored rows.
limitNoMaximum scored buckets (1-50).

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNoOne graded bucket per row.
assetNoAsset filter applied, or null for every asset.
objectNoAlways "forecast-accuracy".
reasonNoWhy the payload is absent, when `available` is false.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
truncatedNoPresent only when a list was cut to `limit`.
assetsScoredNoAssets with a graded record.
totalBucketsNoScored asset/interval/model buckets in the whole record.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and idempotent annotations, the description adds important behavioral context: results are out-of-sample, scored only after the horizon elapses, and hit rates are computed over independent trials comparable to a 50% coin flip. This prevents an agent from misinterpreting the metric and goes well beyond what annotations already declare.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core definition, and every sentence contributes either the method, the statistical interpretation, or the intended use. There is no filler or repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with two optional parameters and an output schema, the description covers what is returned, how it is computed, and how to interpret it. Nothing an agent needs to invoke the tool correctly or judge its results is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so asset and limit are already fully documented in the input schema. The description adds no additional parameter-level semantics, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource ('Einstein's own price forecasts'), the exact metrics (MAPE and direction hit-rate), and how results are broken down (per model, asset, horizon). The phrase 'Einstein's own' also implicitly distinguishes it from sibling tools like get_analyst_accuracy or get_price_forecast, so an agent can tell them apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to decide how much weight to give a forecast' provides a clear decision-oriented use case. It does not explicitly name exclusions or alternatives, but for a read-only accuracy lookup the intended context is specific enough to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_government_contractsUS Government Contract AwardsA
Read-onlyIdempotent
Inspect

Recent notable US federal contract awards — useful for tracking which public companies are winning government money.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoAwards in this pass.
limitNoRow cap applied to every list in this payload.
staleNoTrue when the snapshot is past its refresh interval.
reasonNoWhy the payload is absent, when `available` is false.
shortsNoShort signals.
sourcesNoPer-source status — which award feeds answered.
topScoreNoIts score, 0-1.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.
topSectorNoIts sector.
topTickerNoHighest-scoring ticker.
longSignalsNoScored buy-side signals.
shortSignalsNoScored sell-side signals; same fields as `longSignals`.
actionableLongsNoLong signals that cleared the scoring gate.
sectorAggregatesNoAwarded dollars by sector.
watchlistExpansionNoTickers the pass added to the watchlist.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that results are 'recent notable' awards, but does not disclose update frequency, data source, or whether 'notable' implies filtering or ranking. This is acceptable for a read-only list tool but does not go beyond the annotations meaningfully.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence conveys the core data and the most relevant use case with no filler. It is front-loaded with the subject matter and immediately useful to an agent deciding whether to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only, single-parameter tool with an output schema, the description is largely sufficient. It gives the subject and purpose, and the annotations cover the operational safety hints. A minor gap is that 'notable' is undefined, but this does not prevent a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the lone parameter, limit, is fully documented with type, default, and range. The description adds no parameter-specific information, but none is needed because the schema already handles it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource ('US federal contract awards') and the use case ('tracking which public companies are winning government money'), which differentiates it from siblings like get_congress_trades. It lacks an explicit verb such as 'retrieve' or 'list,' but the name and title make the action unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context for use: tracking notable federal contract wins by public companies. It does not explicitly name alternatives or state when not to use it, but among the siblings, no other tool covers government contract awards directly, so the intended usage is reasonably clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_hyperliquid_whalesHyperliquid Whale PositioningA
Read-onlyIdempotent
Inspect

Consensus positioning of the largest Hyperliquid perp traders plus current funding rates — i.e. what big leveraged money is actually long or short, and what it costs to hold that side. A coin held by fewer than 3 of the read whales is reported NEUTRAL whatever its long/short split (one whale is 100% of the traders holding a coin, which is not a consensus), and any whale accounts that could not be read this pass are reported rather than counted as flat.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoRow cap applied to every list in this payload.
reasonNoWhy the payload is absent, when `available` is false.
whalesNoWhale positioning: the consensus read, the bullish/bearish assets and the traders behind it.
fundingNoPerp funding rates, their extremes, divergences and momentum.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoPer-leg refresh times — positioning and funding age independently.
truncatedNoPresent only when a list was cut to `limit`.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior, and the description adds valuable non-obvious semantics: coins with fewer than 3 read whales are forced to NEUTRAL, and unread whale accounts are reported rather than treated as flat. This meaningfully goes beyond the annotation safety profile and prevents incorrect interpretation of the data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well front-loaded with the main purpose before diving into caveats. The caveat about the 3-whale consensus threshold and unread accounts is dense but necessary; it is slightly heavy in parenthetical detail, preventing a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with one optional parameter and an output schema, the description covers everything needed to invoke it correctly: scope, the meaning of consensus, the NEUTRAL rule, and handling of unread accounts. Return structure can be left to the existing output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, limit, is already fully documented in the input schema with a default and range, so schema coverage is 100%. The description does not add parameter-specific semantics, but with full schema coverage the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (largest Hyperliquid perp traders), the data produced (consensus positioning plus funding rates), and the core concept (what big leveraged money is long/short and what it costs to hold). This clearly differentiates it from sibling tools like get_polymarket_whales or track_whales by naming the exchange, asset class, and funding component.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context for use is clear: it is for Hyperliquid perpetual positioning and funding rates. However, it does not explicitly state when to choose this tool over alternatives or provide exclusions, such as 'for Polymarket use get_polymarket_whales'. Usage is implied rather than directly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_launchpad_radarLaunchpad RadarA
Read-onlyIdempotent
Inspect

Tokens that just migrated off a bonding curve onto a DEX, with holder-distribution forensics: what share the dev, snipers, insiders and bundler wallets hold, plus wash-trading tags. Covers Pump.fun, Bonk, Raydium, Meteora, Four.meme, Flap and others through one feed. Use when asked about new launches, fresh memecoins, or whether a launch is bundled.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoRows to return (1-15).

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNoLaunchpad tokens approaching or past migration.
chainNoChain the screen ran on.
objectNoAlways "launchpad-radar".
reasonNoWhy the payload is absent, when `available` is false.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds meaningful context beyond that: it reveals the tool's analytical content, multi-launchpad coverage through 'one feed,' and the specific wallet categories included in the forensics. This is useful behavioral context without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly structured: the first sentence states what the tool returns, the second covers supported launchpads, and the third gives the usage cue. Every sentence earns its place with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only one optional parameter fully documented in the schema, an output schema present, and annotations covering safety, the description provides enough context for an agent to select and invoke the tool correctly. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the single `limit` parameter, which is already described as 'Rows to return (1-15).' The description does not add parameter-level detail, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource: tokens that just migrated off a bonding curve onto a DEX, with holder-distribution forensics and wash-trading tags. It distinguishes itself from siblings through its specific focus on migration, bundling forensics, and multi-launchpad coverage, though it lacks an explicit verb like 'list' or 'fetch.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: 'Use when asked about new launches, fresh memecoins, or whether a launch is bundled.' It does not mention when not to use it or name alternatives like scan_launchpads, so it stops short of full 5-level guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_sentimentCrypto & TradFi Fear and GreedA
Read-onlyIdempotent
Inspect

Multi-source market sentiment in one read: the crypto Fear & Greed index, CoinMarketCap’s variant, the traditional-market (CNN) Fear & Greed, and the Altcoin Season index. Useful for framing any "how is the market feeling" question.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
cmcNoCoinMarketCap Fear & Greed index, with a yearly high/low.
cryptoNoCrypto Fear & Greed index, with yesterday/last-week comparisons.
reasonNoWhy the payload is absent, when `available` is false.
tradfiNoCNN TradFi Fear & Greed index — the equities read, for divergence.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoPer-source refresh times; the four sources age independently.
altcoinSeasonNoAltcoin-season regime, its 30d/90d indices and the cohort behind them.

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful context about the aggregated nature of the data ('in one read' and the source list), but doesn't go into deeper behavioral details like staleness or update frequency. That's acceptable given the annotations carry the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste: the first names exactly what the tool returns, the second states its purpose. Front-loaded and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter read with an existing output schema and safety annotations, the description is complete. It lists every data source and provides a crisp use case; nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema trivially covers 100% of parameter semantics. Per the baseline for zero-parameter tools, a 4 is appropriate; no description-level parameter documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it reads multi-source market sentiment, and lists exactly four indices (crypto Fear & Greed, CoinMarketCap’s variant, CNN Fear & Greed, Altcoin Season index). This level of specificity clearly distinguishes it from sentiment-adjacent siblings like get_social_hype or scan_market.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Useful for framing any “how is the market feeling” question.' However, it does not name alternatives or state when not to use it, which keeps it just below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_polymarket_whalesPolymarket Whale TradesA
Read-onlyIdempotent
Inspect

Large and unusually-early positions taken on Polymarket prediction markets, surfaced from the insider-detection scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoRow cap applied to every list in this payload.
staleNoTrue when the snapshot is past its refresh interval.
reasonNoWhy the payload is absent, when `available` is false.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.
truncatedNoPresent only when a list was cut to `limit`.
alertCountNoAlerts in this pass.
highRiskCountNoAlerts graded high risk.
insiderScanReportNoThe scan behind the alerts.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already disclose read-only, idempotent, and non-destructive behavior. The description adds meaningful context about selection criteria ('large and unusually-early positions') and provenance ('insider-detection scan'), which clarifies what data will be returned. It does not define thresholds or ordering, but that is not essential given the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence delivers the core resource, qualifiers, and data source without filler. Every phrase earns its place, and the most identifying information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations, input schema, and output schema collectively cover safety, parameters, and return structure. The description supplies the market and data-source context needed to disambiguate from similar whale tools, though it could be slightly stronger with an explicit alternative or exclusion note.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, limit, is fully documented in the schema with a default and range (1-25), so the schema carries the semantic burden. The description adds no parameter-specific information, which is acceptable at 100% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific resource—large and unusually-early positions on Polymarket prediction markets—and adds provenance from the insider-detection scan, which helps distinguish it from sibling whale-tracking tools by platform. It lacks an explicit retrieval verb like 'list' or 'get,' but the tool name and title make the action clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for Polymarket whale data sourced from insider-detection scanning, but it does not explicitly state when to choose this tool over alternatives such as get_hyperliquid_whales or track_whales. No exclusions or routing conditions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_prediction_market_catalystsPrediction Market Catalyst RadarA
Read-onlyIdempotent
Inspect

Upcoming dated events on Polymarket whose odds are moving — the catalysts most likely to move crypto or macro narratives next.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoRow cap applied to every list in this payload.
staleNoTrue when the snapshot is past its refresh interval.
reasonNoWhy the payload is absent, when `available` is false.
matchesNoPrediction markets whose odds moved against a dated catalyst.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful selection behavior — upcoming dated events and moving odds — but does not detail sorting, time horizon, or data staleness. This is acceptable for a simple read operation but only moderately transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence front-loads the resource and filter, then states the tool's purpose. Every word earns its place with no redundant filler or repetition of schema or annotation information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, one-parameter endpoint with an output schema and full annotation coverage, the description provides enough context to invoke the tool correctly. The only notable gap is the lack of explicit differentiation from closely related prediction-market sibling tools, but this is not critical for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single limit parameter, including default and range, so the schema carries the parameter semantics. The description adds no parameter-specific detail, which is fine under the baseline-3 rule.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource ('upcoming dated events on Polymarket') and the selection criterion ('odds are moving'), so an agent can tell what data the tool returns. It lacks an explicit verb like 'list' or 'return', but the meaning is unambiguous and distinct from sibling tools focused on yields, whales, or broad market analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when an agent wants near-term, narrative-moving catalysts, but it does not explicitly state when to use this over siblings such as get_prediction_market_yields or analyze_prediction_markets. No exclusions or decision rules are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_prediction_market_yieldsPrediction Market Yield SurfaceA
Read-onlyIdempotent
Inspect

Near-certain Polymarket outcomes ranked by annualized return to resolution — the "cash-like yield" view of prediction markets.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoRow cap applied to every list in this payload.
staleNoTrue when the snapshot is past its refresh interval.
reasonNoWhy the payload is absent, when `available` is false.
totalsNoTotals across the surface.
tradesNoRedemption-arb tickets — near-certain outcomes still trading below $1.
walletsNoWallets taking those tickets.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.
truncatedNoPresent only when a list was cut to `limit`.
priceFloorNoEntry price a ticket had to clear, 0-1.
lookbackHoursNoWindow scanned.
minCollateralUsdNoUSD size a ticket had to clear.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey read-only, idempotent, non-destructive behavior, so the bar is lower here. The description adds genuinely useful behavior beyond those annotations: it filters to near-certain outcomes and ranks by annualized return to resolution, which is the tool's core selection logic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the key selection and ranking criteria. Every phrase earns its place, and there is no redundant restatement of the title or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low parameter count, rich annotations, and presence of an output schema, the description is sufficient for correct invocation. The only minor gap is not specifying the ranking direction explicitly, but 'ranked by annualized return to resolution' strongly implies descending yield.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter, limit, and the input schema provides full documentation with default and range (1-25). Per the baseline for high schema coverage, the description does not need to add parameter-level detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (Polymarket outcomes), a specific filter (near-certain), and a specific ordering (annualized return to resolution). The 'cash-like yield' framing clearly separates it from siblings like get_prediction_market_catalysts or analyze_prediction_markets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for viewing prediction markets as a cash-like yield surface, so an agent could infer when to call it. However, it does not explicitly state when to prefer this over sibling tools such as analyze_prediction_markets or get_prediction_market_catalysts, nor does it name any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_price_forecastAI Price ForecastA
Read-onlyIdempotent
Inspect

Einstein's dual-model machine-learning price forecast (Google TimesFM 3.0 + Kronos) for BTC, ETH, SOL or BNB, including whether the two models agree and the direction/drift each projects. Pre-computed every 4 hours; returns the cached run rather than triggering new inference.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoAsset symbol. Only the pre-computed universe is available for free.BTC
intervalNoCandle interval: 4h looks ~32h ahead, 1d ~7d, 1w ~4w, 1M ~4mo.1d

Output Schema

ParametersJSON Schema
NameRequiredDescription
assetNoAsset the forecast covers (BTC, ETH, SOL or BNB).
reasonNoWhy the payload is absent, when `available` is false.
sourceNoWhich store the cached run came from.
driftPctNoProjected percentage drift over the interval.
intervalNoCandle interval: 4h, 1d, 1w or 1M.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
consensusNoTrue when TimesFM and Kronos agree. False means the models DISAGREE and the signal is weak; null means agreement was not recorded.
directionNoProjected direction — bullish, bearish or neutral.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds valuable behavioral detail: the forecast is pre-computed every 4 hours and returns a cached run rather than triggering new inference. This goes beyond the annotations and meaningfully shapes agent expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with no filler. The core purpose is first, followed by the model detail and the critical caching caveat. Every sentence contributes distinct value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value documentation is already handled. The description states scope, asset universe, model composition, output characteristics, freshness cadence, and the no-new-inference behavior. An agent has everything needed to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter has a useful description, including the lookahead horizon per interval. The description adds asset names but no extra parameter-level semantics. Baseline 3 is appropriate because the schema carries the full parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (get), resource (price forecast), and the exact assets covered (BTC, ETH, SOL, BNB). It also adds distinguishing content: dual-model ML, agreement between models, and direction/drift projections. This clearly differentiates it from accuracy or chart-related sibling forecast tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the tool's cached nature but provides no guidance on when to choose this over alternatives like get_forecast_accuracy or forecast_chart. It neither states conditions for use nor points to sibling tools for other purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_robinhood_whale_printsRobinhood Chain Whale PrintsA
Read-onlyIdempotent
Inspect

Individual large DEX trades on Robinhood Chain (EVM 4663) — the tokenized equities (NVDA, SPY, HIMS) and Pons memecoin flow that no mainnet whale feed carries, each with its token, side, venue and USD value. Every print is valued through its USDG or ETH leg and cross-checked, so trades priced off a freshly-created pool (which the raw chain data reports in the hundreds of millions) are excluded rather than published. WETH/USDG FX swaps are counted separately instead of dominating the tape.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoRow cap applied to every list in this payload.
printsNoThe tape and the pass that produced it.
reasonNoWhy the payload is absent, when `available` is false.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool read-only, idempotent, and non-destructive. The description adds substantial behavioral context beyond annotations: cross-checked USDG/ETH valuation, exclusion of mispriced freshly-created-pool trades, and separate counting of WETH/USDG FX swaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences front-load the core purpose and then add only high-value caveats about valuation, exclusions, and swap handling. No filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one optional parameter, an output schema, and read-only/idempotent annotations, the description thoroughly covers expected fields and important data-quality behavior. An agent has everything needed to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, limit, is fully documented in the input schema with 100% coverage. The description adds no parameter-specific semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: retrieving individual large DEX trades on Robinhood Chain (EVM 4663), with concrete assets and per-print fields. This clearly distinguishes it from sibling tools like get_hyperliquid_whales, get_polymarket_whales, and track_whales.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by describing Robinhood Chain-specific data 'that no mainnet whale feed carries', implying when this tool is relevant. It does not explicitly name alternatives or state when-not-to-use it, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_smart_money_flowSmart Money FlowB
Read-onlyIdempotent
Inspect

Where profitable on-chain wallets have been rotating capital recently, from the tracked smart-money cohort.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoRow cap applied to every list in this payload.
staleNoTrue when the snapshot is past its refresh interval.
reasonNoWhy the payload is absent, when `available` is false.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.
overallSignalNoNet read across the transfers — accumulating, distributing or neutral.
smartMoneyMovesNoOne-line summaries of the same moves.
notableTransfersNoThe transfers behind the signal.
droppedRoutineCustodyNoTransfers dropped as routine custody movement rather than signal.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is read-only, idempotent, and non-destructive. The description adds useful context: data comes from a tracked smart-money cohort of profitable wallets and reflects recent capital rotation. It does not disclose details like time window or inclusion criteria, but the output schema covers the return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence with no filler, and the core concepts of cohort and capital rotation are front-loaded. It is slightly fragmentary, but it is appropriately compact for a simple read-only tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only tool with an output schema and clear annotations, the description is largely sufficient. The main gaps are the lack of a defined time window and the absence of any clarification on how this tool differs from the similar get_smart_money_inflow sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single parameter, limit, which is fully described with a default and range. The description does not mention limit, but with 100% schema description coverage, the schema carries the semantic burden, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource (profitable on-chain wallets in the tracked smart-money cohort) and the action (rotating capital), so an agent can infer this is a read about recent smart-money movement. However, it is phrased as a fragment rather than a clear verb statement, and it does not distinguish 'flow' from the sibling get_smart_money_inflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to choose this tool over alternatives such as get_smart_money_inflow or track_whales. The word 'recently' implies temporal context, but there are no explicit use cases, exclusions, or alternative comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_smart_money_inflowSmart-Money Net InflowA
Read-onlyIdempotent
Inspect

Tokens ranked by NET smart-money inflow in US dollars over the last 24 hours, from wallets Binance tracks as consistently profitable. Reports the number of distinct wallets behind each figure — a large inflow from one wallet is a position, not a consensus. BSC. Use when asked what smart money is buying or where informed flow is going.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoRows to return (1-15).

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNoTokens ranked by smart-money inflow.
chainNoChain the screen ran on.
objectNoAlways "smart-money-inflow".
periodNoLookback period.
reasonNoWhy the payload is absent, when `available` is false.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds valuable interpretive context: it reports distinct wallet counts and warns that a large single-wallet inflow is 'a position, not a consensus,' plus it specifies the chain (BSC) and timeframe. This goes beyond annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no fluff: the first states what and how, the second adds an important interpretative caveat, and the third gives usage guidance. Each sentence earns its place and the main purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read-only tool with an output schema present, the description covers the key context: metric, timeframe, data source, chain, interpretation, and when to use. There is no missing information an agent would need to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, limit, is fully documented in the schema with description 'Rows to return (1-15).' Schema coverage is 100%, so the description does not need to add parameter details. The description adds no extra meaning beyond the schema, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('ranked'), resource ('tokens'), metric ('NET smart-money inflow in US dollars'), and timeframe ('last 24 hours'). It distinguishes implicitly from the similar sibling get_smart_money_flow by emphasizing 'NET' and 'BSC', but does not explicitly name the sibling or state the exact differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an explicit usage trigger: 'Use when asked what smart money is buying or where informed flow is going.' This gives clear context for when the tool applies. It does not mention when-not-to-use or name alternatives, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_social_hypeToken Social HypeA
Read-onlyIdempotent
Inspect

Tokens ranked by social buzz over the last 24 hours, each with a sentiment classification (Positive/Negative/Neutral), the number of distinct KOL accounts discussing it, and a one-line summary of what is actually being said. BSC. Use when asked what is being talked about, what is trending socially, or how sentiment sits on a token.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoRows to return (1-15).
sentimentNoFilter to one sentiment class.All

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNoTokens ranked by social hype.
chainNoChain the screen ran on.
objectNoAlways "social-hype".
reasonNoWhy the payload is absent, when `available` is false.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
sentimentNoSentiment filter applied.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds valuable behavioral context: the time window (24 hours), the data composition (sentiment, KOL count, summary), and the network (BSC). It does not contradict annotations and provides meaningful additional detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, front-loading the core function (ranking by social buzz) before detailing output and usage. No wasted words; every clause serves a purpose, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, output details, network, and usage guidance. Since an output schema exists, the absence of explicit return format details is acceptable. It is complete enough for an agent to call correctly, with only minor gaps like pagination or edge cases that are typically not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already described in the schema. The tool description reinforces the sentiment parameter by mentioning sentiment classification, but does not add new semantic meaning beyond what the schema provides. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: it ranks tokens by social buzz over the last 24 hours, specifying the output fields (sentiment, KOL count, summary) and the network (BSC). It distinguishes itself from siblings like get_market_sentiment by focusing on social buzz and KOL discussions, making it easily identifiable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage directions are given: 'Use when asked what is being talked about, what is trending socially, or how sentiment sits on a token.' It does not name alternatives or state when not to use it, but the conditions are clear and the BSC scope further narrows applicability, making it a strong, though not exhaustive, guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_moversTop Gainers and LosersA
Read-onlyIdempotent
Inspect

The largest 24h movers across the major-cap crypto universe, gainers or losers, from a refreshed market snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideNoWhich end of the board to return.gainers
limitNoMaximum rows (1-25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
sideNoWhich side was asked for — gainers or losers.
limitNoRow cap applied to every list in this payload.
staleNoTrue when the snapshot is past its refresh interval.
errorsNoLegs that failed. A partial answer says so here rather than reading as a quiet market.
reasonNoWhy the payload is absent, when `available` is false.
sourceNoPrice source behind the cross-asset ranking.
idSourceNoSource of the asset identifiers.
perChainNoPer-chain movers, keyed by chain.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries.
crossAssetNoCross-asset ranking plus the universe/cohort sizes it was drawn from.
perChainUnavailableNoTrue when the per-chain leg could not be read.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the trait 'refreshed market snapshot,' which signals that results are time-sensitive and drawn from a current data state. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the core result ('largest 24h movers'), then adds scope and freshness. Every phrase earns its place, with no redundant filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity, read-only retrieval tool with only two optional parameters and a full output schema, this description is nearly complete. It conveys the universe, timeframe, direction options, and freshness. Minor ambiguities remain, such as whether 'movers' means percentage change or absolute change and what 'major-cap' includes, but they are not blocking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: both 'side' and 'limit' are documented in the schema with their defaults and constraints. The description does not need to add parameter meaning, and it mostly restates the 'gainers or losers' concept already captured by the enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific resource: the largest 24h movers in the major-cap crypto universe, explicitly including gainers or losers. It lacks an imperative verb like 'list' or 'return', but the noun phrase and title make the tool's function clear. It is distinguishable from many siblings because it pinpoints a 24-hour movers board rather than sentiment, flows, or scans.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied: an agent should call this when it needs the top 24h gainers or losers across major-cap crypto. However, there is no explicit guidance about when to prefer this over alternatives such as scan_market or get_market_sentiment, and no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trade_signalsLive Trade SignalsA
Read-onlyIdempotent
Inspect

Einstein's current live trade signals — the setups its own autonomous engine is acting on, with entry, stop and target levels and the reasoning behind each. [Paid: $0.50 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (1-100).

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses a per-call cost ($0.50) and notes that free alternatives exist. It does not mention any side effects or errors, but the cost and alternative availability are valuable behavioral details not present in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with the core purpose stated first, followed by cost and alternative guidance. It is well-structured and free of fluff, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives sufficient context about the returned data (levels and reasoning) and the current live nature of signals. It lacks details on output format or pagination, but for a simple read-only tool with one parameter, it provides enough to decide when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'limit' is already fully described in the schema with its default and range. The tool description adds no extra meaning about the parameter, so it matches the baseline score for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that this tool provides Einstein's current live trade signals, including entry, stop, target levels, and reasoning. It specifies the unique source ('autonomous engine') and distinguishes it from sibling tools that offer other market data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is paid and points to free alternatives via list_einstein_capabilities, giving the agent a clear choice. However, it does not explicitly state 'use this when you need Einstein's own signals' or contrast with a specific sibling, so guidance is slightly less explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_onchainContract Review · Transaction Debugger · Fund-Flow TraceA
Read-onlyIdempotent
Inspect

Block-explorer intelligence on 18 EVM chains, from live Etherscan V2 data. contract reviews a deployed contract — resolving proxies FIRST (EIP-1967, the legacy OpenZeppelin slot USDC still uses, EIP-1167 clones, Gnosis Safe, EIP-2535 diamonds) so the answer describes the implementation that actually executes rather than the delegating stub. transaction explains what one transaction did: decoded method and logs, exact integer gas arithmetic including the L1 data fee on OP-stack chains, asset and permission changes, and decoded revert reasons. flow follows the money from a transaction or wallet across hops and returns a nodes-and-edges graph where every edge carries a real transaction hash. Read-only; nothing is signed or broadcast. [Paid: $0.25–$0.35 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNocontract = review a deployed contract (needs `address`) · transaction = explain one transaction (needs `txHash`) · flow = trace fund flow from a transaction or wallet.contract
chainNoBlockchain network.base
txHashNoTransaction hash (0x + 64 hex).
addressNoContract or wallet address (0x + 40 hex).

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide the read-only and non-destructive profile, and the description adds substantial behavioral context: proxy resolution order, implementation-vs-stub behavior, exact gas arithmetic including OP-stack L1 fees, and graph edges carrying real transaction hashes. The claim of '18 EVM chains' conflicts with the schema's seven enum values and includes Solana, which is not EVM, so the behavioral disclosure is slightly overconfident.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but organized: a one-line overview, then mode-by-mode behavioral details, then safety and cost/alternatives in a compact final sentence. Every sentence earns its place, and backticked mode names make the structure scannable for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers invocation modes, required inputs, output characteristics, read-only safety, pricing, and where to find alternatives, and an output schema exists to document return shapes. However, the inconsistency between '18 EVM chains' and the schema's seven-value enum (which includes non-EVM Solana) leaves a real completeness gap that could confuse an agent about supported networks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful parameter-level semantics by explaining what each `kind` produces and what inputs are needed. It clarifies the `flow` mode's graph output and the `transaction` mode's decoded-method and revert-reason details, which go beyond the schema's brief field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Block-explorer intelligence on 18 EVM chains' with three concrete modes — `contract` reviews, `transaction` explains, and `flow` follows money. This strongly differentiates it from the sibling analytics tools and leaves no doubt about the tool's core function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each mode names the input it requires (`contract` needs `address`, `transaction` needs `txHash`, `flow` starts from a transaction or wallet), giving the agent clear selection criteria. It also explicitly points to `list_einstein_capabilities` for free alternatives, which is useful cost-aware guidance, though it does not name specific sibling tools that should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_einstein_capabilitiesList Einstein CapabilitiesA
Read-onlyIdempotent
Inspect

Everything Einstein can do through this connector, split into free tools and paid tools with their prices, plus how billing works. Call this when you are not sure which tool fits, or before telling a user something isn't available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
freeNoTools any caller can use with no account and no charge.
paidNoTools that need a signed-in Einstein account with credit.
reasonNoWhy the payload is absent, when `available` is false.
billingNoHow paying works: the billing model, how to top up and how to sign in.
availableNoFalse when this call has no data. NOT an error.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, idempotent, non-destructive nature of the tool. The description adds valuable behavioral context by disclosing that it returns a categorized catalog with pricing and billing details, which is beyond what the annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the tool's purpose and followed by clear usage guidance. Every sentence earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only discovery tool with an output schema and strong annotations, the description is fully adequate. It explains what the output includes and when to invoke it, leaving no critical gap for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

This tool has zero parameters, so the baseline of 4 applies. There is nothing for the description to clarify in terms of parameter meaning, and it rightly does not invent any.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('list') and a clear resource ('Einstein capabilities through this connector'), and further specifies the output is split into free and paid tools with prices and billing info. This clearly differentiates it from the many analysis/get sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to call: when unsure which tool fits or before telling the user something isn't available. It does not equally explicitly state when not to use it or name alternative tools, but the guidance is clear enough for an agent to route to it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_allocationPortfolio and Strategy AllocationA
Read-onlyIdempotent
Inspect

Risk-aware allocation guidance: portfolio risk allocation, how to split capital across strategies, whether current conditions pass Einstein’s strategy gate, or its meta-strategy read of the whole market. [Paid: $0.50–$1.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoportfolio_risk · strategy_split · gate_check · meta_strategy.portfolio_risk
contextNoPortfolio or constraints to reason about.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond that: the call costs $0.50–$1.00 from the Einstein credit balance, free alternatives may exist, and the tool performs evaluative judgments such as passing Einstein's strategy gate or providing a meta-strategy read. No contradiction with the annotations was found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded. The first sentence states the core purpose and enumerates the specific use cases; the second adds essential cost and alternative guidance. Every sentence earns its place with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with only two parameters, a clear enum, and an output schema, the description is largely complete. It covers the main use cases, cost, and the existence of free alternatives. The only notable gap is that it does not explain when each kind should be preferred over another, but the schema and output schema mitigate that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds meaningful semantics to the enum values by explaining that portfolio_risk relates to portfolio risk allocation, strategy_split to splitting capital across strategies, gate_check to Einstein's strategy gate, and meta_strategy to a whole-market read. The context parameter is less enriched, but the overall parameter understanding is well supported.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies what the tool provides: risk-aware allocation guidance, with four concrete outputs (portfolio risk allocation, strategy split, Einstein's strategy gate check, and meta-strategy read). This makes it easy to distinguish from the many sibling analysis and data-retrieval tools, especially by naming list_einstein_capabilities as the place to find free alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: whenever a user needs allocation guidance or strategy gate/meta-strategy insight. It also warns that free alternatives exist for several of these use cases and directs users to list_einstein_capabilities. However, it does not explicitly specify which use cases have free alternatives or name the alternative tools, so the guidance remains somewhat vague.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_backtestStrategy BacktestA
Read-onlyIdempotent
Inspect

Backtest a trading strategy on real historical data: describe rules in plain language for a custom event-driven backtest, run a standard strategy template, or optimize a strategy’s parameters. [Paid: $0.75–$2.00 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNocustom (plain-language rules) · standard · engine · optimize.custom
assetNoAsset to backtest against.
strategyYesPlain-language strategy description or template name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds the meaningful cost disclosure ('$0.75–$2.00 per call from your Einstein credit balance') and clarifies that it runs on historical data, which is useful behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single well-structured sentence that front-loads the core purpose, then efficiently lists supported modes and adds cost/alternative guidance. No filler or redundant repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the description is nearly complete: it explains the main invocation modes, mentions cost, and points to alternatives. The only minor gap is that it does not explain the 'engine' kind, but the schema already documents that enum value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description partially reinforces the meaning of 'strategy' and the 'kind' modes, but it does not add significant new meaning for parameters like 'asset' or the 'engine' kind beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Backtest') and resource ('a trading strategy on real historical data'), and explicitly enumerates the main modes: custom plain-language rules, standard template, and parameter optimization. This clearly distinguishes it from sibling analysis and forecasting tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on what the tool does and notes that 'free alternatives exist for several of these', pointing to list_einstein_capabilities. It does not provide exhaustive when-not-to-use guidance, but it does alert the agent to cost and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_launchpadsLaunchpad ScannerA
Read-onlyIdempotent
Inspect

New and trending token launches: Pump.fun (Solana), Zora (Base), or the Robinhood Chain market catalog. [Paid: $0.25–$0.40 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (1-100).
venueNoWhich launch venue to scan.pumpfun
timeframeNoLookback window.24h

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the main behavioral aspects. The description adds the paid nature and existence of free alternatives, which is useful context but does not significantly extend beyond the annotations regarding execution behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that conveys the core purpose and includes the paid note and free alternatives. It is well-structured and free of unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions the target venues, the paid nature, and alternatives, while the output schema presumably details the return format. It does not cover edge cases like rate limits or error handling, but for a tool of this simplicity, the provided information is adequate for a user to decide when to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all three parameters (limit, venue, timeframe) with clear meanings and enum values for venue and timeframe. The description does not add extra semantics, but the schema itself is sufficiently informative, warranting a score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function as scanning for new and trending token launches, specifies the supported venues (Pump.fun, Zora, Robinhood Chain), and distinguishes it from other launch-related tools by focusing on 'new and trending' rather than radar or market scans. The verb 'scan' and resource 'launchpads' are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that the tool is paid and that free alternatives exist via list_einstein_capabilities, which provides some context. However, it does not explicitly state when to use this tool over sibling tools like get_launchpad_radar or scan_market, leaving the choice somewhat ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_marketMarket ScanA
Read-onlyIdempotent
Inspect

Live market scans: top gainers, biggest movers, alpha-ranked gainers with quality filters, the altcoin-season reading, technical analysis for one asset, or the current market-regime classification. [Paid: $0.25–$0.60 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNotop_gainers · movers · alpha_ranked (quality-filtered gainers) · altseason · technicals (needs `token`) · regime (market regime classification).top_gainers
chainNoBlockchain network.base
limitNoMaximum results (1-100).
tokenNoToken symbol or address, for `technicals`.
timeframeNoLookback window.24h

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the read-only/unmutating profile is established. The description adds valuable behavioral context beyond annotations: live data, a per-call cost from the Einstein credit balance, and the existence of free alternatives.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact sentence front-loads the tool's purpose and then lists the variants, with a parenthetical cost note appended. No wasted words and the structure is scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Between the annotated safety profile, the 100%-covered schema, and the output schema, the description covers what the tool does, its cost, and that free alternatives exist. It does not explain default chain/limit behavior, but those are in the schema, so nothing essential is missing for selecting and invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description does not meaningfully expand on parameters—it merely restates scan kinds that match the kind enum, with the technicals requirement already covered in the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Live market scans') and enumerates six distinct scan kinds, making the tool's scope concrete. It doesn't explicitly differentiate from overlapping siblings like get_top_movers or get_market_sentiment, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the tool is paid and points to free alternatives via list_einstein_capabilities, giving a cost-based reason to choose an alternative. However, it doesn't specify which alternative applies to which scan kind or provide conditional usage rules, so guidance remains incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_v4_hooksUniswap v4 Hook RadarA
Read-onlyIdempotent
Inspect

Census the Uniswap v4 hook layer on Robinhood Chain (4663) and Base: which hook contracts are creating the most pools, what each is permitted to do to a trader or an LP (take an arbitrary cut of a swap, reject a swap, block a liquidity withdrawal), which sit behind an upgradeable proxy, and which hooks no registry has catalogued. Permissions are decoded from the hook address itself, so they describe capability, not intent — most delta-taking hooks are ordinary launchpads. Robinhood Chain is one of the largest Uniswap v4 venues by volume (the share moves week to week) and a large share of its hooked liquidity is uncatalogued. [Paid: $0.25 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdNoRestrict to one chain. 4663 = Robinhood Chain, 8453 = Base. Omit for both.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations confirm it's a read-only, idempotent, open-world operation. The description adds valuable context: permissions are decoded from the hook address (capability, not intent), most delta-taking hooks are ordinary launchpads, and a large share of liquidity is uncatalogued. It also mentions the paid cost. It doesn't disclose rate limits or exact output format, but output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and scope, then adds crucial caveats (capability vs. intent) and pricing. It is somewhat lengthy but every sentence earns its place by adding interpretative context. No unnecessary repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool (on-chain census with permission decoding and registry gaps), the description provides sufficient context about what is analyzed, the chains involved, the nature of the data, and the cost. It complements the existing output schema and annotations without redundancy.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single parameter 'chainId' is fully documented in the schema, including enum meanings and omission behavior. The description doesn't add parameter-level semantics beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Census') and resource ('the Uniswap v4 hook layer') with clear scope (Robinhood Chain 4663 and Base). It differentiates from siblings like scan_launchpads and get_launchpad_radar by focusing on hook contracts, permissions, and registry coverage rather than general launchpads.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It notes the paid nature and points to 'list_einstein_capabilities' for free alternatives, providing some cost-based guidance. However, it does not explicitly state when to use this tool versus other on-chain analysis tools like scan_launchpads or inspect_onchain, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_whalesWhale and Smart-Money TrackingA
Read-onlyIdempotent
Inspect

Live intelligence on large capital: on-chain whale transfers and accumulation, Hyperliquid perp whale positioning, or the profitable smart-money cohort. [Paid: $0.45–$0.50 per call from your Einstein credit balance. Free alternatives exist for several of these — see list_einstein_capabilities.]

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoBlockchain network.base
limitNoMaximum results (1-100).
venueNoonchain = large on-chain transfers · hyperliquid = perp whale positioning · smart_money = profitable-wallet cohort.onchain
timeframeNoLookback window.24h

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillNoWhich Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.
reasonNoWhy there is no analysis, when `available` is false.
analysisNoThe written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.
availableNoTrue when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses the cost per call and notes that free alternatives exist for some functionalities. This adds transparency about the tool's commercial nature without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, two sentences, and well-structured. It presents the core functionality and then adds cost and alternative information in a bracketed note, keeping the main purpose prominent without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and is not described, the description adequately covers what the tool does, its cost, and alternatives. It provides enough context for an agent to decide when and how to use it, without missing critical information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters have schema descriptions, and the enum values for 'venue' and 'timeframe' are explained clearly. While the descriptions are concise, they are sufficient for understanding the expected inputs. The tool description itself does not add extra parameter details, but the schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: providing live intelligence on whale activity across on-chain transfers, Hyperliquid perps, and smart-money cohorts. It is specific and distinguishes the tool's focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions paid pricing and points to free alternatives via list_einstein_capabilities, giving clear guidance on when to use this tool versus cheaper options. It also implies a real-time intelligence use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedanalyze_tokenized_stocks3 fields changed
      • changedInput schema / properties / board / description
        Previous value: -"float-corner = float concentration + mint window · wrapper-trust = can the wrapper be trusted as COLLATERAL (on-chain rate path, vault-inflation exposure, an unscheduled rate move, pause/permissioning) · stock-pairs = BaseStonk launches priced in an equity (Base) · pons-stock-pairs = Pons launches priced in an equity, and which equity the venue is collectively long (Robinhood Chain 4663) · early-buyers = entry-ranked buyers of one token plus a one-hop funding trace (needs `token`) · trader-record = which wallets are actually good · event-risk = scheduled corporate actions and the implied gap at the open."New value: +"portfolio = deterministic non-executing Coinbase B20 portfolio draft on Base (use `intent`) · float-corner = float concentration + mint window · wrapper-trust = can the wrapper be trusted as COLLATERAL (on-chain rate path, vault-inflation exposure, an unscheduled rate move, pause/permissioning) · stock-pairs = BaseStonk launches priced in an equity (Base) · pons-stock-pairs = Pons launches priced in an equity, and which equity the venue is collectively long (Robinhood Chain 4663) · early-buyers = entry-ranked buyers of one token plus a one-hop funding trace (needs `token`) · trader-record = which wallets are actually good · event-risk = scheduled corporate actions and the implied gap at the open."
      • changedInput schema / properties / board / enum
        Previous value: -[
        -  "float-corner",
        -  "wrapper-trust",
        -  "stock-pairs",
        -  "pons-stock-pairs",
        -  "early-buyers",
        -  "trader-record",
        -  "event-risk"
        -]New value: +[
        +  "float-corner",
        +  "wrapper-trust",
        +  "stock-pairs",
        +  "pons-stock-pairs",
        +  "early-buyers",
        +  "trader-record",
        +  "event-risk",
        +  "portfolio"
        +]
      • addedInput schema / properties / intent
        Added value: +{
        +  "description": "Natural-language portfolio objective. Used when board=portfolio; no transactions are executed.",
        +  "type": "string"
        +}
  2. 1 tool update
    • Changedfind_yield2 fields changed
      • changedInput schema / properties / chain / description
        Previous value: -"Blockchain network."New value: +"Blockchain network. `robinhoodchain` covers the Pendle NVDA/PFE markets."
      • changedInput schema / properties / chain / enum
        Previous value: -[
        -  "base",
        -  "ethereum",
        -  "bsc",
        -  "arbitrum",
        -  "polygon",
        -  "optimism",
        -  "solana"
        -]New value: +[
        +  "base",
        +  "ethereum",
        +  "bsc",
        +  "arbitrum",
        +  "polygon",
        +  "optimism",
        +  "solana",
        +  "robinhoodchain"
        +]
  3. 1 tool update
    • Changedget_forecast_accuracy10 fields changed
      • changedOutput schema / properties / rows / items / properties / direction_hit_rate / description
        Previous value: -"Share of forecasts that called the direction correctly, 0-1."New value: +"Share of independent directional calls that got the direction right, 0-1. Neutral forecasts and ±0.5% scratches are excluded; null = no scored directional call yet."
      • changedOutput schema / properties / rows / items / properties / direction_samples / description
        Previous value: -"Graded forecasts behind the direction hit-rate — a DIFFERENT denominator from `samples`."New value: +"INDEPENDENT directional calls behind the hit-rate, one per non-overlapping horizon window — a DIFFERENT denominator from `samples`."
      • changedOutput schema / properties / rows / items / properties / first_sample_ts / description
        Previous value: -"Oldest graded sample."New value: +"Oldest graded sample (ms epoch)."
      • changedOutput schema / properties / rows / items / properties / independent_samples / description
        Previous value: -"Non-overlapping samples."New value: +"Independent trials of any kind (directional, abstained or scratched)."
      • changedOutput schema / properties / rows / items / properties / last_sample_ts / description
        Previous value: -"Newest graded sample."New value: +"Newest graded sample (ms epoch)."
      • changedOutput schema / properties / rows / items / properties / overlapping_direction_samples / description
        Previous value: -"Direction samples whose windows overlap."New value: +"Every verified directional forecast, overlaps included — audit only."
      • changedOutput schema / properties / rows / items / properties / overlapping_hit_rate / description
        Previous value: -"Hit rate over the overlapping samples."New value: +"Hit rate over the overlapping count with scratches counted as misses — audit only, not a track record."
      • changedOutput schema / properties / rows / items / properties / sample_basis / description
        Previous value: -"How the samples were counted."New value: +"\"independent\" = de-overlapped (the honest figure); \"overlapping\" = not de-overlapped yet, so the counts and hit rate are inflated."
      • changedOutput schema / properties / rows / items / properties / samples / description
        Previous value: -"Graded forecasts behind the error figures."New value: +"Every verified forecast behind the error figures (MAPE/RMSE), overlapping re-issues included — NOT a count of independent calls; never quote it beside a hit rate."
      • changedOutput schema / properties / rows / items / properties / scratch_samples / description
        Previous value: -"Samples graded from a scratch run."New value: +"Independent directional calls whose outcome landed inside the ±0.5% deadband; excluded from the hit rate."
  4. 1 tool update
    • Changedanalyze_tokenized_stocks2 fields changed
      • changedInput schema / properties / board / description
        Previous value: -"float-corner = float concentration + mint window · stock-pairs = BaseStonk launches priced in an equity (Base) · pons-stock-pairs = Pons launches priced in an equity, and which equity the venue is collectively long (Robinhood Chain 4663) · early-buyers = entry-ranked buyers of one token plus a one-hop funding trace (needs `token`) · trader-record = which wallets are actually good · event-risk = scheduled corporate actions and the implied gap at the open."New value: +"float-corner = float concentration + mint window · wrapper-trust = can the wrapper be trusted as COLLATERAL (on-chain rate path, vault-inflation exposure, an unscheduled rate move, pause/permissioning) · stock-pairs = BaseStonk launches priced in an equity (Base) · pons-stock-pairs = Pons launches priced in an equity, and which equity the venue is collectively long (Robinhood Chain 4663) · early-buyers = entry-ranked buyers of one token plus a one-hop funding trace (needs `token`) · trader-record = which wallets are actually good · event-risk = scheduled corporate actions and the implied gap at the open."
      • changedInput schema / properties / board / enum
        Previous value: -[
        -  "float-corner",
        -  "stock-pairs",
        -  "pons-stock-pairs",
        -  "early-buyers",
        -  "trader-record",
        -  "event-risk"
        -]New value: +[
        +  "float-corner",
        +  "wrapper-trust",
        +  "stock-pairs",
        +  "pons-stock-pairs",
        +  "early-buyers",
        +  "trader-record",
        +  "event-risk"
        +]
  5. 1 tool update
    • Changedinspect_onchain1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  6. 23 tool updates
    • Changedanalyze_bitcoin1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedanalyze_copy_trading1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedanalyze_prediction_markets1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedanalyze_token_security1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedanalyze_tokenized_stocks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedanalyze_wallet1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedask_einstein1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_quantum_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_content_integrity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddetect_mev1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedfind_arbitrage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedfind_yield1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedforecast_chart1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedgenerate_quantum_key1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_agent_context1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_trade_signals1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Addedinspect_onchain
    • Changedrecommend_allocation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_backtest1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscan_launchpads1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscan_market1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscan_v4_hooks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedtrack_whales1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "analysis": {
        +      "description": "The written answer, identical to the result's text block. This is the field to read: the rest of the payload is whichever capability answered, and its shape varies by tool and by argument.",
        +      "type": "string"
        +    },
        +    "available": {
        +      "description": "True when the analysis ran. False when it did not — no capability matched the arguments, the caller is out of credit, billing was unavailable, or the skill produced nothing. NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "description": "Why there is no analysis, when `available` is false.",
        +      "type": "string"
        +    },
        +    "skill": {
        +      "description": "Which Einstein capability answered. These tools route onto one of many skills by an enum argument, so this names the branch that actually ran.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  7. 1 tool update
    • Changedanalyze_tokenized_stocks2 fields changed
      • changedInput schema / properties / board / description
        Previous value: -"float-corner = float concentration + mint window · stock-pairs = launches priced in an equity · early-buyers = entry-ranked buyers of one token (needs `token`) · trader-record = which wallets are actually good · event-risk = scheduled corporate actions and the implied gap at the open."New value: +"float-corner = float concentration + mint window · stock-pairs = BaseStonk launches priced in an equity (Base) · pons-stock-pairs = Pons launches priced in an equity, and which equity the venue is collectively long (Robinhood Chain 4663) · early-buyers = entry-ranked buyers of one token plus a one-hop funding trace (needs `token`) · trader-record = which wallets are actually good · event-risk = scheduled corporate actions and the implied gap at the open."
      • changedInput schema / properties / board / enum
        Previous value: -[
        -  "float-corner",
        -  "stock-pairs",
        -  "early-buyers",
        -  "trader-record",
        -  "event-risk"
        -]New value: +[
        +  "float-corner",
        +  "stock-pairs",
        +  "pons-stock-pairs",
        +  "early-buyers",
        +  "trader-record",
        +  "event-risk"
        +]
  8. 1 tool update
    • Addedanalyze_tokenized_stocks
  9. 20 tool updates
    • Changedcheck_token_safety1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "chain": {
        +      "description": "Chain it was screened on."
        +    },
        +    "contract": {
        +      "description": "Contract that was screened."
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "flags": {
        +      "description": "Individual risk flags recorded against the contract.",
        +      "items": {},
        +      "type": "array"
        +    },
        +    "honeypot": {
        +      "description": "True when the cached scan flagged it as a honeypot."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "additionalProperties": true,
        +      "description": "The raw cached row, for fields this summary does not normalize."
        +    },
        +    "riskLevel": {
        +      "description": "Risk grade recorded by the scan."
        +    },
        +    "screened": {
        +      "description": "FALSE means the contract is not in the cached dataset — \"not screened\", NOT a clean bill of health. Only a true here makes the other fields meaningful."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_analyst_accuracy1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "object": {
        +      "description": "Always \"source-leaderboard\"."
        +    },
        +    "pending_calls": {
        +      "description": "Calls made but not yet resolvable."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "reliability_gate_calls": {
        +      "description": "Graded calls a source needs before it is ranked."
        +    },
        +    "rows": {
        +      "description": "One source per row.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "decayed_samples": {
        +            "description": "Sample count after time decay."
        +          },
        +          "graded_calls": {
        +            "description": "Calls graded so far."
        +          },
        +          "hit_rate": {
        +            "description": "Hits ÷ graded calls, 0-1. Meaningless below the gate."
        +          },
        +          "hits": {
        +            "description": "Calls graded correct."
        +          },
        +          "misses": {
        +            "description": "Calls graded wrong."
        +          },
        +          "pending": {
        +            "description": "Calls awaiting resolution."
        +          },
        +          "source_id": {
        +            "description": "Stable source id."
        +          },
        +          "source_label": {
        +            "description": "Display name."
        +          },
        +          "source_type": {
        +            "description": "Kind of source."
        +          },
        +          "weight": {
        +            "description": "Weight this source carries downstream."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    },
        +    "sources_past_gate": {
        +      "description": "Sources that cleared the gate — the only ones whose rate means anything."
        +    },
        +    "sources_tracked": {
        +      "description": "Sources with any graded call."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_bitcoin_cycle_position1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "activeAddresses": {
        +      "additionalProperties": true,
        +      "description": "Active addresses, with a 7d trend."
        +    },
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "dormantSupplyPct": {
        +      "additionalProperties": true,
        +      "description": "Share of supply dormant. Null when not in this pass."
        +    },
        +    "exchangeFlow": {
        +      "additionalProperties": true,
        +      "description": "Exchange inflow/outflow and the net signal.",
        +      "properties": {
        +        "inflow": {
        +          "description": "Coins moving to exchanges."
        +        },
        +        "net": {
        +          "description": "Net flow."
        +        },
        +        "outflow": {
        +          "description": "Coins leaving exchanges."
        +        },
        +        "signal": {
        +          "description": "What the net flow implies."
        +        }
        +      }
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "marketCap": {
        +      "additionalProperties": true,
        +      "description": "Market cap, raw and formatted."
        +    },
        +    "minerRevenue": {
        +      "additionalProperties": true,
        +      "description": "Miner revenue."
        +    },
        +    "mvrv": {
        +      "additionalProperties": true,
        +      "description": "MVRV ratio with its cycle signal and 7d trend.",
        +      "properties": {
        +        "signal": {
        +          "description": "What that level has historically meant."
        +        },
        +        "trend7d": {
        +          "description": "Change over 7 days."
        +        },
        +        "value": {
        +          "description": "MVRV ratio."
        +        }
        +      }
        +    },
        +    "nvt": {
        +      "additionalProperties": true,
        +      "description": "NVT ratio. Null when the metric is not in this pass."
        +    },
        +    "priceUsd": {
        +      "additionalProperties": true,
        +      "description": "BTC price, raw and formatted."
        +    },
        +    "realizedCap": {
        +      "additionalProperties": true,
        +      "description": "Realized cap. Null when not in this pass."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "source": {
        +      "description": "On-chain data source."
        +    },
        +    "stale": {
        +      "description": "True when the snapshot is past its refresh interval."
        +    },
        +    "timeSeries": {
        +      "description": "History behind the metrics, one point per day.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "activeAddresses": {
        +            "description": "Active addresses at that point."
        +          },
        +          "marketCap": {
        +            "description": "Market cap at that point."
        +          },
        +          "mvrv": {
        +            "description": "MVRV at that point."
        +          },
        +          "time": {
        +            "description": "ISO-8601 timestamp."
        +          },
        +          "txCount": {
        +            "description": "Transactions at that point."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    },
        +    "totalFees": {
        +      "additionalProperties": true,
        +      "description": "Total fees paid."
        +    },
        +    "txCount": {
        +      "additionalProperties": true,
        +      "description": "Transaction count."
        +    },
        +    "txVolume": {
        +      "additionalProperties": true,
        +      "description": "On-chain transaction volume. Null when not in this pass."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_congress_trades1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "actionableLongs": {
        +      "description": "Long signals that cleared the scoring gate."
        +    },
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "count": {
        +      "description": "Disclosures in this pass."
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "limit": {
        +      "description": "Row cap applied to every list in this payload.",
        +      "type": "number"
        +    },
        +    "longSignals": {
        +      "description": "Scored buy-side signals.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "band": {
        +            "description": "Score band."
        +          },
        +          "earliestTxAt": {
        +            "description": "Earliest transaction date — filings lag trades."
        +          },
        +          "headline": {
        +            "description": "One-line summary."
        +          },
        +          "lawmakerCount": {
        +            "description": "Distinct filers."
        +          },
        +          "rationale": {
        +            "description": "Why it scored where it did."
        +          },
        +          "score": {
        +            "description": "Conviction score, 0-1."
        +          },
        +          "ticker": {
        +            "description": "Equity ticker."
        +          },
        +          "totalUsd": {
        +            "description": "Disclosed USD behind the signal."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "sectorAggregates": {
        +      "description": "Disclosed dollars by sector.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "count": {
        +            "description": "Disclosures."
        +          },
        +          "sector": {
        +            "description": "Sector."
        +          },
        +          "totalUsd": {
        +            "description": "Disclosed USD."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    },
        +    "shortSignals": {
        +      "description": "Scored sell-side signals; same fields as `longSignals`.",
        +      "items": {},
        +      "type": "array"
        +    },
        +    "shorts": {
        +      "description": "Short signals."
        +    },
        +    "sources": {
        +      "additionalProperties": true,
        +      "description": "Per-source status — which filing feeds answered."
        +    },
        +    "stale": {
        +      "description": "True when the snapshot is past its refresh interval."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_forecast_accuracy1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "asset": {
        +      "description": "Asset filter applied, or null for every asset."
        +    },
        +    "assetsScored": {
        +      "description": "Assets with a graded record.",
        +      "items": {
        +        "description": "Asset symbol."
        +      },
        +      "type": "array"
        +    },
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "object": {
        +      "description": "Always \"forecast-accuracy\"."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "rows": {
        +      "description": "One graded bucket per row.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "asset": {
        +            "description": "Asset symbol."
        +          },
        +          "direction_hit_rate": {
        +            "description": "Share of forecasts that called the direction correctly, 0-1."
        +          },
        +          "direction_samples": {
        +            "description": "Graded forecasts behind the direction hit-rate — a DIFFERENT denominator from `samples`."
        +          },
        +          "first_sample_ts": {
        +            "description": "Oldest graded sample."
        +          },
        +          "independent_samples": {
        +            "description": "Non-overlapping samples."
        +          },
        +          "interval": {
        +            "description": "Candle interval."
        +          },
        +          "last_sample_ts": {
        +            "description": "Newest graded sample."
        +          },
        +          "mape_pct": {
        +            "description": "Mean absolute percentage error."
        +          },
        +          "model": {
        +            "description": "Forecast model (timesfm or kronos)."
        +          },
        +          "overlapping_direction_samples": {
        +            "description": "Direction samples whose windows overlap."
        +          },
        +          "overlapping_hit_rate": {
        +            "description": "Hit rate over the overlapping samples."
        +          },
        +          "rmse": {
        +            "description": "Root mean squared error."
        +          },
        +          "sample_basis": {
        +            "description": "How the samples were counted."
        +          },
        +          "samples": {
        +            "description": "Graded forecasts behind the error figures."
        +          },
        +          "scratch_samples": {
        +            "description": "Samples graded from a scratch run."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    },
        +    "totalBuckets": {
        +      "description": "Scored asset/interval/model buckets in the whole record."
        +    },
        +    "truncated": {
        +      "additionalProperties": true,
        +      "description": "Present only when a list was cut to `limit`.",
        +      "properties": {
        +        "limit": {
        +          "description": "The cap that was applied.",
        +          "type": "number"
        +        },
        +        "originalLengths": {
        +          "additionalProperties": true,
        +          "description": "Field name → its full length before the cut."
        +        }
        +      }
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_government_contracts1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "actionableLongs": {
        +      "description": "Long signals that cleared the scoring gate."
        +    },
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "count": {
        +      "description": "Awards in this pass."
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "limit": {
        +      "description": "Row cap applied to every list in this payload.",
        +      "type": "number"
        +    },
        +    "longSignals": {
        +      "description": "Scored buy-side signals.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "awardedAt": {
        +            "description": "Award date."
        +          },
        +          "band": {
        +            "description": "Score band."
        +          },
        +          "direction": {
        +            "description": "long or short."
        +          },
        +          "fundamentalsConfluence": {
        +            "description": "Whether fundamentals agree with the award signal."
        +          },
        +          "hasFms": {
        +            "description": "True when a Foreign Military Sale is attached."
        +          },
        +          "headline": {
        +            "description": "One-line summary."
        +          },
        +          "primaryTicker": {
        +            "description": "Lead ticker."
        +          },
        +          "rationale": {
        +            "description": "Why it scored where it did."
        +          },
        +          "score": {
        +            "description": "Conviction score, 0-1."
        +          },
        +          "sector": {
        +            "description": "Sector."
        +          },
        +          "surpriseRatio": {
        +            "description": "Award size against the contractor’s run rate."
        +          },
        +          "tickers": {
        +            "description": "Every ticker on the award.",
        +            "items": {},
        +            "type": "array"
        +          },
        +          "totalUsd": {
        +            "description": "Awarded USD."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "sectorAggregates": {
        +      "description": "Awarded dollars by sector.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "awardCount": {
        +            "description": "Awards."
        +          },
        +          "sector": {
        +            "description": "Sector."
        +          },
        +          "topTickers": {
        +            "description": "Tickers carrying the sector.",
        +            "items": {},
        +            "type": "array"
        +          },
        +          "totalUsd": {
        +            "description": "Awarded USD."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    },
        +    "shortSignals": {
        +      "description": "Scored sell-side signals; same fields as `longSignals`.",
        +      "items": {},
        +      "type": "array"
        +    },
        +    "shorts": {
        +      "description": "Short signals."
        +    },
        +    "sources": {
        +      "additionalProperties": true,
        +      "description": "Per-source status — which award feeds answered."
        +    },
        +    "stale": {
        +      "description": "True when the snapshot is past its refresh interval."
        +    },
        +    "topScore": {
        +      "description": "Its score, 0-1."
        +    },
        +    "topSector": {
        +      "description": "Its sector."
        +    },
        +    "topTicker": {
        +      "description": "Highest-scoring ticker."
        +    },
        +    "watchlistExpansion": {
        +      "description": "Tickers the pass added to the watchlist.",
        +      "items": {},
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_hyperliquid_whales1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "fetchedAt": {
        +      "additionalProperties": true,
        +      "description": "Per-leg refresh times — positioning and funding age independently."
        +    },
        +    "funding": {
        +      "additionalProperties": true,
        +      "description": "Perp funding rates, their extremes, divergences and momentum.",
        +      "properties": {
        +        "available": {
        +          "description": "False when the funding leg could not be read."
        +        },
        +        "divergences": {
        +          "description": "Assets whose funding disagrees across venues.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "extremes": {
        +          "additionalProperties": true,
        +          "description": "Most positive and most negative funding."
        +        },
        +        "marketRegime": {
        +          "description": "Regime implied by funding across the book."
        +        },
        +        "opportunities": {
        +          "description": "Funding-carry candidates.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "rates": {
        +          "additionalProperties": true,
        +          "description": "Funding rate per asset."
        +        }
        +      }
        +    },
        +    "limit": {
        +      "description": "Row cap applied to every list in this payload.",
        +      "type": "number"
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "truncated": {
        +      "additionalProperties": true,
        +      "description": "Present only when a list was cut to `limit`.",
        +      "properties": {
        +        "limit": {
        +          "description": "The cap that was applied.",
        +          "type": "number"
        +        },
        +        "originalLengths": {
        +          "additionalProperties": true,
        +          "description": "Field name → its full length before the cut."
        +        }
        +      }
        +    },
        +    "whales": {
        +      "additionalProperties": true,
        +      "description": "Whale positioning: the consensus read, the bullish/bearish assets and the traders behind it.",
        +      "properties": {
        +        "available": {
        +          "description": "False when the positioning leg could not be read."
        +        },
        +        "bearishAssets": {
        +          "description": "Assets the cohort is net short.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "bullishAssets": {
        +          "description": "Assets the cohort is net long.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "consensus": {
        +          "description": "Net directional read across the traders."
        +        },
        +        "topTraders": {
        +          "description": "The traders behind the read.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "tradersAnalyzed": {
        +          "description": "Traders actually read."
        +        },
        +        "tradersRequested": {
        +          "description": "Traders the pass tried to read — a gap means partial coverage."
        +        },
        +        "whalePositions": {
        +          "description": "Individual positions.",
        +          "items": {},
        +          "type": "array"
        +        }
        +      }
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_launchpad_radar1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "chain": {
        +      "description": "Chain the screen ran on."
        +    },
        +    "object": {
        +      "description": "Always \"launchpad-radar\"."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "rows": {
        +      "description": "Launchpad tokens approaching or past migration.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "bundlerHoldingPct": {
        +            "description": "Share held through bundlers."
        +          },
        +          "chainId": {
        +            "description": "EVM chain id."
        +          },
        +          "contractAddress": {
        +            "description": "Token contract."
        +          },
        +          "createTime": {
        +            "description": "Creation time."
        +          },
        +          "devAddress": {
        +            "description": "Deployer address."
        +          },
        +          "devPosition": {
        +            "description": "Deployer position size."
        +          },
        +          "devSellPct": {
        +            "description": "Share of the deployer position already sold."
        +          },
        +          "holders": {
        +            "description": "Holder count."
        +          },
        +          "holdersDevPct": {
        +            "description": "Share held by the deployer."
        +          },
        +          "holdersInsiderPct": {
        +            "description": "Share held by insiders."
        +          },
        +          "holdersSniperPct": {
        +            "description": "Share held by snipers."
        +          },
        +          "holdersTop10Pct": {
        +            "description": "Share held by the top 10 holders."
        +          },
        +          "liquidityUsd": {
        +            "description": "Pool liquidity."
        +          },
        +          "marketCapUsd": {
        +            "description": "Market cap in USD."
        +          },
        +          "migrateStatus": {
        +            "description": "Migration status."
        +          },
        +          "name": {
        +            "description": "Token name."
        +          },
        +          "newWalletHoldingPct": {
        +            "description": "Share held by wallets created around launch."
        +          },
        +          "priceChangePct": {
        +            "description": "Percentage price change over the period."
        +          },
        +          "priceUsd": {
        +            "description": "Price in USD."
        +          },
        +          "progressPct": {
        +            "description": "Bonding-curve progress toward migration."
        +          },
        +          "protocol": {
        +            "description": "Launchpad protocol."
        +          },
        +          "socials": {
        +            "additionalProperties": true,
        +            "description": "Links the token publishes."
        +          },
        +          "symbol": {
        +            "description": "Token symbol."
        +          },
        +          "tagDevWashTrading": {
        +            "description": "Deployer wash-trading flag."
        +          },
        +          "tagInsiderWashTrading": {
        +            "description": "Insider wash-trading flag."
        +          },
        +          "volumeUsd": {
        +            "description": "Period volume."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_market_sentiment1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "altcoinSeason": {
        +      "additionalProperties": true,
        +      "description": "Altcoin-season regime, its 30d/90d indices and the cohort behind them."
        +    },
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "cmc": {
        +      "additionalProperties": true,
        +      "description": "CoinMarketCap Fear & Greed index, with a yearly high/low."
        +    },
        +    "crypto": {
        +      "additionalProperties": true,
        +      "description": "Crypto Fear & Greed index, with yesterday/last-week comparisons."
        +    },
        +    "fetchedAt": {
        +      "additionalProperties": true,
        +      "description": "Per-source refresh times; the four sources age independently."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "tradfi": {
        +      "additionalProperties": true,
        +      "description": "CNN TradFi Fear & Greed index — the equities read, for divergence."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_polymarket_whales1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "alertCount": {
        +      "description": "Alerts in this pass."
        +    },
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "highRiskCount": {
        +      "description": "Alerts graded high risk."
        +    },
        +    "insiderScanReport": {
        +      "additionalProperties": true,
        +      "description": "The scan behind the alerts.",
        +      "properties": {
        +        "alerts": {
        +          "description": "Flagged positions.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "dataSourcesUsed": {
        +          "description": "Sources the scan read.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "marketAnomalies": {
        +          "description": "Market-level anomalies.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "marketsAnalyzed": {
        +          "description": "Markets examined."
        +        },
        +        "walletClusters": {
        +          "description": "Wallets that move together.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "walletsFlagged": {
        +          "description": "Wallets flagged."
        +        },
        +        "walletsScanned": {
        +          "description": "Wallets examined."
        +        },
        +        "whaleTransfers": {
        +          "description": "Large transfers into the flagged wallets.",
        +          "items": {},
        +          "type": "array"
        +        }
        +      }
        +    },
        +    "limit": {
        +      "description": "Row cap applied to every list in this payload.",
        +      "type": "number"
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "stale": {
        +      "description": "True when the snapshot is past its refresh interval."
        +    },
        +    "truncated": {
        +      "additionalProperties": true,
        +      "description": "Present only when a list was cut to `limit`.",
        +      "properties": {
        +        "limit": {
        +          "description": "The cap that was applied.",
        +          "type": "number"
        +        },
        +        "originalLengths": {
        +          "additionalProperties": true,
        +          "description": "Field name → its full length before the cut."
        +        }
        +      }
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_prediction_market_catalysts1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "limit": {
        +      "description": "Row cap applied to every list in this payload.",
        +      "type": "number"
        +    },
        +    "matches": {
        +      "description": "Prediction markets whose odds moved against a dated catalyst.",
        +      "items": {},
        +      "type": "array"
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "stale": {
        +      "description": "True when the snapshot is past its refresh interval."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_prediction_market_yields1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "limit": {
        +      "description": "Row cap applied to every list in this payload.",
        +      "type": "number"
        +    },
        +    "lookbackHours": {
        +      "description": "Window scanned."
        +    },
        +    "minCollateralUsd": {
        +      "description": "USD size a ticket had to clear."
        +    },
        +    "priceFloor": {
        +      "description": "Entry price a ticket had to clear, 0-1."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "stale": {
        +      "description": "True when the snapshot is past its refresh interval."
        +    },
        +    "totals": {
        +      "additionalProperties": true,
        +      "description": "Totals across the surface.",
        +      "properties": {
        +        "collateralUsd": {
        +          "description": "USD collateral behind them."
        +        },
        +        "spreadUsd": {
        +          "description": "USD spread to resolution."
        +        },
        +        "trades": {
        +          "description": "Tickets counted."
        +        }
        +      }
        +    },
        +    "trades": {
        +      "description": "Redemption-arb tickets — near-certain outcomes still trading below $1.",
        +      "items": {},
        +      "type": "array"
        +    },
        +    "truncated": {
        +      "additionalProperties": true,
        +      "description": "Present only when a list was cut to `limit`.",
        +      "properties": {
        +        "limit": {
        +          "description": "The cap that was applied.",
        +          "type": "number"
        +        },
        +        "originalLengths": {
        +          "additionalProperties": true,
        +          "description": "Field name → its full length before the cut."
        +        }
        +      }
        +    },
        +    "wallets": {
        +      "description": "Wallets taking those tickets.",
        +      "items": {},
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_price_forecast1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "asset": {
        +      "description": "Asset the forecast covers (BTC, ETH, SOL or BNB)."
        +    },
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "consensus": {
        +      "description": "True when TimesFM and Kronos agree. False means the models DISAGREE and the signal is weak; null means agreement was not recorded."
        +    },
        +    "direction": {
        +      "description": "Projected direction — bullish, bearish or neutral."
        +    },
        +    "driftPct": {
        +      "description": "Projected percentage drift over the interval."
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "interval": {
        +      "description": "Candle interval: 4h, 1d, 1w or 1M."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "source": {
        +      "description": "Which store the cached run came from."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_robinhood_whale_prints1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "limit": {
        +      "description": "Row cap applied to every list in this payload.",
        +      "type": "number"
        +    },
        +    "prints": {
        +      "additionalProperties": true,
        +      "description": "The tape and the pass that produced it.",
        +      "properties": {
        +        "available": {
        +          "description": "False when the last pass could not measure the chain."
        +        },
        +        "chain": {
        +          "description": "Chain name."
        +        },
        +        "chainId": {
        +          "description": "EVM chain id — 4663 for Robinhood Chain."
        +        },
        +        "ethSource": {
        +          "description": "Where that ETH price came from."
        +        },
        +        "ethUsd": {
        +          "description": "ETH price used to value the ETH-legged prints."
        +        },
        +        "minUsd": {
        +          "description": "USD floor a trade had to clear to be printed."
        +        },
        +        "prints": {
        +          "description": "Individual large trades.",
        +          "items": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "side": {
        +                "description": "buy or sell."
        +              },
        +              "token": {
        +                "description": "Token traded."
        +              },
        +              "usd": {
        +                "description": "USD value of the print."
        +              },
        +              "venue": {
        +                "description": "Pool or venue the print hit."
        +              }
        +            }
        +          },
        +          "type": "array"
        +        },
        +        "quoteSwapUsd": {
        +          "description": "USD volume of those FX swaps."
        +        },
        +        "quoteSwaps": {
        +          "description": "WETH/USDG FX swaps, counted separately so they do not dominate the tape."
        +        },
        +        "rowsRejected": {
        +          "description": "Trades dropped as mispriced — a fresh pool reports values in the hundreds of millions, so they are excluded rather than published."
        +        },
        +        "rowsScanned": {
        +          "description": "Trades examined."
        +        },
        +        "windowMinutes": {
        +          "description": "Lookback window."
        +        }
        +      }
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_smart_money_flow1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "droppedRoutineCustody": {
        +      "description": "Transfers dropped as routine custody movement rather than signal."
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "limit": {
        +      "description": "Row cap applied to every list in this payload.",
        +      "type": "number"
        +    },
        +    "notableTransfers": {
        +      "description": "The transfers behind the signal.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "amountUsd": {
        +            "description": "USD value."
        +          },
        +          "description": {
        +            "description": "Human-readable summary of the transfer."
        +          },
        +          "direction": {
        +            "description": "Direction of the flow."
        +          },
        +          "fromLabel": {
        +            "description": "Labelled sender, when known."
        +          },
        +          "signalClass": {
        +            "description": "How the transfer was classified."
        +          },
        +          "toLabel": {
        +            "description": "Labelled recipient, when known."
        +          },
        +          "token": {
        +            "description": "Token moved."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    },
        +    "overallSignal": {
        +      "description": "Net read across the transfers — accumulating, distributing or neutral."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "smartMoneyMoves": {
        +      "description": "One-line summaries of the same moves.",
        +      "items": {
        +        "description": "Summary line."
        +      },
        +      "type": "array"
        +    },
        +    "stale": {
        +      "description": "True when the snapshot is past its refresh interval."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_smart_money_inflow1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "chain": {
        +      "description": "Chain the screen ran on."
        +    },
        +    "object": {
        +      "description": "Always \"smart-money-inflow\"."
        +    },
        +    "period": {
        +      "description": "Lookback period."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "rows": {
        +      "description": "Tokens ranked by smart-money inflow.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "chainId": {
        +            "description": "EVM chain id."
        +          },
        +          "contractAddress": {
        +            "description": "Token contract."
        +          },
        +          "holders": {
        +            "description": "Holder count."
        +          },
        +          "holdersTop10Pct": {
        +            "description": "Share held by the top 10 holders — concentration risk."
        +          },
        +          "inflowUsd": {
        +            "description": "Net smart-money inflow — what the ranking is on."
        +          },
        +          "kycHolders": {
        +            "description": "Holders with a KYC attestation."
        +          },
        +          "launchTime": {
        +            "description": "When the token launched."
        +          },
        +          "liquidityUsd": {
        +            "description": "Pool liquidity."
        +          },
        +          "marketCapUsd": {
        +            "description": "Market cap in USD."
        +          },
        +          "priceChangePct": {
        +            "description": "Percentage price change over the period."
        +          },
        +          "priceUsd": {
        +            "description": "Price in USD."
        +          },
        +          "riskLevel": {
        +            "description": "Risk grade."
        +          },
        +          "symbol": {
        +            "description": "Token symbol."
        +          },
        +          "traders": {
        +            "description": "Distinct traders."
        +          },
        +          "volumeUsd": {
        +            "description": "Period volume."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_social_hype1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "chain": {
        +      "description": "Chain the screen ran on."
        +    },
        +    "object": {
        +      "description": "Always \"social-hype\"."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "rows": {
        +      "description": "Tokens ranked by social hype.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "chainId": {
        +            "description": "EVM chain id."
        +          },
        +          "contractAddress": {
        +            "description": "Token contract."
        +          },
        +          "kolCount": {
        +            "description": "Distinct known accounts posting."
        +          },
        +          "marketCapUsd": {
        +            "description": "Market cap in USD."
        +          },
        +          "priceChangePct": {
        +            "description": "Percentage price change over the period."
        +          },
        +          "sentiment": {
        +            "description": "Sentiment read for this token."
        +          },
        +          "socialHype": {
        +            "description": "Hype score — what the ranking is on."
        +          },
        +          "summaryBrief": {
        +            "description": "One-line summary of what is being said."
        +          },
        +          "summaryDetail": {
        +            "description": "Longer summary."
        +          },
        +          "symbol": {
        +            "description": "Token symbol."
        +          },
        +          "tokenAgeMs": {
        +            "description": "Token age in milliseconds."
        +          }
        +        }
        +      },
        +      "type": "array"
        +    },
        +    "sentiment": {
        +      "description": "Sentiment filter applied."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_top_movers1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
        +      "type": "boolean"
        +    },
        +    "crossAsset": {
        +      "additionalProperties": true,
        +      "description": "Cross-asset ranking plus the universe/cohort sizes it was drawn from.",
        +      "properties": {
        +        "cohortSize": {
        +          "description": "Assets in the ranked cohort."
        +        },
        +        "gainers": {
        +          "description": "Top gainers.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "losers": {
        +          "description": "Top losers.",
        +          "items": {},
        +          "type": "array"
        +        },
        +        "universeSize": {
        +          "description": "Assets considered before filtering."
        +        }
        +      }
        +    },
        +    "errors": {
        +      "description": "Legs that failed. A partial answer says so here rather than reading as a quiet market.",
        +      "items": {
        +        "description": "Error text."
        +      },
        +      "type": "array"
        +    },
        +    "fetchedAt": {
        +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
        +    },
        +    "idSource": {
        +      "description": "Source of the asset identifiers."
        +    },
        +    "limit": {
        +      "description": "Row cap applied to every list in this payload.",
        +      "type": "number"
        +    },
        +    "perChain": {
        +      "additionalProperties": true,
        +      "description": "Per-chain movers, keyed by chain."
        +    },
        +    "perChainUnavailable": {
        +      "description": "True when the per-chain leg could not be read."
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    },
        +    "side": {
        +      "description": "Which side was asked for — gainers or losers."
        +    },
        +    "source": {
        +      "description": "Price source behind the cross-asset ranking."
        +    },
        +    "stale": {
        +      "description": "True when the snapshot is past its refresh interval."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlist_einstein_capabilities1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "available": {
        +      "description": "False when this call has no data. NOT an error.",
        +      "type": "boolean"
        +    },
        +    "billing": {
        +      "additionalProperties": true,
        +      "description": "How paying works: the billing model, how to top up and how to sign in.",
        +      "type": "object"
        +    },
        +    "free": {
        +      "description": "Tools any caller can use with no account and no charge.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "description": {
        +            "description": "What it returns.",
        +            "type": "string"
        +          },
        +          "name": {
        +            "description": "Tool name to call.",
        +            "type": "string"
        +          },
        +          "title": {
        +            "description": "Human-readable title.",
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "paid": {
        +      "description": "Tools that need a signed-in Einstein account with credit.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "description": {
        +            "description": "What it returns.",
        +            "type": "string"
        +          },
        +          "name": {
        +            "description": "Tool name to call.",
        +            "type": "string"
        +          },
        +          "priceUsd": {
        +            "description": "USD price per call, or a range when the tool routes to several skills.",
        +            "type": "string"
        +          },
        +          "title": {
        +            "description": "Human-readable title.",
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "reason": {
        +      "description": "Why the payload is absent, when `available` is false.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Addedscan_v4_hooks
  10. 1 tool update
    • Addedget_robinhood_whale_prints
  11. 1 tool update
    • Changedget_forecast_accuracy3 fields changed
      • changedInput schema / properties / asset / description
        Previous value: -"Restrict to one asset. Omit for the full leaderboard."New value: +"Restrict to one asset symbol, e.g. BTC. Omit for the whole board; the response lists every asset that has scored rows."
      • removedInput schema / properties / asset / enum
        Removed value: -[
        -  "BTC",
        -  "ETH",
        -  "SOL",
        -  "BNB"
        -]
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 10,
        +  "description": "Maximum scored buckets (1-50).",
        +  "type": "number"
        +}
  12. 2 tool updates
    • Removedgenerate_song
    • Removedgenerate_video
  13. 3 tool updates
    • Addedget_launchpad_radar
    • Addedget_smart_money_inflow
    • Addedget_social_hype
  14. 1 tool update
    • Addedgenerate_song
  15. 110 tool updates
    • Removedagent_context
    • Removedaltcoin_season_index
    • Addedanalyze_bitcoin
    • Addedanalyze_copy_trading
    • Addedanalyze_prediction_markets
    • Addedanalyze_token_security
    • Addedanalyze_wallet
    • Removedapproval_security_scan
    • Removedarbitrage_scanner
    • Addedask_einstein
    • Addedassess_quantum_risk
    • Removedbacktest_custom_strategy
    • Removedbacktest_strategy
    • Removedbitcoin_bridge_comparison
    • Removedbitcoin_mempool_intelligence
    • Removedbitcoin_onchain_analytics
    • Removedbitcoin_staking_analysis
    • Removedbrc20_analytics
    • Removedchart_forecast
    • Addedcheck_content_integrity
    • Addedcheck_token_safety
    • Removedclaimable_airdrops
    • Removedcopy_trading_intel
    • Removedcopy_trading_leaderboard
    • Removedcross_chain_arbitrage
    • Removedcrqc_proximity_benchmark
    • Removeddefi_yield_analysis
    • Addeddetect_mev
    • Removedeinstein_meta_strategy
    • Removedeinstein_trade_signals
    • Addedfind_arbitrage
    • Addedfind_yield
    • Removedflashloan_opportunities
    • Addedforecast_chart
    • Removedforgotten_assets_scan
    • Removedgeneral_analysis
    • Addedgenerate_quantum_key
    • Changedgenerate_video6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / chain
        Removed value: -{
        -  "description": "Blockchain network to query",
        -  "enum": [
        -    "base",
        -    "ethereum",
        -    "bsc",
        -    "arbitrum",
        -    "polygon",
        -    "optimism",
        -    "solana"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / limit
        Removed value: -{
        -  "description": "Maximum number of results (default: 10, max: 100)",
        -  "type": "number"
        -}
      • removedInput schema / properties / timeperiod
        Removed value: -{
        -  "description": "Time period for analysis",
        -  "enum": [
        -    "1h",
        -    "4h",
        -    "24h",
        -    "7d",
        -    "30d"
        -  ],
        -  "type": "string"
        -}
      • addedInput schema / properties / topic
        Added value: +{
        +  "description": "What the video should explain.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "topic"
        +]
    • Addedget_agent_context
    • Addedget_analyst_accuracy
    • Addedget_bitcoin_cycle_position
    • Addedget_congress_trades
    • Addedget_forecast_accuracy
    • Addedget_government_contracts
    • Addedget_hyperliquid_whales
    • Addedget_market_sentiment
    • Addedget_polymarket_whales
    • Addedget_prediction_market_catalysts
    • Addedget_prediction_market_yields
    • Addedget_price_forecast
    • Addedget_smart_money_flow
    • Addedget_top_movers
    • Addedget_trade_signals
    • Removedholder_concentration
    • Removedhyperliquid_smart_money
    • Removedliquidation_monitor
    • Addedlist_einstein_capabilities
    • Removedmarket_movers
    • Removedmempool_watch
    • Removedmev_detection
    • Removedmev_protection
    • Removedmindyield_content_judge
    • Removedmindyield_integrity_deep_scan
    • Removedmindyield_leaderboard
    • Removedmindyield_vaults_list
    • Removedmindyield_yield_vault_deposit
    • Removedoptimize_strategy_params
    • Removedpendle_yield_trading
    • Removedpolymarket_arbitrage
    • Removedpolymarket_conviction
    • Removedpolymarket_insider_scan
    • Removedpolymarket_longshot_fader
    • Removedpolymarket_markets
    • Removedpolymarket_spread_analysis
    • Removedportfolio_risk_allocation
    • Removedpqc_migration_planner
    • Removedpqc_readiness_assessment
    • Removedpqc_wallet_scan
    • Removedpump_fun_launches
    • Removedquantum_encryption_key
    • Removedquantum_hardware_qrng
    • Removedquantum_portfolio_monitor
    • Removedquantum_signing_key
    • Removedquantum_wallet_generation
    • Addedrecommend_allocation
    • Removedregime_classification
    • Removedrobinhood_chain_markets
    • Addedrun_backtest
    • Removedrunes_analytics
    • Addedscan_launchpads
    • Addedscan_market
    • Removedsecurity_scan
    • Removedsmart_contract_audit
    • Removedsmart_money
    • Removedstrategy_allocation_recommendation
    • Removedstrategy_backtest
    • Removedstrategy_gate
    • Removedtechnical_analysis
    • Removedtoken_sniping
    • Removedtop_gainers
    • Removedtop_gainers_comprehensive
    • Addedtrack_whales
    • Removedwallet_pnl
    • Removedwallet_portfolio
    • Removedwallet_trust_score
    • Removedwhale_tracking
    • Removedyield_deposit
    • Removedyield_discover
    • Removedyield_rebalance
    • Removedzora_launches

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables crypto research and market intelligence through 66 read-only tools covering sentiment, whale tracking, on-chain flows, influencer accuracy, and screening across 2,300+ coins, allowing AI agents and traders to verify hype, accumulation, and momentum without an API key.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    PulseChain on-chain analytics for AI agents. 20 tools: token safety scores (0-100, A-F), honeypot detection, whale tracking, smart money feed, scam alerts, DEX volume, bridge stats, holder leagues. 11 free + 9 pro with API key.
    28
    37 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    AI-powered crypto signal intelligence for 20 assets (BTC, ETH, SOL, etc). 6 scoring dimensions: whale activity, technical analysis, derivatives flow, narrative strength, sentiment, market structure. Market regime detection (TRENDING/RANGING), portfolio optimization, and accuracy tracking. 9 read-only MCP tools. Free via MCP, $0.001 USDC via x402 on Base for REST API.
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Financial intelligence for AI agents. 31 tools across 8 data sources — regime, derivatives, stablecoin flows, momentum, volatility, macro, DeFi, weather patterns, political cycles, seasonality. The context layer between your agent and a bad trade.
    31
    6 npm
    9
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.