Skip to main content
Glama

whale-data

Server Details

Real-time whale trades, Smart Money Radar, market snapshots, news sentiment, signal outcomes.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 28 of 28 tools scored. Lowest: 3.5/5.

Server CoherenceA
Disambiguation4/5

Most tools have clearly distinct purposes (e.g., whale_flow vs whale_profile vs whale_radar). The main overlaps are whale_tape (deprecated alias for whale_trades) and the trio of liquidation tools (liquidations, defi_liquidations, market_liquidations), but the descriptions clearly distinguish perp vs lending vs market-wide, so an agent can disambiguate with care.

Naming Consistency4/5

Tool names follow a consistent snake_case pattern with domain prefixes (market_, whale_, hl_, defi_) and noun-based suffixes. Minor deviations include whale_tape being a deprecated alias and my_access not following the domain prefix pattern, but overall the naming is predictable and readable.

Tool Count3/5

With 28 tools, the set exceeds the typical comfortable range and feels heavy. However, the server covers a broad domain (market analytics, whale tracking, liquidations, funding, news) and each tool has a niche. The redundancy of whale_tape/whale_trades inflates the count without adding functionality.

Completeness4/5

The tool surface is quite comprehensive, covering market overview, history, screening, per-pair snapshots, whale activity, liquidations, funding, smart money, and access management. Minor gaps exist, such as no explicit pair-listing or direct 'get all coins' tool, but the existing tools (market_screener, market_snapshot) effectively cover these use cases.

Available Tools

28 tools
crypto_newsCrypto news and sentimentA
Read-onlyIdempotent
Inspect

Recent crypto headlines with a pre-computed sentiment score (-100 to +100) for one coin plus the macro picture. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. Defaults to BTC. News coverage is not every coin: where nothing was recorded the reply carries covered:false and a null sentiment_score, which is absence and not a neutral reading.
pairNoAlias for coin.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin the headlines and score are about.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
macroNoThe same three fields for the market as a whole: sentiment, sentiment_score and summary.
coveredNoFalse when nothing was recorded for this coin, which is why sentiment_score is null. Not a neutral reading.
summaryNoThe pre-written summary for this coin, or null.
realtimeNoTrue when the headlines are live. Keyless connections get the delayed set.
headlinesNoUp to 20 recent headlines, each with title, source, published time and link.
sentimentNoThe wording that goes with the score, or unknown.
sentiment_scoreNoMinus 100 to plus 100. Null means nothing was measured, which is not the same as zero.
Behavior4/5

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

Annotations already indicate a safe, read-only, idempotent operation. The description adds valuable behavioral context beyond annotations: it specifies the sentiment score range (-100 to +100), that only one coin is covered per call, and the parameter description clarifies the difference between absence of data (covered:false, null sentiment) and a neutral reading. This aligns with annotations and enriches understanding.

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 concise sentences, front-loaded with the core purpose, and every phrase earns its place. 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?

Given the simple tool with two parameters, a comprehensive output schema, and robust annotations, the description covers the necessary context: scope (one coin), sentiment range, macro picture, and read-only nature. The parameter descriptions handle edge cases like unsupported coins and pair normalization, making this complete.

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 description coverage is 100%, with both 'coin' and 'pair' already explained in detail (defaults, alias, pair handling, absence behavior). The main description adds little beyond the schema, so it appropriately relies on the schema for parameter meaning. Baseline 3 is correct.

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: fetching recent crypto headlines with a pre-computed sentiment score for a specific coin, plus a macro picture. This distinguishes it from sibling tools like market_snapshot or whale_trades by highlighting the news and sentiment focus.

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 phrase 'Descriptive market data only' implies this is a read-only informational tool, but there is no explicit guidance on when to choose it over alternatives or when not to use it. The description implies usage for news/sentiment context but does not provide exclusions or alternative recommendations compared to sibling tools.

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

defi_liquidationsDeFi lending liquidationsA
Read-onlyIdempotent
Inspect

Lending liquidations from Aave V3 and Morpho Blue on Ethereum, Arbitrum and Base: a third party repaid the debt and seized the collateral, so both wallets are named on every row. A different event from a perp liquidation (see the liquidations tool) and never summed with one. count and total_usd cover exactly the rows returned and the window field states the period those rows span, so the total is never mistaken for a fixed 24h figure. Keyless. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoRestrict to one chain: ethereum, base, arbitrum. Anything else is refused by name rather than answered as nothing happening there. Omit for all of them.
limitNoMax rows returned. Defaults to 50, hard ceiling 200 for everyone and no plan raises it. count and total_usd cover exactly the rows returned, and window states the period those rows span, so neither is a fixed 24h figure.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
countNoHow many rows this reply carries.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
windowNoThe period the returned rows actually span: from, to and hours.
matchedNoHow many rows matched the chain filter before the row cap.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
total_usdNoDollars across exactly the rows returned. A page sum, not a fixed 24h total: the window field says what period those rows span.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
liquidationsNoThe events, each naming BOTH wallets: the one liquidated and the one that repaid the debt and took the collateral.
unknown_chainNoSet when a chain was named that this lane does not index. Nothing was searched, so this is not no liquidations there.
chains_coveredNoThe chains this lane indexes.
protocols_coveredNoThe lending protocols behind these rows.
duplicates_droppedNoHow many repeat rows for the same event were removed before counting, so the dollars are not doubled.
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral context: keyless access, descriptive market data only, and clarifies that 'count' and 'total_usd' cover exactly the returned rows with a 'window' field, avoiding misinterpretation of fixed 24h figures. This exceeds the annotation baseline.

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, each dense with information: scope, event distinction, and metric semantics. No fluff, front-loaded with the most important purpose, and every sentence earns its place.

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

Completeness5/5

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

Given an output schema exists and annotations cover safety, the description covers scope, event type, chain availability, metric semantics, and alternative tool differentiation. It is complete for a read-only filtered tool with simple parameters.

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% for both parameters, providing full documentation. The description further clarifies the 'limit' parameter's behavior (defaults, hard ceiling) and the 'chain' parameter's refusal behavior, adding value beyond schema. Baseline 3 is elevated to 4 due to meaningful extra context.

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 ('repaid debt and seized collateral') and clearly names resources (Aave V3, Morpho Blue on Ethereum, Arbitrum, Base). It distinguishes from the sibling 'liquidations' tool by explicitly saying it's a different event and never summed with one.

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 provides clear context on what the tool covers (lending liquidations vs perp liquidations) and names the alternative 'liquidations' tool for perp liquidations. It does not explicitly say 'when not to use' beyond the differentiation, but the guidance is specific enough to select correctly.

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

defi_summaryDeFi / on-chain summaryA
Read-onlyIdempotent
Inspect

One-call on-chain DEX state across Ethereum, Base and Arbitrum: 24h volume and TVL per chain, the highest-volume tokens, and whale swap activity (buy/sell split, unique and repeat wallets, per-DEX breakdown). Keyless returns totals and a short token list with swap USD withheld; a developer plan returns the full table. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
chainsNoOne row per chain: the chain, tokens tracked, 24h volume and total value locked.
totalsNoAcross all chains: 24h volume, total value locked, how many chains and how many tokens are tracked.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
top_tokensNoThe highest-volume tokens: chain, symbol, name, address, price, 24h change, volume and value locked. Shortened on a keyless connection.
updated_atNoWhen the on-chain token snapshot was published.
coverage_noteNoWhat the numbers do and do not cover.
whale_activityNoLarge swaps in the window: how many, buy and sell dollars, net, the largest, unique and repeat wallets, and the split per exchange and per chain. A keyless connection gets the counts with magnitudes_withheld set instead of the dollars.
tokens_withheldNoKeyless only: how many tokens were cut from top_tokens.
Behavior5/5

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

Annotations already mark this as read-only/idempotent/non-destructive. The description adds meaningful context beyond that: it discloses that keyless access returns totals with swap USD withheld, while a developer plan returns the full table. This is useful behavioral detail not present in structured fields.

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

Conciseness5/5

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

Two sentences, front-loaded with the tool's purpose, followed by useful tier details. No filler or redundancy; every sentence contributes.

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 no parameters, strong annotations, and an output schema present, the description fully covers what the tool does and its behavioral quirks. The access-tier distinction is a nice extra that makes it self-contained.

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 covers everything trivially. The description adds context about access-tier differences but doesn't need to explain parameter semantics. Baseline for 0 parameters is 4, which fits.

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

Purpose5/5

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

The description opens with 'One-call on-chain DEX state across Ethereum, Base and Arbitrum', clearly stating the resource and scope. It enumerates specific metrics (24h volume, TVL, top tokens, whale swap activity), distinguishing it from sibling tools like market_overview or whale_trades.

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 'One-call' phrasing implies a high-level overview use case, and 'Descriptive market data only' signals a non-trading context. However, it does not explicitly mention when not to use this tool or point to alternatives, which would push it to a 5.

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

dex_walletOn-chain wallet activityA
Read-onlyIdempotent
Inspect

One Ethereum, Base or Arbitrum address: its recorded DEX swaps, net flow per token and activity pattern. For a Hyperliquid ACCOUNT use hl_wallet instead: the same 0x string can exist on both and they are different subjects with different pages. Real coverage limit, state it once when the answer turns on it: the swap feed sees roughly 7 percent of a wallet total activity, so quiet here does not mean inactive. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax recorded swaps returned for this address. Defaults to 25, hard ceiling 100 for everyone and no plan raises it.
addressYesEthereum, Base or Arbitrum address, 0x followed by 40 hex characters. Required. This is the on-chain wallet, not the Hyperliquid account that can sit at the same 0x string: use hl_wallet for that one. An address outside the followed set answers tracked:false, which is a coverage fact and not a wallet doing nothing.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
errorNoinvalid_address when the address is not 0x plus 40 hex characters. Nothing was looked up.
venueNoAlways on-chain. This is NOT the Hyperliquid account that can sit at the same 0x string.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
eventsNoIts recorded swaps, newest first.
addressNoThe address, normalised.
profileNoWhat this address has been doing: net flow per token and its activity pattern.
trackedNoFalse when this address is outside the followed set. A coverage fact, not a wallet doing nothing.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
Behavior5/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 known. The description adds valuable context beyond annotations: the 7% coverage limit, the meaning of tracked:false, and the 'descriptive market data only' caveat. 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?

Three sentences, each purposeful: the first states the tool's function, the second disambiguates from a sibling, and the third discloses the critical coverage limitation. No wasted words; information is front-loaded and directly 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?

Given the output schema exists (so return values are documented) and annotations cover safety, the description provides the essential remaining context: the tool's scope (Ethereum/Base/Arbitrum), the sibling distinction, and a realistic coverage limitation that affects interpretation. This is complete for an agent to use 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?

Schema description coverage is 100%, so the schema already fully describes both parameters, including address format and limit defaults/cap. The tool description reinforces the address/vs Hyperliquid distinction but does not add new parameter-specific meaning beyond what is in the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with 'One Ethereum, Base or Arbitrum address: its recorded DEX swaps, net flow per token and activity pattern,' clearly identifying the resource (wallet address) and specific actions (DEX swaps, net flow, activity pattern). It also explicitly distinguishes from hl_wallet, ensuring no confusion among siblings.

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

Usage Guidelines5/5

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

It gives explicit direction to use hl_wallet for Hyperliquid accounts ('For a Hyperliquid ACCOUNT use hl_wallet instead') and warns about the 7% coverage limit with the instruction to 'state it once when the answer turns on it,' which guides when and how to interpret results. This is strong usage guidance.

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

flag_outcomesSignal outcomes ledgerA
Read-onlyIdempotent
Inspect

Recently fired signal-ledger flags with fire-time price and later price outcomes, logged live and never backfilled. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one coin, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. One symbol, not a list. Omit for every coin.
pairNoAlias for coin.
typeNoFilter to one signal type. One of: whale-spike, funding-extreme, squeeze-flip, liq-cascade, flow-divergence, major-pctile, major-block, deriv-record. The underscore spellings used by alert rules (for example funding_extreme, or spike for whale-spike) are accepted too. Anything else is refused by name rather than answered as every signal. Omit for all types.
hoursNoHow far back to look, in hours. Defaults to 48. Capped at 168 keyless and 720 on a developer plan; asking for more returns the cap, and the payload says so in `capped`. The all_time block is unaffected by this window.
limitNoMax rows returned. Capped at 50 keyless and 500 on a developer plan; asking for more returns the cap, and the payload says so in `capped`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin filter applied, or null for all coins.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
typeNoThe signal type filter applied, or null for all types.
countNoHow many rows this reply carries.
hoursNoThe window actually read, in hours.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
signalsNoThe signals that fired in the window, each with its type, coin, fire time, price at fire time and later price outcomes where they have been scored.
all_timeNoPermanent counters from the archive, independent of the window asked for: fired, scored_h24, since, through and by_type.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
aggregatesNobyType: how many fired per signal type inside the window.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
valid_typesNoThe signal types that do exist, returned alongside unknown_type.
unknown_typeNoSet when the type asked for is not one this record keeps. Nothing was filtered and nothing was searched.
total_in_windowNoHow many signals fired in the whole window, before the row cap.
Behavior4/5

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

Annotations already declare read-only and non-destructive behavior. The description adds valuable context about data freshness ('logged live and never backfilled') and scope ('descriptive market data only'), which goes beyond the structured annotations. No contradiction.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main purpose, and every clause adds value without waste. It is concise yet informative.

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 input schema covers all parameters, the description provides sufficient context about the tool's data scope and freshness. It could mention the time window or type filters, but those are already fully documented in the schema, so no significant gap remains.

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 all parameters are thoroughly described in the input schema. The tool description does not add additional parameter context, 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?

The description clearly states the tool returns recently fired signal-ledger flags with fire-time and later price outcomes. It uses a specific phrase ('signal-ledger flags') that distinguishes it from sibling tools like whale_trades or market_screener, and clarifies it is descriptive market data only.

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 phrase 'logged live and never backfilled' provides clear context that this tool is for recent data only, and 'Descriptive market data only' signals it is not for trading actions. While no alternatives are explicitly named, the limitations are clear enough to guide appropriate use.

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

funding_matrixPer-venue funding matrixA
Read-onlyIdempotent
Inspect

Per-venue funding rates for one pair with predicted next rate and payout time where the venue provides it. Keyless on any streamed pair. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. Every streamed pair answers keyless. Rates come back per exchange at that exchange's own interval_h, so magnitudes are not comparable across rows without normalising first.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair these rates belong to.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
per_venueNoOne row per exchange: the exchange name, its current funding rate, its predicted next rate where it publishes one, the next payout time, and interval_h. Rates are per that exchange own interval, so magnitudes are not comparable across rows until they are normalised.
updated_atNoWhen these rates were read.
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable context beyond this: keyless access, that rates depend on venue-provided data, and that it is descriptive only. This enriches the behavioral understanding 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 extremely concise: three short sentences that each add distinct information—what the tool provides, access requirements, and data nature. There is no redundancy, and the most important 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?

Given the simple nature of the tool, the description covers the core purpose, limitations, and access. An output schema exists (per context signals), so return values are already defined. It could be more explicit about when to use it relative to other market data tools, but it is largely complete for this 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?

The input schema has 100% coverage, with the 'pair' parameter description explaining defaults, bare symbol handling, and the non-comparability of rates due to venue-specific intervals. The main description adds little new parameter 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?

The description clearly identifies the tool as providing per-venue funding rates for a single trading pair, including predicted next rate and payout time where available. This resource is unique among the sibling tools, none of which mention funding rates, so it distinguishes the tool effectively.

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: the tool is keyless on any streamed pair and is descriptive market data only, implying it is safe to use for read-only information needs. However, it does not explicitly mention when not to use it or name alternative tools, though the unique purpose makes such guidance less critical.

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

hl_boardHyperliquid whale boardA
Read-onlyIdempotent
Inspect

The tracked Hyperliquid whale accounts: equity, open notional, leverage, net bias, plus per-coin crowding across those wallets. Keyless returns the top rows and states how many are withheld; a developer plan returns the whole board. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
rowsNoThe accounts: wallet, equity, dollars open, leverage and which way they lean. Shortened on a keyless connection.
venueNoAlways Hyperliquid.
trackedNoHow many accounts are tracked.
crowdingNoPer-coin crowding across the tracked accounts.
withheldNoHow many rows a keyless connection did not receive. Zero on a developer plan.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
updated_atNoWhen the board was published.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
with_open_positionsNoHow many of them currently hold something.
tracked_notional_usdNoTotal dollar value of everything those accounts hold open.
Behavior4/5

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

Annotations already declare this as a safe, read-only, idempotent operation. The description adds valuable behavioral context beyond annotations: it discloses that keyless access returns only top rows and reports how many are withheld, while a developer plan returns the full board. This explains tier-based limitations and result shaping, which is not visible in schema or 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 two sentences, front-loaded with the core content (equity, open notional, etc.) and then adds access-tier behavior. Every phrase earns its place; there is no fluff or repetition of schema information.

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 tool has no parameters and an output schema exists (which defines the return structure), the description adequately covers what the board contains and how access limits work. It is complete for a simple read-only aggregate tool, and the 'Descriptive market data only' note sets expected limitations.

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 schema coverage is complete by default. The baseline for 0-param tools is 4, and the description adds no parameter-specific information because none is needed. It appropriately focuses on output content and access tiers.

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 defines the tool's output: tracked Hyperliquid whale accounts with equity, open notional, leverage, net bias, and per-coin crowding. It distinguishes itself from sibling tools (e.g., hl_whales) by focusing on a 'board' of tracked accounts and explicitly stating the keyless vs. developer plan return behavior.

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 as a read-only informational board ('Descriptive market data only') and explains access-tier behavior, but it does not explicitly state when to choose this over other whale-related sibling tools like whale_radar or whale_flow. It lacks explicit exclusions or alternative recommendations.

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

hl_walletHyperliquid wallet bookA
Read-onlyIdempotent
Inspect

One Hyperliquid account: live positions, equity, leverage, net bias and unrealized PnL, plus its recent whale-sized fills. The live book is public on Hyperliquid so it stays keyless; computed history (win rates, cadence, realized PnL) and the full fill trail need a developer plan. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax recent fills returned for this account. Defaults to 50, hard ceiling 200 for everyone and no plan raises it. Keyless calls receive 3 of them whatever is asked for, and the live positions come back either way.
addressYesHyperliquid account address, 0x followed by 40 hex characters. Required. Every hl_whales row carries the wallet that filled it, so it can be passed straight in. An address outside the tracked set answers tracked:false, which is a coverage fact and not an account holding nothing.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
errorNoinvalid_address when the address is not 0x plus 40 hex characters. Nothing was looked up.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
printsNoRecent whale-sized fills for this account. Keyless connections receive 3 of them whatever was asked for.
addressNoThe account address, normalised.
profileNoThe live account: what it holds, equity, dollars open, leverage, which way it leans and unrealized profit. Public on Hyperliquid, so it stays keyless.
trackedNoFalse when this account is outside the tracked set. A coverage fact, not an account holding nothing.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
locked_layersNoKeyless only: which computed blocks a developer plan adds.
Behavior5/5

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

Beyond the annotations (read-only, idempotent, non-destructive), the description discloses access-tier behavior: live book is public and keyless, while computed history and the full fill trail require a developer plan. It also clarifies that 'Descriptive market data only' indicates non-actionable data. Additionally, the parameter description (in the schema, integrated here) explains keyless calls receive only 3 fills regardless of request, which is a concrete behavioral trait. There is 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?

The description is two sentences, front-loaded with the core function and data fields, followed by access-tier and data-type context. Every clause contributes meaningful information ('Descriptive market data only' adds a clarity caveat). It is efficient without being terse.

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

Completeness5/5

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

The tool has an output schema, so return formats are documented separately. The description covers the main payload components (positions, equity, PnL, fills), the access-tier distinction (keyless vs. developer plan), and the data's descriptive nature. It also leverages the parameter descriptions to clarify edge cases. This is complete for the tool's complexity.

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 description coverage is 100%, and both parameters have detailed descriptions in the schema itself (e.g., address format, limit defaults/ceiling, keyless behavior, tracked:false semantics). The tool's description text does not add significant parameter-level information beyond what the schema already provides, so a baseline of 3 is appropriate when schema carries the load.

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

Purpose5/5

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

The description opens with 'One Hyperliquid account' and enumerates the exact data provided: live positions, equity, leverage, net bias, unrealized PnL, and recent whale-sized fills. This clearly identifies the resource and scope, distinguishing it from sibling tools like hl_whales that likely cover multiple accounts. The purpose is specific and immediately understandable.

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 access tiers ('The live book is public on Hyperliquid so it stays keyless; computed history ... and the full fill trail need a developer plan'), which helps users know what to expect. However, it does not explicitly name alternative tools or state when not to use this tool. The 'One Hyperliquid account' phrasing implies use for single-account queries, but an explicit alternative (e.g., hl_whales for many wallets) is missing.

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

hl_whalesHyperliquid named whale fillsA
Read-onlyIdempotent
Inspect

Recent whale-sized Hyperliquid fills WITH THE WALLET ADDRESS attached. Hyperliquid is the one venue whose public feed names the account on both sides of a fill, so every row here is followable to a live book (see hl_wallet). Keyless. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one coin, for example PEPE. Matched against the parsed symbol as well as the raw market name, so the 1000-unit markets (kPEPE, kSHIB, kBONK) are found under PEPE, SHIB and BONK. One symbol, not a list. Omit for every coin.
pairNoAlias for coin.
limitNoMax fills returned. Defaults to 50, hard ceiling 200 for everyone and no plan raises it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin filter applied, or null for every coin.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
countNoHow many rows this reply carries.
venueNoAlways Hyperliquid.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
tradesNoThe fills, each carrying the wallet on both sides, the coin, the direction, the size and the time. Pass a wallet to hl_wallet for that account live positions.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
Behavior4/5

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

Annotations already cover readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds key context: it is 'Keyless. Descriptive market data only,' and it explains the unique trait that both sides of a fill are named, enabling followability. This goes beyond the 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?

The description is concise and front-loaded: the first sentence states the core purpose, the second explains the unique value and points to hl_wallet, and the final fragments state keyless/descriptive. Every clause earns its place with no 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?

For an optional-filter read-only list tool, the description is complete: it specifies the data returned, the unique data source, the access requirement (keyless), and provides a pointer to a related tool. Since an output schema exists, return-value details don't need to be in the description.

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% with detailed parameter descriptions, including coin's handling of k-prefixed markets and limit's default/ceiling. The description itself adds no extra parameter-specific semantics beyond the schema, so the baseline 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 clearly states that the tool returns 'recent whale-sized Hyperliquid fills' with the unique feature that 'wallet address attached' to each fill. It distinguishes this from siblings by noting Hyperliquid's public feed names both sides, making fills followable, and explicitly references hl_wallet. The purpose is specific and well differentiated.

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: it is keyless and provides descriptive market data, and it points to hl_wallet for following a live book. It explains that this is the venue for wallet-attached fills, which indicates when to use it. However, it doesn't explicitly state when not to use it versus other whale-related siblings.

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

liquidationsRecent liquidationsA
Read-onlyIdempotent
Inspect

Liquidation trades for a pair with the long and short breakdown, live tape merged with the recorded series so a restart never erases history. A long is force-closed by selling, so sell-side events are long liquidations. long_liquidations and short_liquidations are event COUNTS; long_usd and short_usd carry the dollar split. Pass hours to ask for a period (hours: 24 for today); without it you get the most recent rows and window_minutes tells you how far back they reach. truncated:true means more events matched than were returned, so window_minutes covers the returned rows only and total_in_window has the real count. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoe.g. ETH/USD. A bare symbol like ETH also works.
hoursNoLook back this many hours, up to 720. Omit for the most recent events.
limitNoMax rows returned. Capped at 50 keyless and 1000 on a developer plan; asking for more returns the cap, and the payload says so in `capped`. count and the *_usd totals always cover the whole window regardless.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair these events belong to.
countNoHow many events fired in the whole window, not how many rows came back.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
sourcesNoHow the events split between the streamed exchanges and Hyperliquid, and whether the Hyperliquid part is a sample.
long_usdNoDollars of longs force-closed across the window.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
short_usdNoDollars of shorts force-closed across the window.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
liquidationsNoThe events themselves, newest first: price, size in base and quote, side (long_liquidated or short_liquidated), exchange and time. A sample of the window when truncated is true.
window_hoursNoThe period the totals cover, in hours.
rows_returnedNoHow many event rows are actually in this reply.
window_minutesNoThe same period in minutes.
requested_hoursNoThe period asked for, so a page can be told apart from a period.
total_in_windowNoHow many events the window holds in total.
history_includedNoTrue when the recorded series was merged in, so a restart has not erased earlier events.
total_volume_usdNoDollars forced out across the whole window.
long_liquidationsNoCOUNT of longs force-closed. For dollars read long_usd.
rows_span_minutesNoHow far back the returned rows themselves reach.
short_liquidationsNoCOUNT of shorts force-closed. For dollars read short_usd.
Behavior5/5

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

Annotations already mark the operation as read-only, idempotent, and non-destructive. The description adds substantial behavioral context: live tape merged with recorded series so history is never erased, long liquidations are sell-side events, and truncation semantics with window_minutes and total_in_window are clearly explained.

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 dense but not bloated; every sentence contributes distinct information about behavior, parameters, or edge cases. It front-loads the core purpose and then systematically details parameter semantics and truncation handling, making it appropriately sized for the tool's complexity.

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, the description need not enumerate return values. It covers period selection, truncation behavior, parameter caps, the long/short event meaning, and the 'Descriptive market data only' scope, providing a complete picture for an agent.

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

Parameters4/5

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

The schema already describes all four parameters with 100% coverage, giving a baseline of 3. The description adds meaningful semantics beyond the schema by explaining that hours=24 means 'today', that window_minutes covers only returned rows when truncated, and that limit capping is reported in 'capped' while totals cover the whole window regardless.

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 the tool as returning liquidation trades for a pair, with long/short breakdown and historical persistence. It distinguishes itself from sibling tools by focusing on pair-specific liquidation tape and explaining the merge of live and recorded 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?

It explicitly explains when to pass hours (for a lookback period like 'today') and what happens without it (recent rows with window_minutes). It does not name alternatives or exclusion criteria, but the parameter usage context is clear enough for an agent to decide how to invoke it.

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

liq_zonesProjected liquidation levelsA
Read-onlyIdempotent
Inspect

Projected liquidation level book for one pair (modeled from leverage assumptions - clearly labeled as a projection, not executed trades). Keyless serves the free pairs without cascade chains; an active developer plan serves any pair with the full snapshot. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. Keyless calls reach the free pairs and get the projected levels without the cascade chains; a developer plan reaches any streamed pair with the full snapshot.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair this projection covers.
coveredNoFalse when this server does not stream the pair at all. No plan adds it.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
free_pairsNoThe pairs a keyless connection can read, returned when the pair asked for is not one of them.
projectionNoThe projected levels: where forced closes would sit under the modeled leverage assumptions, plus the cascade chains on a developer plan. Modeled levels, NOT trades that happened.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds valuable behavioral context beyond annotations: it is modeled from leverage assumptions, is clearly labeled as a projection, and provides 'descriptive market data only.' It also exposes plan-dependent limitations, which is useful for setting 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?

The description is two sentences, front-loaded with the core purpose, and efficiently packs essential details about projection nature and plan tiers. Every sentence earns its place with no filler or repetition.

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

Completeness5/5

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

Given the output schema and rich annotations, the description is complete enough for selection. It covers what the tool does, its limitations, and the meaning of free vs. developer plan access, which is adequate among 27 sibling tools.

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 each parameter (coin and pair) already well-documented, including plan behavior in the pair description. The description itself adds no additional parameter-level semantics, so the baseline 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 clearly identifies the tool as a projected liquidation level book for one pair, explicitly distinguishing it from executed trades and actual liquidation feeds. It provides a specific resource and scope, and the phrase 'projected' plus 'not executed trades' separates it from siblings like liquidations or market_liquidations.

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?

Clear context is provided: use this tool for projected liquidation levels for one pair, with plan-based limitations (keyless free pairs without cascade chains, active developer plan full snapshot). However, it does not explicitly name alternative tools or state when not to use it, so it lacks the explicit exclusions needed for a 5.

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

market_extremesMarket extremes, latest recorded dayA
Read-onlyIdempotent
Inspect

Which pairs sit at a record or in their own top or bottom 5 percent for funding, open interest or liquidations, each vs that pair's own recorded history, with next-day outcome stats for past occurrences where enough events exist. Covers the latest day the daily scan recorded, which is NOT necessarily today: read as_of_day and stale before describing any of it as current. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
top5NoThe same, for pairs in their own top or bottom 5 percent rather than at a record.
staleNoTrue only when the rows are further back than the settle horizon explains.
recordsNoPairs sitting at a record high or low for funding, open interest or forced closes, each against the same pair recorded days, with a ready phrase and next-day outcome stats where enough past cases exist.
as_of_dayNoThe day the rows actually describe. This is the honest date, and it is usually not today.
stale_noteNoPresent when stale is true: how far past the horizon the scan has fallen.
computed_atNoWhen the daily scan ran.
coverage_noteNoPresent when stale is false: why these extremes are from as_of_day rather than today.
data_age_daysNoHow many days back as_of_day sits.
expected_lag_daysNoHow far behind live this archive is meant to run.
Behavior4/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds that data may be stale, pointing to as_of_day and stale fields, and notes that next-day outcome stats exist only where enough events are available. This is useful context beyond annotations, though it does not fully explain how to interpret staleness.

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 two sentences, front-loaded with the core purpose, followed by a clear caveat about data staleness. Every sentence earns its place with no redundancy.

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

Completeness4/5

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

With no input parameters and an output schema available, the description need not explain return values. It covers the key elements: what the tool reveals, the staleness caveat, and the descriptive-only nature. It could clarify what 'pairs' refers to, but that is domain-specific context rather than a critical 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?

The tool has zero parameters, so the baseline is 4. The description mentions as_of_day and stale but these are response fields, not inputs. No additional parameter semantics are 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 clearly states it identifies pairs at record highs/lows or in the top/bottom 5% for funding, open interest, or liquidations relative to their own history, and provides next-day outcome stats. This is a specific, resource-focused purpose that distinguishes it from siblings like market_overview or market_history.

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 provides context that the tool covers the latest recorded day, not necessarily today, and instructs to check as_of_day and stale before treating data as current. However, it does not explicitly name alternative tools or state when not to use it, so it falls 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.

market_historyMarket historyA
Read-onlyIdempotent
Inspect

Daily history: funding rate, open interest, price and liquidation totals for one pair (archived since 2026-03-18), or daily whale buy/sell flow for one coin (since 2026-06-18). Keyless calls cover 30 days; a paid developer plan reaches the full archive. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoRead the daily whale buy and sell flow lane for one coin instead, for example BTC, recorded since 2026-06-18. Passing coin selects that lane and pair is then ignored. This is the one tool here where coin and pair are different questions, not two spellings of one.
daysNoHow many recorded days to return. Defaults to the whole window, which is also the ceiling: 30 keyless and 400 on a developer plan. Asking for more returns the cap, and the payload says so in `capped`. Both lanes settle several days behind live by design, so read as_of and data_age_days before calling any of it current.
pairNoRead the daily market lane for one pair: funding, open interest, price and liquidation totals, recorded since 2026-03-18. For example ETH/USD; a bare symbol like ETH is read as ETH/USD, and BTC/USD is the default. Ignored when coin is passed, because coin selects the other lane.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin, when the daily whale-flow lane was read.
pairNoThe pair, when the daily market lane was read.
as_ofNoThe newest day in this reply. Not today: both lanes settle several days behind live by design.
priceNoDaily price readings.
staleNoTrue only when the lane is further back than its own settle horizon explains.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
fundingNoDaily funding readings, oldest first, each carrying its own coverage evidence.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
depth_noteNoHow far back the data behind this answer reaches.
stale_noteNoPresent when stale is true: how far past the horizon it has fallen.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
liquidationsNoDaily forced-close totals.
coverage_noteNoPresent when stale is false: why the newest day is not today, and that these days must not be described as current.
data_age_daysNoHow many days back as_of sits.
days_returnedNoHow many recorded days came back.
open_interestNoDaily open interest readings.
hour_of_day_utcNoWhat a typical hour looks like for this coin, as medians per UTC hour. Absent under 14 recorded days.
whale_flow_dailyNoDaily whale buy and sell dollars, when the coin lane was read.
expected_lag_daysNoHow far behind live this lane is meant to run, so a healthy lag can be told from a stopped one.
Behavior5/5

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

Annotations already indicate read-only, idempotent, and non-destructive. The description adds valuable behavioral context: data is archived since specific dates, keyless calls are capped at 30 days and the payload reports caps via 'capped', and both lanes settle several days behind live data. This goes well beyond what annotations provide and is not contradicted by 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?

The description is concise and front-loaded, using three sentences to communicate the two modes, archive dates, access limits, and data nature. Every sentence adds essential information without redundancy or 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 tool's two-mode complexity, the description covers access tiers, data lag, and the distinct handling of coin vs pair. Since an output schema exists, the lack of return-value detail is acceptable. Annotations cover safety, and the description fills the behavioral context, making it complete for an agent to select and invoke.

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 each parameter has a detailed description explaining its meaning and defaults. The tool description further clarifies the relationship between 'coin' and 'pair' as distinct questions and how they interact (coin overrides pair), adding extra semantic depth beyond the schema. This justifies a score above the baseline of 3.

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 the tool provides daily historical data for either market metrics (funding, open interest, price, liquidations) for a pair, or whale buy/sell flow for a coin, with archive start dates. It clearly distinguishes the two usage modes and is specific about the resource and data type.

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 on access limits (keyless 30 days, paid plan full archive) and notes the data is descriptive only, implying it is for historical reference rather than live trading. However, it does not explicitly name alternative tools or give when-not-to-use guidance, so it stops 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.

market_liquidationsMarket-wide liquidationsA
Read-onlyIdempotent
Inspect

The whole market's forced closes in one call rather than per pair: 24h dollars and counts split long vs short, hour by hour so a cascade is locatable, ranked by coin, plus the biggest single event. Perp dollars come from the venues that publish a liquidation feed, not from every venue we stream, and the Hyperliquid share is a sample of that venue read from tracked wallets, so the totals are a FLOOR. Includes named_liquidations, the wallets that were closed out on Hyperliquid, which no other venue publishes. lending_liquidations rides alongside as a SEPARATE lane (an on-chain debt repaid and collateral seized) and must never be added to the perp numbers. A long is force-closed by selling, so long dollars are sell-side pressure. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
as_ofNoWhen the combined snapshot was taken, as an ISO stamp.
staleNoTrue when the snapshot is older than it should be.
coverageNoWhich feeds fed this snapshot.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
perp_liquidationsNoThe 24h forced-close picture on leveraged markets: count, total_usd, the long and short split in both dollars and counts, hour by hour, the peak hour, the ranked coins, the biggest single event, and which exchanges are behind the totals. Long dollars are sell-side pressure.
named_liquidationsNoHyperliquid closures with the wallet named, which no other market publishes.
lending_liquidationsNoA SEPARATE 24h lane: on-chain debts repaid and collateral seized. count, total_usd, protocols, chains and recent rows. Never add these to the leveraged numbers.
Behavior5/5

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

Beyond the annotations (read-only, idempotent, non-destructive), the description discloses critical caveats: data only from venues publishing liquidation feeds, the Hyperliquid share is a sample, totals are a floor, and long dollars represent sell-side pressure. This is exactly the kind of behavioral context annotations do not 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?

The description is dense but every sentence adds unique value: scope, data caveats, separate lanes, and interpretation. It is structured logically, starting with the definition, then limitations, then usage warnings, and ending with a clarifying statement about descriptive data. No 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?

Given the tool has an output schema and zero parameters, the description carries the responsibility of explaining the nuanced data behavior. It covers data provenance, aggregation method, the floor nature of totals, the unique named_liquidations, and the separation of lending liquidations. This is complete for a tool of this complexity.

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

Parameters4/5

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

The input schema has zero parameters, so the baseline is 4 per the rubric. The description does not need to add parameter detail because there are none, and the schema coverage is effectively 100%.

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

Purpose5/5

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

The description opens with a specific verb and resource: "The whole market's forced closes in one call rather than per pair." This clearly distinguishes it from per-pair liquidation tools, and the detailed breakdown (24h dollars/counts, long vs short, hourly, ranked by coin) makes the tool's 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?

The description states the tool is market-wide rather than per-pair, implying it should be used when a whole-market view is needed. It also provides an explicit when-not: lending_liquidations must never be added to perp numbers. However, it does not name specific sibling tools as alternatives, so it stops short of the highest bar.

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

market_overviewMarket overview + regimeA
Read-onlyIdempotent
Inspect

One-call market scan: totals (volume, OI, liquidations, mcap), 24h whale net flow, BTC risk regime (SMA20/50 + breadth), and the top rows by volume. Pass coin to get one symbol's row directly (no paging needed). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoReturn this coin's row on its own, for example BTC, instead of the whole board. Only coins in the streamed overview (roughly the top 300 by volume) are there; anything else comes back available:false rather than as an empty board.
pairNoAlias for coin.
limitNoMax board rows returned. Defaults to 20, hard ceiling 50 for everyone and no plan raises it. total_rows reports the size of the whole board so a shortened list is visible. Ignored when coin is passed, since that returns a single row.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowNoThat one symbol row: base, price_usd, chg_24h_pct, vol_usd_24h and oi_usd.
coinNoThe symbol asked for, when a single row was requested.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
rowsNoThe board, ranked by volume: base symbol, price, 24h change, 24h volume and open interest.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
regimeNoThe Bitcoin risk state: state, btc_price and breadth_pct. A null state means the field is absent, not neutral.
totalsNoMarket-wide totals: volume, open interest, forced closes and market cap.
returnedNoHow many rows are in this reply.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
total_rowsNoHow many rows the whole board holds.
updated_atNoWhen the snapshot was published.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
coverage_noteNoThe same in one sentence, present only when something is missing.
whale_net_usd_24hNoBuys minus sells across the board over 24h. Null means the field is absent from this snapshot, not that flow was balanced.
unavailable_fieldsNoFields this snapshot is not carrying. They are null because the field is absent, NOT because the value is zero.
Behavior4/5

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

Annotations already declare readOnly/idempotent/destructive-safe, and the description adds relevant behavioral notes: 'Descriptive market data only' reinforces non-transactional use, and 'no paging needed' clarifies single-row behavior. It doesn't go into pagination limits or return size, but annotations lower the bar.

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, first lists contents, second explains coin parameter behavior. Every clause carries information; no fluff or repetition of schema field names.

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 and rich annotations, the description needn't describe return values. It covers the main feature set (totals, whale flow, regime, ranking) and the coin lookup path, making it sufficient for an overview tool.

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 enriches the coin parameter by explaining the direct row retrieval and the 'no paging needed' property. The mention of 'top rows by volume' also clarifies the ordering semantics not fully explicit in the schema.

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

Purpose5/5

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

The description opens with 'One-call market scan' and enumerates concrete outputs (totals, whale net flow, BTC risk regime, top rows by volume), giving a specific verb-resource pairing. It also notes coin-level lookup, which distinguishes it from generic screener 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?

It clearly implies use for a quick, comprehensive market overview via 'One-call market scan' and notes the coin shortcut for single-symbol queries. It does not name any sibling as an alternative, so there's no explicit when-not-to-use guidance, but the context is clear.

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

market_screenerCross-market screenerA
Read-onlyIdempotent
Inspect

Screen every recorded pair in one call: filter by funding_band / oi_band (vs each pair's OWN recorded days: record high, top 5%, top 25%, typical, bottom 25%, bottom 5%, record low), minimum whale-flow multiple vs the coin's own average, and radar-unusual. The discovery call. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows returned. Defaults to 20, hard ceiling 50 for everyone and no plan raises it. `matched` counts every pair that passed the filters regardless, and truncated says whether the rows are a shortened list.
compactNoReturn one plain-text line per matching pair rather than the JSON rows. Defaults to false.
oi_bandNoSame values as funding_band.
funding_bandNoOne of: record high, top 5%, top 25%, typical, bottom 25%, bottom 5%, record low.
unusual_onlyNoKeep only coins the radar currently marks unusual in its 1h, 4h or 24h window. Defaults to false.
whale_mult_minNoKeep only coins whose 24h whale flow is at least this multiple of their own logged daily average, for example 3 for 3x and up. Coins with no logged multiple are dropped rather than treated as zero. Omit for no flow filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lineNoOne plain-text line per matching pair, returned only when compact:true was asked for.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
rowsNoOne row per matching pair: pair, coin, price, 24h change, the funding and open interest bands against the same pair recorded days with the day counts behind them, the whale multiple, and whether the ranking currently calls it unusual.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
compactNoPresent and true only on a compact:true call, where the whole answer is the text in `line`.
matchedNoHow many pairs passed every filter, counted before the row cap. Null when nothing was screened.
criteriaNoThe filters as they were actually applied, so a misread argument is visible.
returnedNoHow many rows are in this reply.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
valid_bandsNoThe bands that do exist, returned alongside unknown_band.
unknown_bandNoSet when a band was named that this screen does not know. Nothing was screened, so this is not no matches.
scanned_pairsNoHow many pairs were examined.
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is established. The description adds the key behavioral nuance that band comparisons are 'vs each pair's OWN recorded days' and that the whale-flow multiple is relative to the coin's own average, which is useful context beyond the annotations. However, it doesn't describe pagination, rate limits, or exact output behavior beyond what schema/output schema already 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 a dense two-sentence structure that front-loads the core action ('Screen every recorded pair') and then lists filters. It earns its length by conveying the discovery call scope and relative-band logic, though the parenthetical enumeration of band values (record high, top 5%, etc.) duplicates schema content and could be shortened without losing 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?

The tool has 6 parameters, no required ones, full schema coverage, an output schema, and clear read-only annotations. The description supplies the missing high-level context: this is the cross-market discovery screen ('every recorded pair in one call') and filters are self-relative. It is complete enough for an agent to decide when to invoke and what to expect, without needing to explain return values due to the 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?

All 6 parameters have complete, detailed descriptions in the schema (100% coverage), so the description does not need to compensate. The description reiterates filter concepts like 'funding_band / oi_band' and 'whale_mult_min' but adds no new parameter-level meaning beyond summarizing what the schema already documents. Baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Screen every recorded pair in one call', giving a specific verb, resource, and scope. It then enumerates the filtering dimensions (funding/oi bands, whale-flow multiple, radar-unusual) and ends with 'The discovery call. Descriptive market data only.', which distinguishes it from other market tools like market_snapshot or whale_trades.

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 phrase 'The discovery call' clearly signals when to use this tool: when exploring across all recorded pairs. It also notes 'Descriptive market data only', excluding trade execution or data modification. However, it stops short of explicitly naming alternatives for different use cases (e.g., 'for pair-specific data use market_snapshot'), so it lacks formal exclusion guidance.

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

market_snapshotMarket snapshotA
Read-onlyIdempotent
Inspect

One-call market state for a pair: last price, 24h stats, average funding rate, open interest and recent liquidation totals from the venues that publish them. Keyless calls cover the free pairs; a paid developer plan covers every streamed pair. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. Keyless calls reach the free pairs only; a developer plan reaches every streamed pair. A pair this server does not stream comes back covered:false, and no plan adds it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair this snapshot describes.
priceNoLast traded price.
coveredNoFalse when this server does not stream the pair at all. No plan adds it.
fundingNoaverage_rate across the exchanges that publish one, and exchange_count behind that average.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
stats_24hNoThe 24h statistics block: open, high, low, close, change and volume.
free_pairsNoThe pairs a keyless connection can read, returned when the pair asked for is not one of them.
vs_historyNoWhere funding and open interest sit against the same pair recorded days: a phrase, a band and how many days back the comparison reaches. Null under 30 recorded days.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
open_interest_usdNoOpen interest in dollars, summed across the exchanges that publish it.
exchanges_streamingNoHow many exchanges are currently streaming this pair.
liquidations_recentNoRecent forced closes for this pair: count, total_usd, the long and short split in counts and dollars, and window_minutes, without which a count cannot be read. available:false here means no reading, not zero.
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 known. The description adds valuable context beyond annotations: access-tier differences (keyless vs paid plan), data source variability ('from the venues that publish them'), and coverage behavior for non-streamed pairs. No contradiction.

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

Conciseness5/5

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

The description is extremely concise: two sentences. The first sentence front-loads the core purpose and data points; the second covers access tiers and data nature. Every word earns its place with no redundancy.

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

Completeness4/5

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

With an output schema present, the description adequately covers the tool's scope, data categories, access tiers, and coverage caveats. Minor details like data freshness or specific venue names are optional and not critical given the schema.

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

Parameters3/5

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

Schema coverage is 100%, with thorough descriptions for both parameters including defaults, aliases, and access-tier behavior. The main description adds no additional parameter-specific meaning, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'One-call market state for a pair' and lists specific data points (last price, 24h stats, average funding rate, open interest, liquidation totals). This distinguishes it from sibling tools like market_history or market_liquidations by emphasizing a combined snapshot.

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 phrase 'One-call' implies use for a quick comprehensive view, and 'Descriptive market data only' clarifies it is read-only. However, there is no explicit mention of alternatives or when not to use this tool, leaving the agent to infer comparative usage from sibling names.

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

my_accessWhat this connection includesA
Read-onlyIdempotent
Inspect

What THIS connection can and cannot see: whether it is on the free plan (on_free_plan), how many credits are left and roughly how many more tool calls that buys, which tier it is on, the exact row cap and time window every tool applies to it right now, what is locked, and precisely what lifts each limit. Call it whenever the user asks what they get, how many credits they have, why a result came back capped (any payload carrying a capped field), or how and where to upgrade. Only an active developer plan lifts the caps here, and this settles the two things people get wrong most often: CoinLobster Pro ($9/mo) is the WEBSITE subscription and adds nothing here, and a free API key adds nothing here either. Free to call and never metered.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
capsNoThe row cap and time window every capped tool applies right now, each with the free value and the developer-plan value beside it.
tierNoWhich of four states this connection is in: keyless, signed_in_free, coinlobster_pro or developer_plan.
plainNoOne sentence describing this tier in the user own words rather than ours.
creditsNoThe balance: credits_remaining, plan, plan_active, credits_per_call, calls_left_estimate and where to top up. A null credits_remaining always carries a note saying WHY, because could not read and spent to zero send a user to two different places.
meteredNoWhether calls cost credits on this connection, and how much.
free_pairsNoThe pairs this connection can read. A list when keyless, the words every streamed pair on a developer plan, or a short sentence when the market lane could not be read.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
how_to_liftNoWhat lifts the caps, where to get it, and (as not_this) the two things people buy by mistake that change nothing here.
locked_hereNoWhat this connection cannot reach right now. Empty on a developer plan.
on_free_planNoTrue when this connection reads free-shaped data. The single fact most users are asking for.
authenticatedNoTrue when any valid sign-in or key was presented.
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description adds critical behavioral context: it is free to call and never metered, and only an active developer plan lifts caps. It also explains common misconceptions, giving the agent full transparency into side effects and limitations.

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

Conciseness3/5

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

The description is a dense run-on sentence, covering many details but lacking clear structure or breaks. It is informative but could be more concise and front-loaded; the title helps, but the body is a wall of text.

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

Completeness5/5

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

The description fully covers the tool's purpose, usage triggers, and output semantics (credits, caps, locked items, upgrades). With an output schema present and no parameters, this is complete for an AI agent to select and invoke 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?

The tool has zero parameters, and schema coverage is 100%. The description adds no parameter-specific info because none is needed; a score of 4 aligns with the baseline for parameterless tools.

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: it shows what the connection can and cannot see, including plan status, credits, tier, caps, locked features, and how to lift limits. It uses specific verbs and resources, distinguishing it from all 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 Guidelines5/5

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

Explicitly tells when to call it: when the user asks about what they get, credits, capped results, or how to upgrade. It also clarifies exclusions (CoinLobster Pro website subscription does nothing, free API key does nothing), providing strong guidance on when not to use it.

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

onchain_whalesOn-chain DEX whale swapsA
Read-onlyIdempotent
Inspect

Executed DEX whale swaps on Ethereum, Base and Arbitrum, each carrying the wallet, the DEX, the token and the USD size. Filter by chain, coin or minimum size. Keyless. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one token symbol, for example PEPE. A pair like ETH/USD works too, the quote leg is dropped. One symbol, not a list. Omit for every token.
pairNoAlias for coin.
chainNoRestrict to one chain: ethereum, base, arbitrum. Anything else is refused by name rather than answered as nothing happening there. Omit for all of them.
limitNoMax swaps returned. Defaults to 50, hard ceiling 200 for everyone and no plan raises it.
min_usdNoSmallest swap to return, in US dollars, for example 500000 for $500K and up. Omit for everything above the size floor this feed already records, which is not every swap on chain.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
countNoHow many rows this reply carries.
swapsNoThe swaps, each carrying the wallet that signed it, the exchange it went through, the token and the dollar size.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
unknown_chainNoSet when a chain was named that this feed does not index. Nothing was searched, so this is not no swaps there.
chains_coveredNoThe chains this feed indexes.
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds useful context: 'Keyless' indicates no authentication needed, and 'Descriptive market data only' clarifies that the output is raw data rather than signals or advice. 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 cover purpose, data payload, filters, authentication, and data nature. Every word contributes, no fluff, and key 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?

An output schema exists, so return values are documented elsewhere. The description adds the data fields carried by each swap and the keyless/descriptive nature. It is adequate for a read-only data tool, though it does not explicitly differentiate from the many sibling whale tools.

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 each parameter is already documented in detail. The description summarizes filtering options ('chain, coin or minimum size') but adds no syntax or semantics beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Executed' and identifies the resource as 'DEX whale swaps' on Ethereum, Base, and Arbitrum. It also lists the exact data fields (wallet, DEX, token, USD size), making it clearly distinguishable from other whale-related 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: it is keyless (no auth required), provides descriptive market data only, and can be filtered by chain, coin, or minimum size. However, it does not explicitly name alternatives or state when not to use this tool relative to siblings like whale_trades or whale_flow.

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

smart_moneySmart Money (proven cohort)A
Read-onlyIdempotent
Inspect

What the PROVEN trader cohort is holding and trading, coin by coin. The cohort is not a guess at who is smart: it is Hyperliquid leaderboard accounts screened for provable profit (equity band, month and all-time PnL and ROI, volume-to-equity) and then verified against their own fills to trade at a cadence a person could follow. Two blocks, two different units, never added: positions_held is notional currently open, flow_traded is dollars executed inside the window (1h, 4h or 24h). Every row carries the wallet COUNT behind it and a thin flag when fewer than 3 cohort wallets are in it, because a one-wallet row is one person and not a cohort. cohort.rosterAgeHours is how old the MEMBERSHIP screen is (up to 24h), which is a separate fact from updated_at. Wallets whose live book could not be read are reported as unprofiled and are never counted as flat. Keyless. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNoWhich window flow_traded covers: 1h, 4h or 24h. Defaults to 24h. It does not move positions_held, which is always what the cohort holds right now, and windows_available in the reply lists what the roll-up actually published.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
venueNoWhich market the cohort trades on.
cohortNoWho is in the cohort and how it was screened, including rosterAgeHours, the age of the membership screen.
windowNoWhich window flow_traded covers: 1h, 4h or 24h.
coverageNoWhich wallets could be read, and which are reported as unprofiled rather than counted as holding nothing.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
updated_atNoWhen the roll-up was published. Separate from how old the membership screen is.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
flow_tradedNoDollars EXECUTED inside the window per coin, same row shape. A different unit from positions_held and never added to it.
flow_withheldNoHow many traded rows were not returned at this access level.
positions_heldNoDollars currently OPEN per coin, with the wallet count behind each row and a thin flag under 3 wallets.
windows_availableNoThe windows the roll-up actually published.
positions_withheldNoHow many holding rows were not returned at this access level.
Behavior5/5

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

Annotations already establish read-only/idempotent behavior, but the description adds extensive behavioral context beyond annotations: cohort screening criteria, the distinct meanings of positions_held and flow_traded, wallet-count flags, rosterAgeHours semantics, treatment of unprofiled wallets, and the keyless/descriptive nature. No contradictions with annotations.

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

Conciseness5/5

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

Although the description is long, every sentence earns its place by explaining the cohort definition, the two data blocks, field interpretations, edge-case handling, and time semantics. It is well-structured and front-loaded with the core value proposition.

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 domain and the presence of an output schema, the description fully equips an agent to understand what the data represents, how to interpret edge cases, and how to use the optional parameter. It leaves no obvious gaps in operational understanding.

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

Parameters5/5

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

The single parameter window is already described in the schema, but the description adds crucial semantics: it only affects flow_traded, not positions_held, and windows_available in the reply indicates actual roll-up coverage. This goes beyond the schema's own description and prevents misinterpretation.

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 the tool's purpose: exposing what the PROVEN trader cohort holds and trades, coin by coin. It uses a specific verb+resource construction and distinguishes itself from sibling tools like whale_* by explaining the cohort's screening methodology.

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 for when to use the tool—when an agent needs insight into the positions and flows of a provably profitable trader cohort. It does not explicitly mention alternatives or when not to use, but the detailed methodology and semantics make the tool's niche unambiguous.

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

squeeze_scoreSqueeze Score (crowding)A
Read-onlyIdempotent
Inspect

Fused 0-100 crowding read per pair (funding + long/short accounts + taker imbalance + OI trend) with the overexposed side. Descriptive, not a trade signal. Needs a paid developer plan. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. A developer plan is needed for any pair here: without one the call is refused before the pair is even read.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair this crowding read describes.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
updated_atNoWhen the read was computed.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
by_exchangeNoThe same read broken out per exchange.
crowded_sideNoWhich side is overexposed, long or short.
squeeze_scoreNoCrowding from 0 to 100. Descriptive, not a trade signal.
long_short_ratioNoLong accounts against short accounts.
taker_buy_sell_ratioNoAggressive buying against aggressive selling.
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 that the tool 'fuses' multiple data sources and reports the overexposed side, and it reiterates the descriptive nature. It also flags the paid plan requirement, which is a behavioral prerequisite. No contradiction with annotations.

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

Conciseness4/5

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

The description is short and front-loaded with the primary purpose, followed by caveats. However, 'Descriptive' appears twice ('Descriptive, not a trade signal' and 'Descriptive market data only'), creating slight redundancy. Otherwise it is efficient.

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

Completeness5/5

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

Given the tool's moderate complexity and the presence of an output schema, the description covers the key inputs (per pair), the composite nature of the score, and the access prerequisite. It does not need to detail return values since an output schema exists. This is complete for its purpose.

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% with detailed descriptions for both coin and pair, including default behavior and developer plan requirement. The main description only mentions 'per pair' and the plan requirement, adding little beyond the schema. A baseline score 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 provides a fused 0-100 crowding score per pair, listing contributing factors (funding, long/short accounts, taker imbalance, OI trend) and the overexposed side. It also clarifies that it is descriptive, which distinguishes it from signal-oriented tools. This is specific and 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 explicitly says 'not a trade signal' and 'Descriptive market data only', indicating when not to use it for trading decisions. It also notes the paid developer plan prerequisite. However, it does not name alternative tools for comparison, so usage context is clear but lacks explicit exclusions beyond the trading disclaimer.

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

trade_contextOne-call trade contextA
Read-onlyIdempotent
Inspect

The pre-trade context blob in one call: price, cross-venue funding with time-to-next-funding and carry arithmetic (optional position_usd), open interest, whale flow vs the coin's own baseline, and recent visible liquidations, on ANY streamed pair keyless. compact: true returns the one-line composed answer (about 30 tokens). A paid developer plan adds the percentile judgment vs the pair's own recorded days, whale USD magnitudes, full 24h stats and the crowding score. Strictly descriptive: state plus recorded history, no advice. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. Any streamed pair answers keyless; off the free pairs a keyless reply is the lite shape and names what it withheld in locked_layers.
compactNoReturn one line of plain text rather than the JSON blob, about 30 tokens instead of 800. Same facts, same windows, same dates, no structured fields to read. Defaults to false.
position_usdNoPosition size in US dollars, for example 25000. Above zero only. When given, carry_cost adds per_day_usd_at_current_rate, the dollars a day the current funding average across exchanges works out to at that size. Arithmetic on the rate as it stands now, not a projection of future rates. Omit and carry_cost still carries the percentage and APR figures.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lineNoThe composed one-line answer, returned only when compact:true was asked for. The same facts, the same windows and the same dates as the full shape.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair this context describes.
depthNoWhich shape came back: lite, free-pair or keyed.
priceNoLast traded price.
compactNoPresent and true only on a compact:true call, where the whole answer is the single line in `line`.
fundingNoaverage_rate across exchanges, how many exchanges are in it, the interval in hours, and minutes to the next funding time.
crowdingNoThe crowding read and the overexposed side. Null without a developer plan.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
stats_24hNoThe 24h statistics block. Absent on the lite shape, where locked_layers names it.
carry_costNoArithmetic on the current funding average: percent per day, the same as an annual rate, which side pays, and dollars a day when position_usd was passed. Not a projection of future rates.
whale_flowNoWhale direction against the same coin logged baseline: the multiple, days logged, record and N-day-high flags, and buy share now versus 7 days. Dollar sizes are added on a developer plan.
locked_layersNoNamed rather than silently missing: which blocks this connection did not receive.
vs_own_historyNoWhere funding and open interest sit against the same pair recorded days: phrase, band, day count, the date the reading is from, and how past cases resolved.
open_interest_usdNoOpen interest in dollars across the exchanges that publish it.
liquidations_recentNoForced closes visible right now: count, long_usd, short_usd and window_minutes. A timing series, market-wide totals run higher.
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds valuable behavioral context: compact mode returns a one-liner instead of JSON, paid plan gates advanced analytics, and it explicitly states 'Strictly descriptive: state plus recorded history, no advice.' This goes beyond annotations, though some behaviors like locked_layers are only in the schema.

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

Conciseness4/5

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

The description is dense but well-structured: starts with the core purpose, then lists components, then options (compact), then paid plan, then disclaimers. Each sentence adds information, though it is somewhat long and could be tightened without losing content.

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

Completeness4/5

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

With an output schema present and annotations covering safety, the description covers the main data components, the compact alternative, paid vs free limitations, and the descriptive nature. It is quite complete for a complex composite tool, though it could better explain free vs paid data shape (e.g., locked_layers) directly in the description.

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 baseline is 3. The description mentions position_usd in the context of carry arithmetic and compact, but these are also covered in the schema details. It does not add significant new meaning 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 the tool returns a pre-trade context blob with specific components (price, funding, open interest, whale flow, liquidations) on any streamed pair keyless. This distinguishes it from specialized siblings like funding_matrix or whale_flow, and the title 'One-call trade context' reinforces its purpose.

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 phrase 'pre-trade context blob in one call' indicates when to use it (broad pre-trade overview), and the schema adds keyless vs paid usage context. However, it does not explicitly mention alternative tools or when not to use this tool, so it lacks explicit exclusions.

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

whale_contextWhale flow vs own historyA
Read-onlyIdempotent
Inspect

Per-coin whale flow vs that coin's OWN logged history: multiple of its daily average, N-day-high flags, buy share now vs 7d. The "is this unusual for THIS coin" call; coin accepts a comma-separated list for portfolio briefs (single coin returns a flat object; a list returns {coins:[...]}). Keyless returns multiples and records (USD magnitudes need an active developer plan). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol, for example BTC, or a comma-separated list of up to 15 for a portfolio in one call. A single coin returns a flat object, a list returns {coins:[...]} with an available:false entry for any member with no logged history. Omit for the 15 coins sitting at the highest multiple right now.
pairNoAlias for coin.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin this row describes, when one coin was asked for.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
coinsNoOne row per coin when a comma-separated list was asked for. A member with no logged history comes back as available:false.
breadthNoHow wide the buying or selling is across the coins with logged history.
usd_24hNoTotal whale dollars in the last 24h.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
since_dayNoThe first day this baseline covers.
valid_daysNoHow many days of the baseline hold usable readings.
days_loggedNoHow many days wide the baseline window is.
net_usd_24hNoBuys minus sells in the last 24h.
buy_share_7dNoShare of the last 7 days dollars that were buys, 0 to 1.
ranking_noteNoHow the list is sorted, and why a thin_baseline row can sit near the top without meaning anything.
buy_share_24hNoShare of the last 24h dollars that were buys, 0 to 1.
thin_baselineNoTrue when about one day of flow sits in the whole window, so the multiple is close to the day count by construction and is not evidence of unusual activity.
highest_in_daysNoHighest flow in this many days, or null.
mult_vs_avg_24hNoHow many times its own logged daily average the last 24h of flow is.
record_high_dayNoTrue when this is the highest recorded day for the coin.
top_by_multipleNoThe coins sitting at the highest multiple right now, when no coin was asked for.
Behavior4/5

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

Annotations already reassure read-only/idempotent safety; the description adds valuable context: keyless access returns only multiples/records, USD magnitudes require an active plan, and it labels the data as 'descriptive only'. This goes beyond the structured 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?

Three dense sentences convey the core purpose, input/output format variations, access constraints, and data nature. No wasted words; front-loaded with the key concept.

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 tool's moderate complexity, a rich output schema, and annotations, the description covers use case, input variations, return shapes, access limitations, and data type in a compact form. It is fully adequate for an agent to select and call 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 descriptions already cover both parameters (coin and pair, with list behavior). The description adds practical semantics: comma-separated list returns {coins:[...]}, single coin returns flat object, and omitting coin gives top 15. This enriches the schema beyond its literal description.

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 gives a specific verb+resource: 'Per-coin whale flow vs that coin's OWN logged history' and explicitly calls it 'the is this unusual for THIS coin call', distinguishing it from sibling tools like whale_flow. This clearly communicates the tool's unique 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?

It clearly indicates when to use it (the per-coin 'unusualness' call) and describes list usage for portfolio briefs. However, it does not explicitly name sibling alternatives or state when NOT to use it, but the context is strong.

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

whale_flowWhale flow by hourA
Read-onlyIdempotent
Inspect

Hourly buy and sell USD flow buckets for one coin, CEX and DEX split, over a rolling window. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. Required: with nothing to look up the call is refused rather than answered about a different coin.
pairNoAlias for coin.
hoursNoHow many hours of hourly buckets to read back. Defaults to the whole window, which is also the ceiling: 168 keyless and 720 on a developer plan. Asking for more returns the cap, and the payload says so in `capped`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin these hours belong to.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
rowsNoOne row per recorded hour: the hour stamp plus buy and sell dollars, split CEX and on-chain.
countNoHow many hours carry a recorded reading. Fewer than hours means the rest were never recorded, not that they were quiet.
hoursNoHow many hours back were read.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
Behavior4/5

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

Annotations already declare read-only/idempotent/non-destructive, so the description's added value lies in clarifying the data is descriptive (not predictive) and that the window rolls. This is useful beyond the annotations, but it does not disclose response size or pagination 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?

Two sentences, front-loaded with the core function, no filler. Every word earns its place, making it concise and well-structured.

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 rich annotations, detailed schema, and existence of an output schema, the description covers the key aspects: what data, for one coin, split, time window, and nature (descriptive). It could mention the rolling window's cap, but that is already in the schema, so it is complete for this simple 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 coverage is 100%, with detailed descriptions for coin, pair, and hours, including defaults and caps. The description adds no new parameter semantics beyond confirming a single coin is expected, so 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 clearly states the tool provides hourly buy/sell USD flow buckets for a single coin, split by CEX and DEX, over a rolling window. This is specific and distinguishes it from sibling tools like whale_trades (individual trades) or market_snapshot (general overview).

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 does not explicitly name alternatives, but 'Descriptive market data only' signals it is for factual historical flows, not predictive signals, helping the agent choose among market analysis tools. The rolling-window scoping gives context for time-based queries, though it lacks explicit 'when not to use' guidance.

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

whale_profileOne coin, whole whale pictureA
Read-onlyIdempotent
Inspect

Everything the recorded whale record can say about ONE coin in a single call: net flow over 1h, 4h, 24h and 7d; the CEX, on-chain and Hyperliquid split; WHICH of the 15 streamed CEX venues the flow actually sits on and how concentrated it is; whether two venues sit on opposite sides (venues.split) or the CEX and on-chain markets disagree outright (sources.sourceSplit); the current run of same-direction hours; and flow measured against price. pressure.state is one of absorption (whales bought while price fell), distribution (sold while it rose) or confirming (flow and price agree). It is null with a NAMED reason (price-coverage, flow-too-small, price-flat) whenever a leg is too thin to judge, so an absent verdict must be reported as "not enough to say", never as "no activity". venues.partial marks a window containing hours recorded before per-venue dollars existed, whose venue dollars are UNKNOWN and must not be read as zero. A window states hoursCovered ONLY when it holds fewer hours than it spans, so a 3-of-24 figure is never presented as a 24h figure; full windows carry no such field and need no disclaimer. Price-coverage figures are not sent when the pressure verdict already required them to pass, so there is nothing there to hedge with: a real shortfall arrives as a caveat field instead. Keyless (7-day window; a developer plan reaches the full 30-day record). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. Required: with nothing to look up the call is refused rather than answered about a different coin.
pairNoAlias for coin.
hoursNoHow far back to read the record (min 168, i.e. 7 days). The reported windows are always 1h, 4h, 24h and 7d.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin this profile describes.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
caveatNoA real limit on this answer, in one clause. Present only when something genuinely narrows what can be said.
venuesNoWhich of the streamed exchanges the flow actually sits on and how concentrated it is. split marks two exchanges on opposite sides; partial marks a window whose exchange dollars are unknown rather than zero.
sourcesNoThe CEX, on-chain and Hyperliquid split, including sourceSplit when those markets sit on opposite sides.
windowsNoNet flow per window, keyed 1h, 4h, 24h and 7d. A window states hoursCovered only when it holds fewer hours than it spans.
coverageNoHow much of the window carries a recorded reading.
pressureNoFlow measured against price. state is absorption, distribution or confirming. When there is no state, reason names why (price-coverage, flow-too-small, price-flat), which means not enough to say, never no activity.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
Behavior5/5

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

Annotations already declare readOnly and idempotent hints, but the description goes well beyond by clarifying edge-case semantics: pressure.state null with named reasons must be reported as 'not enough to say', venues.partial dollars are unknown and not zero, hoursCovered appears only for partial windows, and price-coverage figures are omitted when already satisfied. This rich context prevents misinterpretation and adds genuine value 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.

Conciseness4/5

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

The description is lengthy, but each sentence carries meaningful operational content and it front-loads a broad summary before diving into nuanced caveats. It is not a model of brevity, but the density is justified by the tool's complexity and the need to communicate all the interpretation rules.

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 this many behavioral caveats, the description covers all critical interpretation rules, including null pressure reasons, partial windows, and omitted price-coverage fields. The presence of an output schema handles return structure, so the description's focus on semantics makes it contextually complete for an AI agent.

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 fully covers all three parameters with 100% description coverage, so the baseline is 3. The tool description adds no specific parameter syntax beyond noting the 7-day default/keyless access, so it does not further elevate the score.

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 this as a single call that returns the complete whale picture for one coin, enumerating the data categories (flow windows, venue splits, pressure state). Although it lacks an imperative verb like 'get' or 'list', the phrasing 'Everything the recorded whale record can say about ONE coin' is a specific purpose statement and distinguishes it from sibling tools by scope and comprehensiveness.

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 does not explicitly name alternative tools or exclusion conditions, but it establishes a clear context: use this for a comprehensive single-coin profile. It also notes access limitations (keyless 7-day window, developer plan reaches 30 days) and that it provides descriptive market data only, giving clear context even without direct comparison to siblings.

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

whale_radarSmart Money RadarA
Read-onlyIdempotent
Inspect

Smart Money Radar: which coins have unusual whale flow right now, across 1h, 4h and 24h windows. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
windowsNoThe ranked coins per window, keyed 1h, 4h and 24h. Each row names the coin, its dollars in the window and how that compares with the same coin trailing hours.
buildingNoTrue while the ranking has not been published yet.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
freeCoinsNoKeyless only: the coins whose numbers come through unblurred.
freshnessNoHow often the ranking is rebuilt.
generatedAtNoWhen the ranking was computed.
lockedCountNoKeyless only: how many coins were held back.
blurredMagnitudeNoKeyless only: true because dollar sizes on held-back coins are rounded away.
lockedUnusualCountNoKeyless only: how many of the held-back coins are the unusual ones.
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 description's 'Descriptive market data only' reinforces but does not significantly extend the safety profile. It adds context about time windows, which is useful behavioral information, but does not describe edge cases (e.g., empty results) or data source specifics.

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 two sentences long, front-loaded with the purpose, and every phrase adds value. 'Descriptive market data only' is a concise qualifier that prevents misinterpretation. 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?

Given the simplicity of the tool (no parameters) and the existence of an output schema, the description provides sufficient context: it conveys the data type (the output schema will handle return values), the time windows, and the 'descriptive only' limitation. It doesn't explain what 'unusual' means or how it's calculated, but that is reasonable for a radar-style overview tool.

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 description does not need to explain any parameter semantics. The mention of 1h/4h/24h windows appears to be output-related rather than input parameters, which is acceptable given the empty schema and baseline of 4 for parameterless tools.

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 the tool's function: identifying coins with unusual whale flow across 1h, 4h, and 24h windows. This distinguishes it from sibling tools like whale_flow or whale_trades by focusing on 'unusual' flow rather than raw data, though it lacks an explicit verb like 'lists' or 'detects'.

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 explicit guidance is given on when to use this tool versus alternatives. The phrase 'right now' implies real-time usage, but there is no mention of when not to use it, what other tools it complements, or any exclusions. The 'Descriptive market data only' note hints at limitations but is not a clear usage guideline.

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

whale_tapeWhale trades feed (alias)A
Read-onlyIdempotent
Inspect

Deprecated alias for whale_trades, kept so existing clients keep working. Prefer whale_trades. Live whale trades merged across 15 CEX venues plus on-chain DEX swaps (Ethereum, Base, Arbitrum), newest first. Keyless calls get the free shape (BTC/USD + $1M+ CEX trades live, other pairs delayed 15 min, DEX swaps $250K+) and up to 50 rows; a paid developer plan lifts the shape to every pair with no delay and up to 500 rows here (deeper pages on the REST API). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one coin, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. One symbol, not a list. Omit for every coin.
pairNoAlias for coin.
limitNoMax rows returned. Capped at 50 keyless and 500 on a developer plan; asking for more returns the cap, and the payload says so in `capped`.
sourceNoWhich markets to read: cex for the 15 streamed exchanges, dex for on-chain swaps on Ethereum, Base and Arbitrum, all for both merged. Defaults to all.
min_usdNoSmallest trade to return, in US dollars, for example 5000000 for $5M and up. Omit for everything already large enough to count as whale-sized. Keyless calls hold on-chain swaps to $250K and up regardless. A size filter runs after the fetch, so scan_capped in the payload states whether the search reached its own ceiling and older matches may exist.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin filter that was applied, or null for every coin.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
countNoHow many rows this reply carries.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
sourceNoWhich markets were read: cex, dex or all.
tradesNoThe matching trades, newest first. A CEX row carries pair, exchange, price, size and side; an on-chain row carries the token, the wallet and the dollar size. Every row carries source.
coveredNoFalse when the coin asked for is not one this feed streams, so nothing was searched. That is different from a quiet market.
matchedNoHow many trades matched the filters before the row cap was applied.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
scan_noteNoSays the search stopped at its ceiling, so this is not the complete set for the window.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
scan_cappedNoTrue when the search hit its own depth ceiling, so older matches may exist that were never looked at.
scanned_rowsNoHow deep the search went before filtering. Present only when a coin or size filter ran.
Behavior5/5

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

The description adds substantial behavior beyond the readOnly/idempotent annotations: free vs paid shape differences (BTC/USD only, 15-min delays, $250K DEX threshold), row caps (50 vs 500), pagination notes (deeper pages on REST API), and the 'capped'/'scan_capped' indicators in payload/params. It also states 'Descriptive market data only', clarifying non-actionable nature.

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, but the second sentence is dense yet information-rich, covering plans, limits, and shape details. Every part contributes valuable context, though the length and density slightly reduce scannability compared to a shorter alternative. No fluff, but the sentence could be broken for readability.

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 tool's complexity (5 params, output schema, annotations), the description is complete: it identifies the alias relationship, provides usage guidance, details access-tier behavior, and mentions pagination limitations. It also notes that this is descriptive data only, and the output schema covers return values, so no further explanation is needed.

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 tool description adds context about row caps and access tiers, which supports understanding of `limit` and `min_usd`, but it doesn't add per-parameter semantics beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool is a deprecated alias for whale_trades and describes its functionality: 'Live whale trades merged across 15 CEX venues plus on-chain DEX swaps (Ethereum, Base, Arbitrum), newest first.' This is a specific verb+resource with explicit distinction from sibling tools by labeling it an alias and directing users to prefer whale_trades.

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?

Explicitly says 'Deprecated alias for whale_trades, kept so existing clients keep working. Prefer whale_trades.' This gives clear when-to-use and alternative guidance. Additionally, it details when keyless vs paid limits apply, helping users decide whether to use this tool for low-volume vs high-volume needs.

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

whale_tradesWhale trades feedA
Read-onlyIdempotent
Inspect

Live whale trades merged across 15 CEX venues plus on-chain DEX swaps (Ethereum, Base, Arbitrum), newest first. Keyless calls get the free shape (BTC/USD + $1M+ CEX trades live, other pairs delayed 15 min, DEX swaps $250K+) and up to 50 rows; a paid developer plan lifts the shape to every pair with no delay and up to 500 rows here (deeper pages on the REST API). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one coin, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. One symbol, not a list. Omit for every coin.
pairNoAlias for coin.
limitNoMax rows returned. Capped at 50 keyless and 500 on a developer plan; asking for more returns the cap, and the payload says so in `capped`.
sourceNoWhich markets to read: cex for the 15 streamed exchanges, dex for on-chain swaps on Ethereum, Base and Arbitrum, all for both merged. Defaults to all.
min_usdNoSmallest trade to return, in US dollars, for example 5000000 for $5M and up. Omit for everything already large enough to count as whale-sized. Keyless calls hold on-chain swaps to $250K and up regardless. A size filter runs after the fetch, so scan_capped in the payload states whether the search reached its own ceiling and older matches may exist.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin filter that was applied, or null for every coin.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
countNoHow many rows this reply carries.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
sourceNoWhich markets were read: cex, dex or all.
tradesNoThe matching trades, newest first. A CEX row carries pair, exchange, price, size and side; an on-chain row carries the token, the wallet and the dollar size. Every row carries source.
coveredNoFalse when the coin asked for is not one this feed streams, so nothing was searched. That is different from a quiet market.
matchedNoHow many trades matched the filters before the row cap was applied.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
scan_noteNoSays the search stopped at its ceiling, so this is not the complete set for the window.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
scan_cappedNoTrue when the search hit its own depth ceiling, so older matches may exist that were never looked at.
scanned_rowsNoHow deep the search went before filtering. Present only when a coin or size filter ran.
Behavior5/5

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

Despite annotations already indicating read-only and idempotent behavior, the description adds substantial detail about rate limits (50 rows keyless, 500 paid), delayed data for non-BTC pairs, minimum trade thresholds for DEX swaps, and the 'capped' signal. It also disclaims 'Descriptive market data only.' 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?

The description is three sentences, with the core function in the first sentence, plan limitations in the second, and a clear disclaimer in the third. Every sentence adds value, and the information is well-structured and 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?

Given the tool has an output schema and strong annotations, the description covers the essential context: data sources, ordering, plan-based limitations, and the read-only nature. It does not explicitly address pagination behavior beyond row caps, but the schema's 'capped' description covers that. Overall, it is sufficiently complete for a complex 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?

All five parameters have descriptions in the schema, so baseline is 3. The tool description adds some context about the 'free shape' and row caps that relate to parameters, but most of this is repeated in the schema (e.g., limit cap, DEX swap threshold). It does not significantly enhance parameter understanding 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?

The description clearly states the tool aggregates live whale trades from 15 CEX venues plus DEX swaps on three chains, with newest first. While the scope is specific, it does not explicitly differentiate from sibling tools like whale_tape or onchain_whales, so it falls 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?

The description provides context about free vs paid plan limitations and data delays, which implies when it might be useful, but it does not explicitly state when to use this tool over alternatives like onchain_whales or whale_radar. No exclusions or alternative recommendations are given.

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

Discussions

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

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources