Coinversaa Pulse
OfficialCoinversaa Pulse is an MCP server providing crypto intelligence for AI agents, enabling deep analysis of 710K+ Hyperliquid wallets, 1.8B+ trades, behavioral cohorts, and live market data through 29 tools.
Trader Intelligence
Access global stats (total traders, trades, volume, PnL) and market overviews (live prices, funding rates, open interest for every trading pair)
Discover top traders via leaderboards sortable by PnL, win rate, volume, score, or risk-adjusted returns
Find hidden gem traders filtered by win rate, PnL, and trade count
Identify the most actively traded coins, biggest winning/losing trades, and recent large trades
Get top traders for a specific coin
Trader Profiles
Full due diligence on any wallet: PnL, win rate, profit factor, and tier classification
Compare 30-day vs. all-time performance, day-by-day stats, and per-coin P&L breakdowns
View recent trades (copy-trading signals), historical closed positions with entry/exit prices and hold duration, and aggregate stats (avg hold time, scalper vs. swing trader classification)
Cohort Intelligence
Analyze behavioral tiers (e.g.,
money_printer,leviathan,giga_rekt,shrimp) across 710K+ walletsSee live positions held by any cohort, recent trades, historical performance trends, hourly bias snapshots, and daily performance data
Live Market Data
Current mark prices, open positions for any wallet, order book depth, and historical hourly open interest
Real-Time Analytics
Liquidation heatmaps, global or per-coin long/short ratios (with up to 7 days of history), per-cohort long/short bias on any coin, and recently closed positions across all traders
Advanced Filtering & Output
Filter by time windows, coin symbols, trade counts, PnL thresholds, hold durations, and notional values
All tools support optional
useToonFormatfor compact, token-efficient output optimized for AI consumption
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Coinversaa PulseWhat are the top 5 traders on Hyperliquid by PnL?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Coinversa Pulse — MCP Server
Crypto intelligence for AI agents. Query the full Hyperliquid wallet universe, indexed trade history with PnL attribution, behavioral cohorts, and live market data through any MCP-compatible client. Call pulse_global_stats to see exact current coverage (tracked wallets, indexed trades, volume, PnL, data window).
Now with HIP-4 outcome contracts and builder dex support — inspect prediction-market style outcome contracts, settlements, commodities (gold, silver, oil), stocks (TSLA, AAPL), and perps across 8 dexes and 369+ markets.
What's new in 0.12.0
L4 order book tools and dataset coverage. Five more tools, and full parity with the hosted connector at https://mcp.coinversa.ai/mcp.
New tool | What it answers |
| "What does the resting book for coin X look like right now — depth, spread, imbalance?" |
| "Where is the resting size stacked, level by level?" |
| "Which wallets are holding the largest resting orders, and on which side?" |
| "Where are the trigger orders clustered that a move would sweep?" |
| "What window does each dataset cover, and how fresh is it?" |
Tool count: 103 → 107 registered, 106 advertised (see below).
Also in 0.12.0:
builder_heatmapis withheld by default. Its upstream cannot answer inside the client timeout until the hourly rollup is backfilled, so advertising it only produced timeouts. It is still built in: setCOINVERSAA_HIDDEN_TOOLS=(explicitly empty) to advertise everything, or name a different comma-separated list to withhold other tools. Leaving the variable unset withholdsbuilder_heatmap.pulse_market_overviewremoved. It was a deprecated alias forlist_markets, which is the canonical market-discovery tool.Descriptions and parameters resynced with the hosted connector. Twenty tool descriptions and seven input schemas had drifted;
live_mark_dislocations,pulse_cohort_bias_history,pulse_cohort_performance_daily,hip4_outcomes,hip4_trader_outcomesandpulse_lifecyclegained the paging and filter parameters the hosted connector already had, andlive_coin_risk_historygainedinclude.
Related MCP server: cerebrus-pulse-mcp
What's new in 0.11.1
Builder user-lifecycle, journey, heatmap, and order-intent analytics. 4 more tools over the same builder-fee data, covering where a builder's users stand today, how fast it monetizes a new wallet, when its flow actually trades, and what its users intend at order placement.
New tool | What it answers |
| "How fast and how unevenly does builder X monetize a new user?" |
| "How many of builder X's users are still active, and how many did a rival take?" |
| "What hours does builder X's volume peak, and when is it safe to ship?" |
| "Do builder X's users place stops and take-profits, and how much of their order flow actually fills?" |
Tool count: 99 → 103.
Also in 0.11.1:
Tool titles and annotations — every tool now carries a human-readable
titleand MCP annotations (readOnlyHint: true,destructiveHint: false,idempotentHint: true,openWorldHint: true), so clients can label the tools and treat them as read-only without prompting.Hosted connector parity — this package now ships exactly the tool set served by the hosted OAuth endpoint at
https://mcp.coinversa.ai/mcp. The obsolete header-authenticated HTTP entrypoint that used to live in this repo has been removed; see Quick Start for the two supported ways to connect.
What's new in 0.11.0
Builder analytics — 8 new tools (91 → 99). The Hyperliquid builder-code economy (the fees frontends, wallet apps, bots, and builder dexes earn on routed order flow) is now a first-class tool family:
builder_leaderboard— builders ranked by exact on-chain ledger revenue, with attributed volume/users and prev-window deltas (Starter)builder_profile— one builder: revenue, daily series, top coins, profitable-user share (Starter)builder_traders— wallets trading via a builder, with exchange-wide cohort tiers (Pro)builder_fills— individual attributed fills through a builder, perp/spot/HIP-4 (Pro)builder_cohorts— a builder's user base split by behavioral tier (Pro)builder_retention— monthly new-user retention triangle (Pro)builder_overlap— which other builders share this one's users (Pro)trader_builders— every builder one wallet trades through, by fees paid (Starter)
Revenue is computed from Hyperliquid's own cumulative builder-fee ledger
(reconciled on-chain); fill-level detail comes from order→fill attribution
with honest coverage caveats in every response (dataNotes). Ask your agent
"which frontends do MetaMask's traders also use?" — no other data source
can answer that.
What's new in 0.10.0
Dual-vocabulary cohort tiers. New canonical tier slugs accepted everywhere
a tier is an input — PnL tiers (apex, sharps, grinders, scrapers,
crowd, bleeders, trapped, blown_out) and weight-class size tiers
(heavyweights … strawweights). Legacy slugs (money_printer,
smart_money, …) remain valid indefinitely; responses are unchanged. No
breaking changes.
What's new in 0.9.0
Entity resolution, tier-aware sessions, and chain-verified answers.
New tool | What it answers |
| "Who owns this wallet — and what is their REAL combined book across every sub-account?" |
| "Top traders deduped by OWNER, not wallet — a fund running 35 sub-accounts shows as one entity." |
| "What plan is this API key on, what are the limits, and what does upgrading unlock?" |
| "24h volume — total and per dex (builder dexes are ~43% and most trackers miss them)." |
| "Open interest by dex with long/short split." |
| "How many wallets traded in the last 24h?" |
| "How many positions are open right now, per dex?" |
| "Who made and lost the most in the last 24h, exchange-wide?" |
Also in 0.9.0:
Tier-aware errors — a tier-gated or rate-limited request now explains the caller's tier, the required tier, and carries a direct upgrade link. (Fixes valid free-tier keys being told their key was "rejected" on Pro endpoints.)
Verified-vs-chain stamps — entity responses carry the chain-state block they were last reconciled against.
Tool count: 83 → 91.
What's new in 0.8.0
Position lifecycles, execution quality, and trader archetypes. v0.8.0 adds 28 tools built on a fully re-derived position-lifecycle dataset — every open→close cycle reconstructed from on-chain fills, now carrying MAE/MFE (the worst adverse and best favorable price each position ever saw). This unlocks execution-quality analysis, not just PnL.
New tool | What it answers |
| "Show me every open→close position for this wallet, with entry/exit and hold time." |
| "What are this wallet's position-level stats — win rate, avg hold, biggest win/loss?" |
| "Break down lifecycle 12345 into every fill that built and unwound it." |
| "Give me a quick wallet brief before a deeper dive." |
| "How far underwater did each of this wallet's positions go before working?" |
| "Which winners survived the deepest drawdowns before recovering?" |
| "Which exits captured most of the maximum favorable move?" |
| "What were the most catastrophic individual liquidations?" |
| "Who blew up and recovered — and who never did?" |
| "Who is profitable across multiple distinct months, not just lucky once?" |
| "Who extracts the most PnL per dollar of fees paid?" |
| "Who had one huge month then gave it back?" |
| "Who just showed up and is already trading big notional?" |
| "Who is the top earner of each coin?" |
| "Who profits most by liquidating others?" |
| "Which coins blow people up most often?" |
| "Per coin, how big are the winner vs loser profit pools?" |
| "What UTC hour of close is most profitable?" |
| "How concentrated is alpha — do the top 1% take everything?" |
| "Do scalpers or swing traders make more money?" |
| "Head-to-head: who is the better trader, A or B?" |
| "What are wallets that are printing RIGHT NOW (last-30-day tier) doing — positions, trades, top lifecycles, concentration?" |
| "What just closed exchange-wide right now?" (global feed; successor to |
The legacy closed-position tools (pulse_trader_closed_positions, pulse_trader_closed_position_stats, pulse_recent_closed_positions) are kept for backward compatibility but superseded by the lifecycle tools, which read the corrected position_lifecycles_full table (more history, MAE/MFE, spot).
Tool count: 55 → 83. An API key is required for every tool; backend tiering determines which tools and limits are available.
What's new in 0.7.0
HIP-4 outcome contract intelligence. v0.7.0 adds 12 tools for discovering active outcomes, reading question metadata, inspecting settlements and recent fills, tracking daily volume, ranking outcome traders, measuring outcome/perp overlap, and joining outcome holders to their currently open perp positions on the same underlying asset.
New tool | What it answers |
| "What outcome contracts are active right now?" |
| "What is outcome 123 and what side tokens does it use?" |
| "How much volume/PnL has this outcome done across both sides?" |
| "Show me recent fills for this prediction market." |
| "What HIP-4 questions and named outcomes exist?" |
| "Which outcomes settled recently and which side won?" |
| "Is HIP-4 outcome volume growing day by day?" |
| "Which outcome contracts are most active?" |
| "Who are the top outcome traders?" |
| "What outcomes did this wallet trade?" |
| "How much overlap is there between outcome traders and perp traders?" |
| "Do outcome 25 traders currently have open BTC perp exposure, and is it aligned or hedged?" |
Tool count: 43 → 55. An API key is required for every tool; backend tiering determines which tools and limits are available. Get a key from coinversa.ai/developers.
What's new in 0.6.0
Canonical cross-market asset taxonomy. The same underlying asset can appear under different tickers on different venues (e.g. GOLD on xyz, PAXG on native Hyperliquid — both track gold). v0.6.0 added 3 tools that resolve synonyms server-side and aggregate across venues, plus a ground-truth OI tool:
New tool | What it answers |
| "What assets are available? Which are listed on 2+ venues?" |
| "Where does GOLD trade? Is PAXG the same as GOLD?" |
| "Is gold more crowded on xyz or hyna? Do dexes disagree on BTC direction?" |
| "What does Hyperliquid itself report for BTC OI — do our numbers match?" |
Synonyms baked in: PAXG → GOLD, XAUT → GOLD, XAGT → SILVER. Prefix grouping (BTC ≡ flx:BTC ≡ hyna:BTC) works automatically.
Other 0.6.0 housekeeping: default API URL points at production; removed stale hard-coded "710K+ wallets / 1.8B+ trades" marketing figures (call pulse_global_stats for current coverage); pulse_market_overview kept as a deprecated alias for the canonical list_markets.
Quick Start
There are two ways to connect. Both expose the same 106 read-only tools available by default and both require a Coinversa API key (cvsa_...) — there is no keyless tier.
Method | Where | Auth | Best for |
Hosted Remote MCP (recommended) |
| OAuth 2.1 in the browser — no key handling in the client | Claude.ai, Claude Desktop, Claude Code, Cursor, ChatGPT, Perplexity, any Streamable HTTP client |
Local stdio MCP (this package) |
|
| Codex and other stdio-only clients, air-gapped setups, development |
The canonical, always-current client guide lives at docs.coinversa.ai/mcp/setup. The snippets below mirror it.
Hosted Remote MCP (OAuth)
Paste the URL into your client and leave every auth/header field empty. The client discovers the OAuth flow automatically and opens a Coinversa authorization page in your browser. There you either:
click Sign in / Sign up & get a key — the developer portal opens in a popup, you pick (or auto-create) a key, and a one-time connect code is handed back to the authorization page; the raw key never reaches the MCP server in this path — or
paste an existing
cvsa_key directly.
Click Authorize and you are connected. New accounts get 14 days of Pro, no credit card. Revoking a key in the developer portal instantly disconnects every agent that authorized with it.
Claude.ai (web)
Open claude.ai/customize/connectors?modal=add-custom-connector.
Name:
Coinversa— URL:https://mcp.coinversa.ai/mcp. Leave the auth fields empty.Click Add, then Connect; sign in on the Coinversa page and click Authorize.
In a new chat ask: "What are the global trading stats from Coinversa Pulse?" — Claude should call
pulse_global_stats.
Claude Desktop
Claude Desktop speaks stdio only, so use the mcp-remote shim, which bridges stdio ↔ HTTP and handles the OAuth dance. Edit your config file:
OS | Path |
macOS |
|
Windows |
|
Linux |
|
{
"mcpServers": {
"coinversa": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.coinversa.ai/mcp"]
}
}
}Fully quit and reopen Claude Desktop. On first connection mcp-remote opens the Coinversa authorization page in your browser — sign in and click Authorize.
Cursor
Cursor supports HTTP MCP servers natively. Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"coinversa": {
"url": "https://mcp.coinversa.ai/mcp"
}
}
}Restart Cursor and approve the authorization prompt in your browser. The one-click Install in Cursor deeplink at developers.coinversa.ai/connect works too.
Claude Code
claude mcp add --transport http coinversa https://mcp.coinversa.ai/mcpThen run /mcp inside Claude Code and choose Authenticate for coinversa; the browser flow is the same as above.
ChatGPT, Perplexity, and other remote clients
Add a custom connector / remote MCP server with URL https://mcp.coinversa.ai/mcp and no headers. The client will open the Coinversa authorization page on first use.
Local stdio MCP (npx + API key)
For stdio-only clients (for example Codex) or when you would rather hold the key yourself, run this npm package locally. Get a key from the developer portal.
{
"mcpServers": {
"coinversa": {
"command": "npx",
"args": ["-y", "@coinversaa/mcp-server@0.12.0"],
"env": {
"COINVERSAA_API_KEY": "cvsa_your_key_here"
}
}
}
}Or from a shell:
COINVERSAA_API_KEY=cvsa_... npx -y @coinversaa/mcp-server@0.12.0This runs the same tools locally over stdio, authenticated by the env key instead of OAuth. The stdio server exits at startup if COINVERSAA_API_KEY is missing. No cloning, no building — npx handles everything.
Verify it works
Ask the agent: "Use Coinversa Pulse to show me the top 5 traders on Hyperliquid by total PnL this week." You should see a pulse_leaderboard call with ranked addresses. pulse_my_plan shows which plan the connected key is on and what each tier unlocks. If the agent reports a 401, the authorization expired or the key was revoked — reconnect the connector and it will reopen the authorization page.
Hosted Remote MCP
Endpoint: https://mcp.coinversa.ai/mcp — Streamable HTTP, stateless. Each POST /mcp carries one JSON-RPC request (or batch) and gets its response on that connection; there are no server-side sessions to resume, so GET /mcp and DELETE /mcp return 405 Method Not Allowed. There is no SSE endpoint.
Endpoint | Method | Purpose |
|
| MCP Streamable HTTP endpoint (requires a valid OAuth access token) |
|
| Health check — returns |
|
| OAuth 2.1 authorization-server metadata (RFC 8414) |
|
| Protected-resource metadata (RFC 9728) — this is what clients follow from the |
|
| Authorization endpoint; renders the consent page |
|
| Token endpoint ( |
|
| Dynamic client registration (RFC 7591) |
|
| Token revocation (RFC 7009) |
The hosted server is operated by Coinversa and calls the first-party Coinversa API at https://api.coinversa.ai on your behalf, with the key you authorized. It is not a third-party proxy. It serves the same tool definitions as this package (same names, descriptions, input schemas, titles, and annotations — enforced by tests/toolParity.test.ts); this repository is the source of the npm stdio package, not of the hosted OAuth server itself.
Authentication
The hosted endpoint supports exactly one authentication method: OAuth 2.1 with PKCE (S256) and dynamic client registration. Every conformant client (Claude.ai, Claude Desktop via mcp-remote, Claude Code, Cursor, ChatGPT, Perplexity) handles this automatically from the URL alone.
How it works:
The client
POSTs to/mcpwithout a token, gets401with aWWW-Authenticateheader pointing at the protected-resource metadata, and discovers the authorization server from there.The client registers itself via
/register(DCR), then opens/authorizein the browser with a PKCE code challenge.You see the Coinversa consent page. You either paste a
cvsa_key or click Sign in / Sign up & get a key, which opens the developer portal in a popup and returns a short-lived, single-use connect code to the consent page. In the portal path the raw key never reaches the MCP server — it stores only a key reference that the backend resolves.The client exchanges the authorization code (plus PKCE verifier) at
/tokenfor tokens.
Token details:
Token | Format | Lifetime |
Access token | opaque, random | 1 hour |
Refresh token | opaque, random, rotated on every refresh | 90 days, sliding |
Tokens are stored hashed (SHA-256) on the server. Revoking the underlying API key in the developer portal invalidates every session authorized with it.
There is no header-based API-key authentication on the hosted endpoint. Requests that skip OAuth and put a raw cvsa_ key in an Authorization or custom header are rejected with 401. If you want to authenticate with a key you hold, run the local stdio server instead (see above), which reads COINVERSAA_API_KEY from its environment and sends it to the Coinversa API itself.
Privacy & data handling
The hosted server is a thin, stateless bridge between your MCP client and the Coinversa API.
What it stores (a SQLite database on Coinversa infrastructure):
OAuth client registrations created through dynamic client registration (client id, redirect URIs, client metadata).
Access and refresh tokens, stored as SHA-256 hashes — the plaintext token exists only in your client.
The API-key grant behind each token: either a key id (a reference the backend resolves; the key itself is never stored) when you connected through the developer portal, or the pasted key encrypted at rest with AES-256-GCM under a key-encryption key that lives outside the database.
What it never stores:
Conversation content. The server only ever sees the tool call in flight, not your chat.
Tool arguments or results beyond the lifetime of the request being served. Nothing is written to a database, and parameters are not logged.
Wallet private keys, seed phrases, signatures, exchange credentials, or any custody material — no tool asks for them and none exist.
The local stdio server stores nothing at all: it holds COINVERSAA_API_KEY in memory for the life of the process and forwards each tool call to the Coinversa API.
What tool calls send to the Coinversa API: the parameters you can see in each tool's schema — market symbols, public wallet addresses, cohort names, HIP-4 outcome ids, builder addresses, time windows — plus your API key for authorization and metering. Usage is counted against the key's plan; see Rate Limits.
Scope: every tool is read-only and is annotated as such (readOnlyHint: true, destructiveHint: false). The server cannot place orders, sign transactions, move funds, approve agents, or change any account setting on Hyperliquid or Coinversa.
Revocation: revoke the API key in the developer portal to disconnect every agent that authorized with it, or remove the connector in your client; clients may also call /revoke.
Policies: coinversa.ai/privacy · coinversa.ai/terms. Questions or data requests: chat@coinversaa.ai.
Connector directory
For directory reviewers and security teams, in one place:
Read-only. 107 registered tools, 106 available by default — all
GET-equivalent analytics; no write, trade, transfer, or account-mutation capability of any kind. No financial transactions are possible through this connector.Auth: OAuth 2.1, PKCE S256, dynamic client registration, refresh-token rotation. No API keys in headers, no static secrets in client config.
Data source: first-party — the server is operated by Coinversa and calls only Coinversa's own API at
api.coinversa.ai(plus, during sign-in, the Coinversa developer portal/backend). No third-party data brokers or LLM providers are called.Transport: Streamable HTTP (stateless
POST /mcp), TLS only.Data retention: hashed tokens, encrypted key or key id, DCR client records. No conversation or parameter logging.
Source: github.com/coinversaa/mcp-server (MIT) — the npm stdio package, with the same tool definitions the hosted connector serves.
Support: chat@coinversaa.ai · Privacy · Terms
Builder Dex Markets
Hyperliquid supports multiple builder dexes beyond the native perps exchange. Each dex has its own set of markets, collateral token, and symbol format.
Dex | What it trades | Collateral | Example symbols |
(native) | Core perps (crypto) | USDC | BTC, ETH, SOL, HYPE |
| Commodities, stocks, indices | USDC | xyz:GOLD, xyz:SILVER, xyz:TSLA |
| Perps | USDH | flx:BTC, flx:ETH |
| Perps | USDH | vntl:ANTHROPIC, vntl:BTC |
| Perps | USDE | hyna:SOL, hyna:BTC |
| Energy & commodities | USDH | km:OIL, km:NATGAS |
| Misc | USDC | abcd:BITCOIN |
| Stocks & equities | USDT0 | cash:TSLA, cash:AAPL |
Symbol format:
Native Hyperliquid symbols:
BTC,ETH,SOLBuilder dex symbols:
prefix:COIN— e.g.xyz:GOLD,cash:TSLA,hyna:SOL
Use the list_markets tool to discover all available symbols and which dex they belong to.
Backend trading note for agentic traders: Coinversaa's backend-signed Hyperliquid orders use an approved Hyperliquid agent wallet, not a vaultAddress. If the backend signer changes, re-approve that signer on Hyperliquid before submitting orders. Builder dex orders may also require unified account mode so USDC collateral is shared across supported dexes. For isolated-only markets, omitted marginMode now defaults to isolated; do not assume cross is available on builder dex symbols.
Frontend account-mode note: the app can now prepare a user-signed abstraction change via POST /api/v1/hyperliquid/prepare-abstraction, which lets the user enable or disable Unified Account mode without leaving Coinversa. Hyperliquid may still reject a transition for exchange-side reasons.
Cross-Market Asset Taxonomy
The same underlying asset can appear under different tickers on different venues (e.g. GOLD on xyz and PAXG on hyna both track gold). Coinversa exposes a canonical asset registry so you don't have to reinvent the grouping.
Canonical — the economic-exposure identifier (
GOLD,BTC,ETH).Symbol — what a venue lists it as (
xyz:GOLD,hyna:PAXG,BTC,flx:BTC).Synonyms (ticker → canonical):
PAXG → GOLD,XAUT → GOLD,XAGT → SILVER.
Use list_assets / list_asset / pulse_cross_market_asset for anything asset-level (venue availability, cross-venue OI, cross-venue bias disagreement). Use list_markets / market_price for single-venue queries.
How grouping works:
Same ticker across venues (
BTC,flx:BTC,hyna:BTC) → automatically grouped under canonicalBTC. Zero-config.Different ticker, same exposure (
PAXGandGOLDboth track 1 oz gold) → resolved via the synonym table above.Wrapped or staked variants (
WBTC,WETH,stETH,wstETH) → not aggregated by default. They have different risk profiles and liquidity; treat them as independent assets.
Example: what "GOLD" looks like aggregated (live snapshot, April 2026):
6 venues:
xyz:GOLD($149M OI dominant),PAXG(native HL, $39M),cash:GOLD,km:GOLD,flx:GOLD,hyna:GOLDnetBias: 0.27— moderately long across venuesbiasRange: 0.61— venues disagree strongly on strength of conviction (worth flagging in any answer)synonyms: ["GOLD", "PAXG"]— confirms PAXG was correctly merged into canonical GOLD
Numbers are illustrative — call pulse_cross_market_asset with canonical: "GOLD" for current values.
Backend dependency
The 3 asset tools call /api/public/v1/assets* endpoints on the production Coinversa backend (https://api.coinversa.ai). Self-hosted or forked setups need to run a backend that exposes these routes; see the Coinversa backend repo for the reference implementation.
Available Tools (106)
All of them require an API key. The MCP registers 107 tools and advertises 106 by default (builder_heatmap is withheld — see What's new in 0.12.0), and the Coinversa API enforces access by key tier. Free API keys can use public/discovery routes, while Starter, Pro, and Enterprise keys unlock deeper trader, HIP-4, risk, historical, and official OI tools.
Risk Tools Freshness
Syncer-backed risk tools such as live_risk_overview, live_coin_risk_snapshot, live_coin_risk_history, live_mark_dislocations, live_recent_liquidations, live_liquidation_summary, live_oi_history, and live_cohort_bias_history are best treated as beta recent-intelligence tools. For venue ground-truth OI, live_official_oi pulls directly from Hyperliquid's Info API as a cross-check.
Best for research, LLM training, liquidation analysis, OI trend work, and crowding detection
Best queried over recent windows like
7dor30dFreshness depends on sync coverage and may lag real time
Do not treat them as guaranteed live execution truth or exact historical accounting
For market_recent_candles, keep requests short and recent. The MCP tool intentionally caps one-minute candle responses at 720 rows (12h) so agents do not pull massive minute-bar dumps in a single call.
How AI Agents Use The Risk Tools
These risk tools are meant to help an AI answer market-structure questions clearly, not just dump raw rows.
Goal | Best tools | Questions an AI can answer |
Detect risk now |
| "What looks fragile right now?", "Is BTC crowded?", "Which coin is closest to forced unwinds?" |
Explain recent stress |
| "Where did forced unwind activity hit?", "Did basis stress show up before liquidations?", "What got liquidated over the last 30 days?" |
Track regime change |
| "Did OI build into this move?", "Were smart-money cohorts rotating first?", "How did this setup become fragile over time?" |
In practice, a Claude-style agent can use them to move from:
raw question: "What do you think about BTC?"
better answer: "BTC OI has been building, liquidations picked up, smart-money bias faded, and basis stress widened late in the move."
Pulse — Trader Intelligence
Tool | Description |
| Total traders, trades, volume, PnL across Hyperliquid — call this for current coverage numbers |
| Canonical market discovery — every symbol with dex, price, volume, funding rate, OI |
| Deprecated alias for |
| Top traders ranked by PnL, win rate, volume, score, or risk-adjusted returns |
| Underrated high-performers most platforms miss |
| Most actively traded coins ranked by volume and trade count |
| Biggest winning or losing trades across all of Hyperliquid |
| Biggest trades in the last N minutes/hours |
| Top traders for a specific coin |
Assets — Canonical Cross-Market (v0.6.0)
One asset, many venues, many tickers. Server-side resolution of synonyms (PAXG↔GOLD, XAUT↔GOLD, XAGT↔SILVER) and venue prefixes (BTC ≡ flx:BTC ≡ hyna:BTC). All three require an API key.
Tool | Description |
| Directory of canonical assets — every asset grouped by economic exposure, with venues, synonyms, and a cross-market flag. Use |
| Single canonical lookup with venue breakdown. Accepts synonyms — |
| Aggregated per-venue long/short/bias/OI for one asset, plus cross-venue totals and a |
HIP-4 — Outcome Contracts (v0.7.0)
Prediction-market style outcome contracts indexed from Hyperliquid. Outcome side coins use #<encoding> where encoding = 10 * outcomeId + side; side tokens use +<encoding>.
Backend tiering is enforced by the Coinversa API. "Free" below means a free API key is still required.
Tool | Tier | Inputs | Backend route | Returns / use it for |
| Free API key |
|
| Recently active outcomes with |
| Free API key |
|
| Detail for one outcome ID from mainnet launch onward. Returns the same outcome shape as discovery, including fallback side tokens if metadata is unavailable. |
| Starter+ |
|
| Two-sided aggregate: side 0/1 contracts, side notional USDH, total notional, realized PnL, fills, unique wallets, first/last traded. Use for "how big was this market?" and PnL/volume summaries. |
| Free API key |
|
| Recent real fills only, excluding settlement, pair-redeem, and auction-phase fills. Returns trade time, wallet, |
| Free API key | none |
| Hyperliquid |
| Free API key |
|
| Recent settlements with outcome ID, settlement time, winning side when determinable, winner/loser fill counts, total winner payout, and total loser loss. |
| Free API key |
|
| Daily trajectory since the requested cutoff: fills, unique trades, unique wallets, contracts, and notional USDH. Use for adoption/activity trend questions. |
| Free API key |
|
| Top outcomes by recent fill count, with metadata and side tokens when available. Use to rank current outcome-market activity. |
| Starter+ |
|
| Outcome trader leaderboard: address, fills, distinct outcomes, total contracts, total notional USDH, and realized PnL. |
| Starter+ |
|
| One wallet's outcome history: outcome ID, side index, side token, fills, net shares, gross bought/sold USDH, realized PnL, first/last traded. Use for wallet-level outcome due diligence. |
| Pro+ |
|
| Counts HIP-4 outcome traders, perp traders, overlap count, and overlap percentage. Use to answer whether outcome activity is isolated or shared with perp traders. |
| Pro+ |
|
| Joins current net-positive outcome holders to currently open perp positions on the same underlying. Returns side-level overlap, long/short counts, net underlying position, notional, aligned vs hedge counts, prediction-native counts, and top wallets with signal labels. Use to answer whether outcome traders are directionally exposed, hedged, or prediction-native. |
Position Lifecycles — 0.8.0
The lifecycle tools are the preferred position-level surface for new agents. A lifecycle is one reconstructed open->close position, including scale-ins, scale-outs, realized PnL, fees, hold time, and liquidation state. Use the older closed-position tools only when you specifically need the legacy closed-position payload or global recent-closed feed.
Goal | Recommended tool |
Quick wallet read |
|
Wallet-level position stats |
|
Full wallet lifecycle history |
|
Drill into one position's fills |
|
MAE/MFE pain and exit timing |
|
Find trader archetypes |
|
Market-wide lifecycle structure |
|
Compare wallets |
|
Analyze currently-hot cohorts |
|
Builder Analytics — 0.11.x
Builders (frontends, wallet apps, bots, HIP-3 dexes) charge per-order builder fees on Hyperliquid. Revenue figures are exact, from the on-chain cumulative builder-fee ledger; volume/user/fill detail comes from order→fill attribution and slightly undercounts because trigger-order (stop/TP) fills are not yet attributed — every response carries a dataNotes explanation and a verified ledger-block stamp. Builder addresses are 0x plus 40 hex characters.
Tool | Tier | Description |
| Starter | Builders ranked by exact ledger revenue, with attributed volume/users/fills and prev-window deltas |
| Starter | One builder: revenue, daily series, top coins, profitable-user share |
| Starter | Every builder one wallet trades through, ordered by fees paid |
| Pro | A builder's attributed wallets with PnL, fees, volume, and all-time cohort tiers |
| Pro | Individual attributed fills through a builder (perp/spot/HIP-4) |
| Pro | A builder's user base split by behavioral tier |
| Pro | Monthly new-user retention triangle, last 12 months |
| Pro | Which other builders share this builder's active users |
| Pro | Revenue ramp of the trailing-year acquisition cohort: lifetime fees per wallet, whale concentration, days to peak / 50% / 75% of lifetime revenue |
| Pro | Lifetime user base split into active / cooling / switched / dormant / movedOn, plus true retention, churn, and competitive loss |
| Pro | Placement-plane intent: action and time-in-force mix, reduce-only share, stop/TP trigger breakdown, fill conversion |
Currently hidden, not counted above: builder_heatmap [Pro] — trailing 84 days as a 7×24 UTC weekday-by-hour grid of volume, fees, and fills. It is registered but withheld by default because its upstream cannot answer inside the client timeout until the hourly rollup is backfilled. Set COINVERSAA_HIDDEN_TOOLS= (explicitly empty) to advertise it.
Pulse — Trader Profiles
Tool | Description |
| Full due diligence on any wallet (PnL, win rate, tiers, profit factor) |
| 30-day vs all-time comparison with trend direction |
| Fast wallet briefing: lifecycle summary plus recent top wins and losses |
| Recent trades for any wallet — the copy-trading signal |
| Day-by-day PnL, win rate, and volume breakdown |
| Per-coin P&L breakdown (find a trader's edge) |
| Preferred 0.8 wallet position summary — wins/losses, liquidation count, hold time, fees, biggest win/loss |
| Preferred 0.8 lifecycle history — one reconstructed open->close position per row |
| One lifecycle by ID, including composing fills |
| Legacy closed-position payload; prefer |
| Legacy aggregate stats; prefer |
Pulse — Cohort Intelligence
Every tracked Hyperliquid wallet classified into behavioral tiers — unique data nobody else has. For the current tracked-wallet count, call pulse_global_stats.
PnL tiers (by profitability, best to worst):
Display name | Slug | Legacy slug (still accepted) |
Apex |
|
|
Sharps |
|
|
Grinders |
|
|
Scrapers |
|
|
The Crowd |
|
|
Bleeders |
|
|
Trapped |
|
|
Blown Out |
|
|
Size tiers (by volume, largest to smallest):
Display name | Slug | Legacy slug (still accepted) |
Heavyweights |
|
|
Cruiserweights |
|
|
Middleweights |
|
|
Welterweights |
|
|
Lightweights |
|
|
Featherweights |
|
|
Flyweights |
|
|
Strawweights |
|
|
Tool inputs accept both vocabularies (new slugs are normalized before the API call). API responses currently still emit legacy slugs (e.g. pnlTier: "money_printer").
Tool | Description |
| Behavioral tier breakdown across every tracked wallet |
| What the Apex / Heavyweights tiers are holding RIGHT NOW |
| Every trade a cohort made in the last N minutes/hours |
| Historical performance trends for any cohort |
| Historical hourly bias snapshots for all cohorts |
| Historical daily performance stats for all cohorts |
Market — Live Data
Tool | Description |
| Current mark price for any symbol (native or builder dex) |
| Open positions for any wallet |
| Bid/ask depth for any trading pair |
| Historical hourly open interest snapshots (notional USD) |
| Recent 1-minute candles for a market, capped to the last 12 hours to keep MCP responses practical |
Live — Real-Time Analytics
Tool | Description |
| Liquidation clusters across price levels — support/resistance signals |
| Exchange-wide risk snapshot: OI, leverage, crowding, near-liquidation exposure, and 7-day liquidation totals |
| Current single-coin fragility snapshot: OI, crowding, top positions, liquidation heatmap, and 7-day stress |
| Multi-lane history for a coin: OI, long/short, cohort rotation, candles, dislocations, and liquidation flow |
| Mark/oracle dislocation history for a coin — useful for spotting basis stress before or during unwinds |
| Real syncer liquidation events with wallet, coin, penalty fee, and closed PnL |
| Best liquidation summary tool: counts, totals, by-coin rollups, and timeline buckets |
| Global or per-coin long/short ratio with optional history |
| Net long/short stance for every tier on a given coin |
| Historical open interest for any coin or global — hourly snapshots up to 30 days (our derived OI) |
| Official per-dex OI pulled from Hyperliquid's Info API (venue ground truth, not derived) — hourly snapshots up to 30 days |
| How each cohort's long/short bias evolved over time — useful for tracking smart-money rotation |
| Positions just closed across all traders with entry/exit data |
Example Prompts
Once connected, try asking your AI:
"What are the top 5 traders on Hyperliquid by PnL?"
"Show me what the apex tier is holding right now"
"What are the biggest trades in the last 10 minutes?"
"What did wallet 0x7fda...7d1 trade in the last hour?"
"Find underrated traders with 70%+ win rate"
"Do a deep dive on wallet 0x7fda...7d1 — are they still performing?"
"Where are the BTC liquidation clusters?"
"Show me the exchange-wide risk overview on Hyperliquid this week"
"Which coin looks the most crowded right now?"
"Show me ETH liquidation events from the last 7 days"
"Give me BTC risk history with OI, liquidations, and cohort rotation"
"Show me BTC mark/oracle dislocations for the last 30 days"
"Are smart money traders long or short ETH right now?"
"Show me the biggest losses in the last 24 hours"
"What coins are most actively traded right now?"
"What's this trader's average hold time and position win rate?"
"What markets are available on the xyz dex?"
"Show me all gold and silver markets"
"What's the price of xyz:GOLD?"
"List all builder dex markets with their prices"
"What stocks can I trade on Hyperliquid?"
"Show me the last 240 one-minute candles for BTC"
"Is PAXG the same as GOLD? Which venues list it?"
"Show me every asset that trades on 2+ dexes"
"Total open interest on BTC across all dexes right now"
"Is ETH more crowded on HYNA or native Hyperliquid?"
"Do the dexes disagree on gold direction?"
"What does Hyperliquid's own Info API say BTC OI is — does it match our number?"
"Which HIP-4 outcome contracts are most active today?"
"Show me recent trades for outcome 123"
"Which HIP-4 outcomes settled recently?"
"Who are the top HIP-4 outcome traders this week?"
"For outcome 25, are Yes traders already long BTC or mostly prediction-native?"
"Did outcome traders overlap with perp traders over the last 7 days?"
Environment Variables
These apply to the local stdio server (npx -y @coinversaa/mcp-server@0.12.0). The hosted endpoint needs no configuration.
Variable | Required | Default | Description |
| Yes | — | Your API key (starts with |
| No |
| Override the API host. Only needed if you operate your own Coinversa backend (self-hosted or fork). |
Rate Limits
Rate limits are enforced by API-key tier:
Tier | Requests/min | Daily cap | Monthly cap |
Free API key | 30 | 1,000 | — |
Starter | 120 | 2,000 | 50,000 |
Pro | 600 | 20,000 | 500,000 |
Enterprise | Custom | Custom | Custom |
Rate limit headers are included in every response:
X-RateLimit-Limit: your configured limitX-RateLimit-Remaining: requests left in current windowX-RateLimit-Reset: seconds until window resetsX-RateLimit-Tier: your API-key tierX-RateLimit-Daily-Remaining: requests left today, when a daily cap applies
Development
This repository is the source of the @coinversaa/mcp-server npm package — a stdio MCP server whose entry is src/index.ts → createCoinversaServer() in src/coinversaServer.ts.
git clone https://github.com/coinversaa/mcp-server.git
cd mcp-server
npm install
npm run build
# run the stdio server against your key
COINVERSAA_API_KEY=cvsa_... node build/index.js
# or drive it with the MCP Inspector
npx @modelcontextprotocol/inspector build/index.js
# unit tests (bun) and typecheck
bun test
npx tsc --noEmitThe hosted OAuth connector at https://mcp.coinversa.ai/mcp is operated by Coinversa and is not built from this repository; it serves the same tool set.
What Makes This Different
This isn't a wrapper around a public blockchain API. Coinversa indexes Hyperliquid's clearinghouse directly and computes analytics that don't exist anywhere else:
Canonical cross-market taxonomy: one asset, many venues, many tickers.
list_assets/list_asset/pulse_cross_market_assetresolve synonyms (PAXG↔GOLD, XAUT↔GOLD, XAGT↔SILVER) and aggregate OI, bias, and positions across venues — server-side, no client grouping requiredBuilder dex markets: Access 369+ markets across 8 dexes — commodities, stocks, indices, and perps
Venue ground-truth OI:
live_official_oipulls directly from Hyperliquid's Info API, cross-checkable against our derived numbersBehavioral cohorts: every tracked wallet classified into PnL tiers (Apex to Blown Out) and size tiers (Heavyweights to Strawweights)
Live cohort positions: See what the best traders are holding in real-time
Real-time trade feed: Every trade by any wallet or cohort, queryable by time window
Liquidation heatmaps: Cluster analysis across price levels for any coin
Position lifecycle analytics: Reconstructed open->close lifecycles with hold duration, entry/exit VWAP, realized PnL, fees, liquidation state, and MAE/MFE execution-quality analysis
Hidden gem discovery: Find skilled traders that ranking sites miss
Open interest history: Hourly OI snapshots for any coin, up to 30 days back
Cohort bias history: Track how smart money, whales, and other tiers shifted long/short over time
Deepest Hyperliquid trade history available as an API: call
pulse_global_statsfor live coverage numbers (not a stale marketing figure).
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
Built by Coinversa
Available Tools
106 toolsbook_levelsOrder Book Levels (L4)ARead-onlyIdempotent
Answers: what does the depth ladder look like, with the detail L2 throws away? The top price levels per side, best-first, each with total size, order count, DISTINCT WALLET count and the age of the oldest order on it — so a level held by one wallet's single order is distinguishable from the same size spread across twenty. Example: 'is SOL's 3rd bid level real depth or one wallet?' — book_levels('SOL', depth=5) and read bids[2].wallets. Snapshot-derived: refreshed every 60 s, latest-only (no history), and as_of_height is the L1 block the answer is true at — check age_s before citing it. market_orderbook remains the aggregated L2 view; this is the L4 one. Coin is case-sensitive in the node's own spelling (BTC, xyz:GOLD, #28200) and is passed through unchanged — 'btc' will 404. Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin in the node's own spelling, CASE-SENSITIVE: BTC, HYPE, xyz:GOLD, cash:TSLA, #28200. Not normalized — 'btc' returns 404. Use list_markets to discover exact spellings. Spot pairs (names containing '/', e.g. PURR/USDC) are not addressable on this route. | |
| depth | No | Price levels returned per side. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover readOnly/idempotent/destructive, but the description adds substantial behavioral context beyond them: 60 s refresh cadence, latest-only with no history, the meaning of as_of_height at the L1 block, the caution to check age_s before citing, and the Pro-tier requirement. This is rich disclosure layered on top of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the answer to 'what does this provide' leads, followed by the example, then caveats. Every sentence carries information, though the em-dash-heavy prose is slightly heavy for the payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned fields (total size, order count, DISTINCT WALLET count, oldest-order age, as_of_height) and the freshness constraint. An agent has everything needed to call and interpret it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the schema already documents coin, depth, and useToonFormat, giving a baseline of 3. The description adds value by showing depth=5 in a worked example and pointing to bids[2].wallets, tying the parameter to the returned structure rather than merely restating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource (top price levels per side, best-first) and explicitly contrasts with the aggregated L2 view via 'market_orderbook remains the aggregated L2 view; this is the L4 one'. An agent can distinguish this from siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative (market_orderbook) and the condition selecting this tool, plus a concrete use case ('is SOL's 3rd bid level real depth or one wallet?'). The L2-vs-L4 routing is spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_stop_mapOrder Book Stop Map (L4)ARead-onlyIdempotent
Answers: where are the stops, and how much size fires if price gets there? Buckets every untriggered stop / take-profit order by distance from mid in 0.25 % steps, out to within_pct, reporting per bucket the count, size, reduce-only share, stop vs take-profit split and side split — plus totals below and above mid, the nearest trigger each side, and how many sit beyond the window. Example: 'what is stacked under BTC within 2 %?' — book_stop_map('BTC', within_pct=2) and read totals_below plus the negative buckets. Note totals_below / totals_above / nearest_* always cover EVERY trigger on the coin, while buckets is the within_pct window. Snapshot-derived: refreshed every 60 s, latest-only (no history), and as_of_height is the L1 block the answer is true at — check age_s before citing it. market_orderbook remains the aggregated L2 view; this is the L4 one. Coin is case-sensitive in the node's own spelling (BTC, xyz:GOLD, #28200) and is passed through unchanged — 'btc' will 404. Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin in the node's own spelling, CASE-SENSITIVE: BTC, HYPE, xyz:GOLD, cash:TSLA, #28200. Not normalized — 'btc' returns 404. Use list_markets to discover exact spellings. Spot pairs (names containing '/', e.g. PURR/USDC) are not addressable on this route. | |
| within_pct | No | Half-width of the bucketed window, in percent of mid. The stored map always covers ±10 %; this slices it. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial non-obvious traits: snapshot-derived, refreshed every 60s, latest-only with no history, as_of_height semantics, and an instruction to check age_s before citing. It also flags case-sensitivity ('btc' will 404) and the Pro-tier requirement — well beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but organized, leading with the question it answers and the summary, then the example, then the important window-vs-totals caveat and freshness notes. Nearly every sentence carries load, though the paragraph is long and could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a snapshot tool with no output schema, the description explains both what is returned and how to read it (totals vs buckets, nearest triggers, beyond-window counts) plus freshness (age_s, as_of_height) and addressability constraints. An agent has everything needed to call and interpret it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: the totals_below/totals_above/nearest_* fields always cover every trigger while `buckets` is limited to the within_pct window, which clarifies how the parameters interact with the output. The case-sensitivity and spelling guidance is largely repeated from the schema, capping it at 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a direct question the tool answers ('where are the stops, and how much size fires if price gets there?') then states the specific operation: bucketing untriggered stop/take-profit orders by distance from mid in 0.25% steps. It explicitly positions itself against the sibling market_orderbook ('the aggregated L2 view; this is the L4 one'), so an agent can distinguish them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete usage example ('what is stacked under BTC within 2%?' with the exact call and which fields to read) and clarifies the L4-vs-L2 relationship. It does not enumerate hard when-not conditions or other alternatives, but the context is clear enough to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_summaryOrder Book Summary (L4)ARead-onlyIdempotent
Answers: how deep and how lopsided is this book right now? Returns touch prices, spread in bps, and per side the size / order count / distinct wallet count within 0.5, 1, 2, 5 and 10 % of mid (nested bands, not rings), plus near- and far-band imbalance, the number of orders resting at the touch, their median age, and the share of them that are post-only. Example: 'is HYPE's bid side thinner than its ask side inside 1 %?' — book_summary('HYPE') and compare bid.bands vs ask.bands. Snapshot-derived: refreshed every 60 s, latest-only (no history), and as_of_height is the L1 block the answer is true at — check age_s before citing it. market_orderbook remains the aggregated L2 view; this is the L4 one. Coin is case-sensitive in the node's own spelling (BTC, xyz:GOLD, #28200) and is passed through unchanged — 'btc' will 404. Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin in the node's own spelling, CASE-SENSITIVE: BTC, HYPE, xyz:GOLD, cash:TSLA, #28200. Not normalized — 'btc' returns 404. Use list_markets to discover exact spellings. Spot pairs (names containing '/', e.g. PURR/USDC) are not addressable on this route. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
On top of the readOnly/idempotent/openWorld annotations, the description discloses that results are snapshot-derived, refreshed every 60s, latest-only with no history, that as_of_height is the L1 block of truth, and that age_s should be checked before citing. It also flags Pro-tier gating. The main omission is expected response shape, which is partly covered by the field enumeration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a long description but dense and front-loaded with the core question and the return enumeration before the caveats. Most sentences earn their place, though the coin-spelling warning is somewhat duplicative of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so by naming the bands, imbalance metrics, and touch statistics an agent will actually receive. Combined with the freshness and interpretation guidance, an agent has everything needed to call and correctly cite it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including the case-sensitive coin spelling, the 404 on 'btc', and the spot-pair exclusion. The description largely restates this, adding the nuance that the value is 'passed through unchanged', which is marginal. Baseline 3 applies when the schema carries the detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the exact question the tool answers ('how deep and how lopsided is this book right now?') and then enumerates the specific outputs: touch prices, spread in bps, per-side size/count/wallets in nested bands, imbalance, and post-only share. It explicitly distinguishes itself from the sibling 'market_orderbook' by labeling this the L4 view versus the aggregated L2 one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete worked example ('is HYPE's bid side thinner than its ask side inside 1 %?'), names the alternative tool and the condition that separates them (L4 vs L2), and states the refresh cadence and latest-only constraint so the agent knows when the answer is valid. Nothing about when to reach for this tool is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_whalesOrder Book Whales (L4)ARead-onlyIdempotent
Answers: who is sitting on this book, and where? Returns the largest resting orders (wallet, side, price, size, original size, distance from mid, tif, order type, how long it has rested) and the biggest wallets per side by total resting size. Example: 'is one wallet holding up the ETH bid?' — book_whales('ETH', limit=10) and check whether bid_wallets[0].size dominates. Wallet addresses join to the trader tools (pulse_trader_profile, pulse_trader_performance). Snapshot-derived: refreshed every 60 s, latest-only (no history), and as_of_height is the L1 block the answer is true at — check age_s before citing it. market_orderbook remains the aggregated L2 view; this is the L4 one. Coin is case-sensitive in the node's own spelling (BTC, xyz:GOLD, #28200) and is passed through unchanged — 'btc' will 404. Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin in the node's own spelling, CASE-SENSITIVE: BTC, HYPE, xyz:GOLD, cash:TSLA, #28200. Not normalized — 'btc' returns 404. Use list_markets to discover exact spellings. Spot pairs (names containing '/', e.g. PURR/USDC) are not addressable on this route. | |
| limit | No | How many orders and how many wallets per side to return. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/no-destruction, but the description adds substantial non-structured context: snapshot-derived, refreshed every 60s, latest-only with no history, as_of_height semantics, and the instruction to check age_s before citing. It also flags 'Pro tier' for access context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core question, then return fields, example, caveats, and tier in a logical order with essentially no filler. It is dense and somewhat run-on, but every clause carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description enumerates return fields, the snapshot/refresh model, the as_of_height/age_s staleness caveat, coin spelling, and tier. An agent has everything needed to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters, including the case-sensitivity rules and toon-format toggle. The description largely repeats the coin case-sensitivity guidance and only adds an example 'limit=10' usage, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific question it answers ('who is sitting on this book, and where?') and enumerates the returned fields (wallet, side, price, size, original size, distance from mid, tif, order type, rest time). It also explicitly separates itself from the sibling 'market_orderbook' as the L4 view rather than the aggregated L2 view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete when-to-use scenario ('is one wallet holding up the ETH bid?') with an example call and how to read the result. It names the alternative market_orderbook and the condition (L2 aggregate vs L4 individual orders) that selects between them, and routes to the trader tools for wallet joins.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
builder_cohortsBuilder CohortsARead-onlyIdempotent
Cohort composition of a builder's attributed users over the period (day/week/month): split by all-time exchange-wide profitability tier (pnlTiers) and size tier (sizeTiers), largest cohort first, each with users, share of totalUsers, builder fees paid, attributed volume, realized PnL, and fills. Tiers are LIFETIME labels emitted as legacy slugs (money_printer..giga_rekt / leviathan..shrimp) — not the 30d-rolling tiers the pulse cohort tools use — and wallets missing from the rollup appear under 'untracked' so per-tier user counts always sum to totalUsers. Attribution slightly undercounts versus ledger revenue (trigger-order fills — see the response's dataNotes). Use for 'is builder X's user base smart money or exit liquidity?' or 'do whales or shrimp pay most of its fees?'. Requires Pro tier. Availability: computed per builder on request and can exceed its 30-second budget on large builders; if it times out, retry once a minute later.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Attribution window: day, week, or month. | week |
| builder | Yes | Builder address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing that tiers are LIFETIME labels in legacy slug form, that untracked wallets are surfaced so per-tier counts sum to totalUsers, that attribution undercounts versus ledger revenue, and that the computation may exceed a 30s budget (retry once a minute later).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose in the first sentence and keeps caveats tight, though it is dense and packs several clauses (attribution, tiers, Pro tier, timeout) into a long paragraph. Efficient but not maximally scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden and does so: it enumerates the returned fields (users, share of totalUsers, builder fees, attributed volume, realized PnL, fills) and points to the response's dataNotes for attribution caveats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so period/builder/useToonFormat are already documented in the schema. The description adds conceptual meaning to the tier outputs (pnlTiers/sizeTiers slugs) but contributes little parameter-specific guidance beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource: the cohort composition of a builder's attributed users over day/week/month, split by all-time profitability tier and size tier. It explicitly distinguishes itself from siblings by noting it emits LIFETIME legacy-slug tiers rather than the 30d-rolling tiers used by the pulse cohort tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete motivating questions ('is builder X's user base smart money or exit liquidity?', 'do whales or shrimp pay most of its fees?') and states the Pro-tier prerequisite plus availability/retry behavior. It even contrasts with the alternative cohort tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
builder_fillsBuilder FillsARead-onlyIdempotent
Individual fills attributed to a builder (0x-hex address) within a lookback window (since, e.g. '6h' or '7d', clamped to 90d), optionally filtered to one exact coin (BTC, xyz:GOLD, @123 spot, #10010 HIP-4 outcome) or one wallet. Each fill: time, wallet, coin, marketType (perp|spot|hip4), side (BUY|SELL), price, size, USD volume, realized PnL, builderFeeUsd, tid, and the order id it attributes to (null if untracked). Trigger-order (stop/TP) fills are not yet attributed, so this feed slightly undercounts versus ledger revenue — see the response's dataNotes. Use for 'show me the flow going through frontend X right now' or auditing one wallet's activity via a builder. Requires Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Optional exact coin filter: BTC, xyz:GOLD, @123 (spot), #10010 (HIP-4). | |
| limit | No | Rows to return (max 500). | |
| since | No | Lookback window like '30m', '6h', '7d' (clamped to 90d). | 24h |
| offset | No | Pagination offset. | |
| address | No | Optional wallet filter (0x-hex address). | |
| builder | Yes | Builder address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses important limitations: trigger-order fills are not yet attributed, the feed undercounts versus ledger revenue, the lookback is clamped to 90d, and untracked order ids are null. It also points to dataNotes for further context. This is strong behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, leading with the core purpose, then filters, return fields, known limitations, use cases, and access requirements. Every sentence delivers new information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields (time, wallet, coin, marketType, side, price, size, USD volume, realized PnL, builderFeeUsd, tid, order id). It also covers caveats, authentication requirements, and filtering options, making the tool fully callable without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds useful meaning by interpreting the since parameter ('30m', '6h', '7d', clamped to 90d) and explaining coin filter variants (BTC, xyz:GOLD, @123 spot, #10010 HIP-4). It enriches rather than merely repeating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: returns individual fills attributed to a builder address within a lookback window. It clearly distinguishes itself from sibling builder tools by focusing on fills, their fields, and the builder attribution model.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases ('show me the flow going through frontend X right now' or auditing one wallet's activity via a builder) and notes the Pro tier requirement. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to select this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
builder_journeyBuilder JourneyARead-onlyIdempotent
How fast and how unevenly a builder monetizes the wallets it acquires (takes only the 0x-hex builder address — no other parameters): users and minFills, avgRevenueUsd and medianRevenueUsd of lifetime attributed builder fees per qualifying wallet, concentration (avg/median — 1 = evenly spread, higher = whale-skewed, 0 when the median is 0), daysToPeak, daysToHalfRevenue and daysToThreeQuartersRevenue as {avgDays, medianDays} measured from each wallet's first attributed fill to its single highest-revenue day and to 50% and 75% of its lifetime fees, and peakDayDistribution bucketing those wallets into under7d, from7To30d and over30d. NOT the lifetime user base builder_lifecycle covers: the universe is the TRAILING-YEAR acquisition cohort — wallets whose first builder-fee order via this builder fell within the last 365 days, with at least minFills (fixed at 3) lifetime attributed fills — computed per wallet then aggregated, so young cohorts' truncated series bias the day counts low; see the response's dataNotes. Use for 'how fast and how unevenly does builder X monetize a new user?'. Requires Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| builder | Yes | Builder address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which already declare read-only/idempotent/non-destructive), the description discloses the Pro-tier requirement, the fixed minFills=3 qualifying threshold, the per-wallet-then-aggregate computation, and the truncation bias that pushes day counts low, pointing to dataNotes. That is meaningful behavioral context the annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the core purpose and every clause carries metric, caveat, or routing information, which is defensible given the absence of an output schema. It is still a dense run-on that could be broken into scannable sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description responsibly enumerates the returned fields and their semantics (e.g., concentration=1 means evenly spread, 0 when median is 0), defines the cohort universe and window, and flags the bias, leaving no material gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both the builder pattern and useToonFormat, giving a baseline of 3. The description only restates that a 0x-hex builder address is taken and adds no format or value guidance beyond the schema; its claim of 'no other parameters' is also slightly loose given useToonFormat exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact population, metrics, and computations (avgRevenueUsd, medianRevenueUsd, concentration, daysToPeak/Half/ThreeQuarters, peakDayDistribution) for a specific resource — a builder's acquisition cohort. It explicitly distinguishes itself from the sibling builder_lifecycle by scoping to the trailing-year cohort.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies an explicit trigger question ('how fast and how unevenly does builder X monetize a new user?') and a 'NOT ... builder_lifecycle covers' exclusion, so the agent knows both when to use it and which sibling to pick instead. It also states the Pro-tier prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
builder_leaderboardBuilder LeaderboardARead-onlyIdempotent
Builders (HIP-3 dexes, frontends, bots) ranked by exact revenue from Hyperliquid's on-chain cumulative builder-fee ledger over the requested period. Each row carries join-attributed fill volume, distinct users, and fill counts — plus the same metrics for the immediately preceding window for deltas — the builder's most common requested fee rate over the last 7d of orders (feeTenthsBp, tenths of a basis point), and builderName from a curated registry (omitted when unknown). Attributed metrics slightly undercount versus ledger revenue because trigger-order fills (stop/TP) are not yet attributed — see the response's dataNotes; the 'verified' stamp gives the ledger block this data was reconciled against. Use for 'which builders earn the most?' or 'is builder X growing?'. Ledger history begins at the fee ledger's first on-chain entry: dataNotes states that date whenever a window predates it, and data_coverage (builder_ledger) reports it. Requires Starter tier or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows to return (max 100). | |
| offset | No | Pagination offset (window capped at 1000). | |
| period | No | Ranking window: day, week, or month. Prev-window deltas cover the same-length window immediately before. | week |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations by disclosing that attributed metrics undercount ledger revenue due to unattributed trigger-order fills, pointing to dataNotes, explaining the 'verified' stamp, and warning that ledger history begins at the first on-chain entry. This is the kind of caveat an agent cannot get from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the ranking definition comes first, followed by row contents, caveats, and usage. Every sentence carries distinct information, though the middle section is heavy enough to risk readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description enumerates returned fields (feeTenthsBp, builderName, prev-window metrics, dataNotes, verified stamp) and coverage behavior, giving the agent enough to interpret results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, offset, period, and useToonFormat are fully documented in the schema. The description adds response-field semantics but nothing new about the parameters themselves, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: builders ranked by exact revenue from the on-chain cumulative builder-fee ledger. It clearly distinguishes itself from siblings like builder_profile, builder_traders, and builder_fills by centering on revenue ranking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases ('which builders earn the most?', 'is builder X growing?') and a prerequisite ('Requires Starter tier or higher'). It does not explicitly name alternatives or when-not to use it, so it stops 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.
builder_lifecycleBuilder LifecycleARead-onlyIdempotent
Where every wallet that ever traded via this builder stands today (takes only the 0x-hex builder address — no other parameters): totalUsers split into five MUTUALLY EXCLUSIVE statuses that sum back to it, each {users, share} — active (attributed fill via THIS builder within 7d), cooling (within 30d but not 7d), switched (no fill here in 30d but at least one via a DIFFERENT builder in that window, detectable only with all-builder attribution), dormant (no fill via any builder in 30d, last fill here within 90d) and movedOn (no fill anywhere in 30d and none here in 90d) — plus trueRetention ((active+cooling)/totalUsers), churn ((dormant+movedOn)/totalUsers) and competitiveLoss (switched/totalUsers), which sum to 1, and competitiveLossFeesUsd, the builder fees those switched wallets paid to OTHER builders in the last 30d. LIFETIME universe on the ORDERS plane — every wallet that ever placed a builder-fee order via this builder, including ones whose orders never filled (they land in movedOn, or in switched if they filled via a DIFFERENT builder in the last 30d) — with only the status test reading recent attributed fills, so this is one snapshot of the whole historical user base rather than builder_retention's per-cohort monthly grid; see the response's dataNotes. Use for 'how many of builder X's users are still active, and how many did a rival take?'. Requires Pro tier. Availability: typically 1-15 seconds; can exceed its 30-second budget on the largest builders, in which case retry once a minute later.
| Name | Required | Description | Default |
|---|---|---|---|
| builder | Yes | Builder address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent safety, but the description adds substantial behavioral context: mutually exclusive statuses that sum to totalUsers, the LIFETIME universe on the ORDERS plane, the exact recency windows, whether unfilled wallets are included, and the fact that only the status test reads recent attributed fills. It also discloses tier requirements, latency, and retry behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is long and dense, but the length is largely justified by the need to define five statuses and several derived metrics. The purpose and sibling distinction are front-loaded, and every clause carries substantive meaning, though bullets or clearer segmentation would improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields and their relationships, including status definitions, retention/churn/competitiveLoss calculations, and competitiveLossFeesUsd. It also covers caveats, dataNotes, tier requirements, and operational latency, leaving little an agent needs to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the builder and useToonFormat parameters are already documented in the schema. The description reinforces the builder address format and notes that no other query parameters are accepted, but it does not add meaningful semantics beyond the schema and does not mention useToonFormat.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific resource and operation: a lifetime snapshot of every wallet that ever traded via a builder, with five mutually exclusive statuses and derived retention metrics. It explicitly distinguishes itself from builder_retention by contrasting a single historical snapshot with a per-cohort monthly grid.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete use case quote, states that only a 0x-hex builder address is accepted, notes Pro tier requirement, and provides availability and retry guidance. It also tells the agent when to prefer this over builder_retention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
builder_ordersBuilder OrdersARead-onlyIdempotent
What this builder's users INTEND at placement time, before anything fills (0x-hex builder address plus a day/week/month period): totalIntents — non-trigger order intents plus still-PENDING stop/TP placements, the actions denominator — an actions[] mix of {actionType, orders, share}, largest first except the 'trigger' pseudo-type which is appended last, over 'order' (plain placements), 'batchModify' (modify intents on an existing order) and 'trigger' (pending stop/TP placements), a tifs[] time-in-force mix of {tif, orders, share} over non-trigger intents ('unknown' covers market orders and older rows), reduceOnlyShare, a trigger breakdown (total, takeProfit, stopLoss, triggerMarket, triggerLimit, positionTpsl, standaloneTpsl, resolved, pending) and fillConversion {orders, filledOrders, share} — the share of non-trigger intents whose own oid took at least one attributed fill. Measured on the PLACEMENT plane, not the fill plane behind builder_fills and builder_traders, so orders that never filled still count; trigger placement history begins 2026-03-24, and a resolved placement is excluded from totalIntents and the 'trigger' action because it already surfaces as a plain 'order' row, while the trigger breakdown covers both statuses — see the response's dataNotes. Use for 'do builder X's users place stops and take-profits, and how much of their order flow actually fills?'. Requires Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Placement window: day, week, or month. | week |
| builder | Yes | Builder address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses important scoping details: orders that never filled still count, trigger history starts on 2026-03-24, resolved placements are excluded from totalIntents/trigger actions but included in the breakdown, and response dataNotes should be consulted. This goes well 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and runs long, but every clause carries functional information needed because there is no output schema. It is front-loaded with the intent question and uses dashes to separate logical sections, though it could be more readable as a structured list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the absence of an output schema, the description is remarkably complete: it explains the core metric, breakdown fields, exclusions, historical boundary, fill-conversion semantics, and points to dataNotes. An agent has enough to correctly invoke and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds contextual meaning around builder and period but does not add meaningful detail beyond the schema, and it does not mention useToonFormat. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool measures: placement-time intents for a builder's users, aggregated by period. It clearly distinguishes this from fill-plane tools by saying it is 'Measured on the PLACEMENT plane, not the fill plane behind builder_fills and builder_traders.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit use case: 'Use for do builder X's users place stops and take-profits, and how much of their order flow actually fills?' It also tells the agent when not to use it by contrasting with builder_fills and builder_traders, and notes the Pro tier requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
builder_overlapBuilder OverlapARead-onlyIdempotent
The top 10 OTHER builders this builder's active users also traded through in the period (day/week/month), ranked by shared users — i.e. which other frontends/bots/dexes this builder's audience also uses. Returns activeUsers (the share denominator: distinct wallets with attributed fills via this builder) and per row: the other builder's 0x address, curated builderName (omitted when unknown), sharedUsers, share of this builder's active users, and feesUsd those shared users paid to the OTHER builder in the period. Based on attributed fills, which slightly undercount (trigger-order fills — see the response's dataNotes). Use for 'who is builder X's closest competitor?' or 'where else does its audience trade?'. Requires Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Attribution window: day, week, or month. | week |
| builder | Yes | Builder address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral context beyond that: it explains the attribution denominator, caveats about trigger-order fills undercounting, omission of unknown builderName, and that shared users' feesUsd is what those users paid to the OTHER builder. It also flags the Pro tier requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: it front-loads the core purpose, then details the return shape, then includes caveats and use cases. Every sentence adds information an agent needs, and nothing is redundant with the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates fully by enumerating the returned fields (activeUsers, sharedUsers, share, feesUsd, builderName omission), explaining the denominator, and noting the undercounting caveat. It also gives clear selection guidance and tier requirements, making the tool callable correctly without further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for all three parameters, so the schema already documents period, builder, and useToonFormat. The description adds minimal parameter-level meaning beyond restating the day/week/month window and emphasizing the builder address context, which is not enough to raise the score above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource: it lists the top 10 OTHER builders whose frontends/bots/dexes this builder's active users also traded through, ranked by shared users. It clearly distinguishes this from sibling builder performance tools by focusing on audience overlap rather than the builder's own metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides use cases: 'who is builder X's closest competitor?' and 'where else does its audience trade?'. It does not name specific alternative tools or exclusion criteria, but the context is clear enough for an agent to select this over sibling builder tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
builder_profileBuilder ProfileARead-onlyIdempotent
Single-builder overview for a 0x-hex builder address: exact revenue from Hyperliquid's on-chain builder-fee ledger over the period (day/week/month), first/last fee accrual timestamps, distinct fee tokens, most common requested fee rate over the last 7d of orders (feeTenthsBp, tenths of a basis point), a daily attributed series (fees/volume/users/fills) with the biggest day highlighted, top coins by attributed volume, and how many of the period's attributed wallets are all-time profitable. Attributed metrics slightly undercount versus ledger revenue (trigger-order stop/TP fills not yet attributed — see the response's dataNotes); builderName comes from a curated registry, omitted when unknown. Returns 404 for addresses with no revenue in the fee ledger. Use for 'how is builder X doing?' or 'what do people trade on frontend Y?'. Requires Starter tier or higher. Availability: typically 10-25 seconds on large builders; the coin split (topCoins) may come back null with an explanation in dataNotes when the live pass exceeds its budget. Ledger history begins at the fee ledger's first on-chain entry (see data_coverage, builder_ledger).
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Aggregation window: day, week, or month. | month |
| builder | Yes | Builder address (0x...) | |
| topCoins | No | How many top coins (by attributed volume) to return (max 50). | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: 404 behavior for zero-revenue addresses, 10-25s latency on large builders, topCoins null-on-budget with dataNotes explanation, known undercounting vs ledger revenue, registry-sourced builderName omission, and ledger history scope. Annotations cover the safety profile, and the description layers on operational and data-quality traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and every clause carries information, but the entire definition is a single dense run-on paragraph mixing return values, caveats, latency, and coverage notes. It is information-rich rather than wasteful, yet structure and scannability suffer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must carry the return-value explanation, and it does thoroughly (revenue, timestamps, tokens, rate, daily series, top coins, profitability count, dataNotes caveats). For a complex analytics tool with a mandatory address parameter, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema: it explains feeTenthsBp units (tenths of a basis point), clarifies that topCoins may come back null, and reinforces the period window semantics. Genuine added value over the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('single-builder overview for a 0x-hex builder address') and enumerates exactly what is returned: ledger revenue, timestamps, fee tokens, fee rates, daily attributed series, top coins, profitable wallets. It is unmistakably distinct from builder_leaderboard, builder_fills, and the pulse_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete trigger phrasing ('how is builder X doing?', 'what do people trade on frontend Y?') plus a tier prerequisite (Starter+). It does not explicitly name a sibling alternative or a when-not-to-use condition, 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.
builder_retentionBuilder RetentionARead-onlyIdempotent
Monthly retention matrix for a builder's users (takes only the 0x-hex builder address — no other parameters): wallets are cohorted by the calendar month (YYYY-MM, UTC) of their first builder-fee order via this builder, and each cohort's activeWallets[k] counts wallets still active k months later, where 'active' = placed at least one builder-fee order that month (index 0 = the cohort month itself = newWallets). Covers the last 12 calendar months, oldest cohort first. Measured on the ORDERS plane — the order need not fill — so counts can exceed the attributed-fill user counts on builder_cohorts/builder_overlap; see the response's dataNotes for the attribution caveat. Use for 'does builder X retain users month over month, or churn them?'. Requires Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| builder | Yes | Builder address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even with strong readOnly/idempotent annotations, the description adds substantial behavioral detail: cohorting by first builder-fee order, the definition of active, index 0 = newWallets, 12-month window with oldest-first ordering, and the ORDERS-plane caveat. It also flags dataNotes and the Pro tier requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every substantive element earns its place, and the key purpose is front-loaded. It loses one point for the inaccurate parenthetical and for packing definitions into a long run-on sentence, though this is more a clarity issue than bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema available, the description supplies the essential response semantics: cohort key, activeWallets[k], newWallets, time range, ordering, and dataNotes caveat. An agent receives enough context to call the tool correctly and interpret the returned retention matrix.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3 would normally apply, but the description's emphatic claim 'no other parameters' contradicts the schema's optional useToonFormat parameter. This is actively misleading for invocation despite the useful note that the builder must be a 0x-hex address.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific deliverable ('Monthly retention matrix') and the exact question it answers, and differentiates itself from builder_cohorts/builder_overlap by calling out the ORDERS-plane measurement. The distinction is enough for an agent to select it over the sibling retention-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames the intended use as retention/churn analysis and points out when its counts will differ from the attributed-fill metrics on builder_cohorts/builder_overlap. This gives clear routing guidance to siblings without further inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
builder_tradersBuilder TradersARead-onlyIdempotent
Wallets that traded via a builder (0x-hex address) in the window, sortable by builder fees paid, volume, or realized PnL. Each row: wallet, realized PnL on its attributed fills, builderFeesUsd, volumeUsd, fills, latest equity (0 if untracked), and the wallet's ALL-TIME exchange-wide cohort tiers (pnlTier/sizeTier, emitted as legacy slugs like smart_money/whale; null if untracked) — lifetime labels, unlike the 30d-rolling tiers the pulse cohort tools classify by, so memberships can differ. Attributed fills slightly undercount versus ledger revenue (trigger-order stop/TP fills not yet attributed — see the response's dataNotes). Use for 'who are builder X's biggest fee payers?' or 'are smart-money wallets using this frontend?'. Requires Pro tier. Availability: this endpoint computes per builder on request and can exceed its 30-second budget on large builders; if it times out, retry once a minute later.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Ranking: builderFee (fees paid to the builder), volume, or pnl. | builderFee |
| limit | No | Rows to return (max 500). | |
| offset | No | Pagination offset. | |
| period | No | Attribution window: day, week, or month. | week |
| builder | Yes | Builder address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (read-only, idempotent, open-world), and the description layers on genuinely non-obvious behavior: per-builder on-request computation that can blow a 30s budget, retry guidance, attribution undercount vs ledger revenue, and the lifetime-vs-30d tier distinction that affects how memberships compare to cohort tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: what the tool returns comes first, then the caveats, then usage and availability. Every clause carries information, though the single long paragraph and nested parentheticals make it harder to scan than a short bulleted caveat block would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does so: it enumerates each row field, flags the dataNotes caveat, and documents the availability limit. An agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains the semantics of the emitted equity sentinel (0 when untracked) and the tier fields (legacy slugs, null when untracked) and why lifetime tiers differ from rolling ones. It does not add syntax beyond the schema for the enum params themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: wallets that traded via a given builder address within a window, with explicit ranking dimensions. It is clearly distinguishable from siblings like builder_fills (fill-level) or builder_leaderboard, and the two example questions pin the intent down.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete use cases ('who are builder X's biggest fee payers?', 'are smart-money wallets using this frontend?') plus a Pro-tier prerequisite and a timeout/retry rule. It stops short of naming an explicit alternative sibling to use instead when this tool is not the right fit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_coverageData CoverageARead-onlyIdempotent
Report the data window (start/end or latest row) and freshness stamp of each dataset behind this server, with the API route each figure came from — check window and freshness before relying on a historical range or citing a date. Datasets: trades (indexed trade history, /pulse/stats), builder_ledger (fee ledger + attribution coverage), census (chain-state stamp), hip4 (latest outcome fill), liquidations (risk-route availability/freshness), lifecycles (latest close; rolling 90-day window), cohort_history, book (L4 order-book rollups: coins covered, latest L1 height/time and age; snapshot-derived, refreshed every 60 s, no history). Where the API exposes no window start the dataset is listed with windowStart null and a note; no date is guessed. Sources are queried sequentially (the API's per-key burst allowance is small) and a failing source is reported in that dataset's notes rather than failing the call. Also returns server { version, hiddenTools, toolCount }. Free tier (some sources need a higher tier and then report the tier gate in notes).
| Name | Required | Description | Default |
|---|---|---|---|
| dataset | No | Narrow to one dataset. Omit for all. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld/idempotent annotations, the description discloses rich operational behavior: sources queried sequentially due to a small per-key burst allowance, a failing source reported in notes rather than failing the call, no date ever guessed, book snapshots refreshed every 60 s with no history, and free-tier gating surfaced in notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose before the dataset inventory, and every clause carries information. It is dense and parenthetical-heavy, reading as one long paragraph, so it is effective rather than elegant, but nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe returns, and it does: per-dataset window fields (with windowStart null + note when unavailable), freshness stamps, source notes, and the server { version, hiddenTools, toolCount } object. An agent has everything needed to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), but the description goes further by glossing each opaque enum value — e.g. 'builder_ledger (fee ledger + attribution coverage)', 'census (chain-state stamp)', 'book (L4 order-book rollups ... no history)' — which the bare enum cannot convey. useToonFormat is left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb+resource pair ('report the data window and freshness stamp of each dataset behind this server') and adds provenance (API route per figure). It is unmistakably a meta/diagnostic tool, clearly separable from the analytical siblings like trades, liquidations or cohort tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger: 'check window and freshness before relying on a historical range or citing a date.' That is clear when-to-use guidance. It does not name a when-not condition or a competing sibling, which keeps it below a 5, though no true alternative tool exists in the roster.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_cross_product_overlapHIP-4 Cross-Product OverlapARead-onlyIdempotent
Measure overlap between HIP-4 outcome traders and perp traders over a recent window. Returns outcome trader count, perp trader count, overlap count, and overlap percentage. Requires a Pro-or-higher key.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look-back window in days. Default 7, max 30. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds valuable context beyond these by stating the Pro-or-higher key requirement and summarizing the returned counts. This auth constraint is important for an agent deciding whether the tool is callable in the current context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. It front-loads the core purpose, then lists the key returned values, then states the access requirement. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two optional parameters, and both are fully documented in the schema. The description covers the output semantics, the access requirement, and the cross-product scope clearly enough. Since no output schema exists, the description's mention of returned counts and percentage provides the needed return-value context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters, including defaults and constraints, at 100% coverage. The description does not add much parameter-specific meaning beyond the schema, but it does clarify that the tool is window-based and returns overlap-related counts, which aligns with the 'days' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Measure overlap') and a precise resource combination: HIP-4 outcome traders versus perp traders. The tool name and description together clearly distinguish it from sibling tools like pulse_compare or builder_overlap, since the cross-product scope is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: an agent can infer this tool is appropriate when overlap metrics between HIP-4 outcome traders and perp traders are requested. However, the description does not explicitly state when to prefer this tool over related siblings or provide exclusions, leaving some routing ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_daily_volumeHIP-4 Daily VolumeARead-onlyIdempotent
Get daily HIP-4 volume trajectory: fills, unique trades, unique wallets, contracts, and notional USDH by day. Use for outcome-market activity trends. HIP-4 fills are indexed from mainnet launch (2026-05-02; the API clamps every look-back to it) — see data_coverage for freshness.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days back from today. Default 14, max 60. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful behavior the schema cannot express: HIP-4 fills are indexed from mainnet launch 2026-05-02 and the API clamps every look-back to that date. It stops short of describing response shape or truncation behavior, which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the payload contents before the usage cue and the data-coverage caveat. Every clause carries information an agent needs; nothing is restated from the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, no-output-schema tool the description compensates well by naming the returned metrics and warning about the launch-date clamp. The only remaining gap is expected response structure/pagination, which is minor given the annotations and the small 2-parameter surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are fully documented in the schema (days default/max, useToonFormat default). The description adds only 'by day' granularity and does not elaborate on the 1–60 day clamp or the toon-format toggle, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get daily HIP-4 volume trajectory') and enumerates the exact measures returned: fills, unique trades, unique wallets, contracts, notional USDH by day. That granularity separates it from siblings such as hip4_andwer_summary or hip4_most_active without the agent needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use for outcome-market activity trends' gives a clear usage context, and the pointer to data_coverage for freshness is a useful secondary route. However, it never names an explicit alternative (e.g., hip4_outcome_summary, hip4_most_active) or a when-not condition, so routing remains partly inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_most_activeHIP-4 Most Active OutcomesARead-onlyIdempotent
Return the most active HIP-4 outcomes over a recent window, ranked by fill count. Includes outcome/question metadata when available.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Look-back window in hours. Default 24, max 168. | |
| limit | No | Maximum outcomes to return. Default 10, max 50. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds useful behavioral context by specifying the ranking order ('ranked by fill count') and the conditional inclusion of metadata ('when available'), which 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The core purpose and ranking criterion are front-loaded in the first sentence, and the second sentence adds a useful caveat about metadata availability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only ranked-list tool with fully described parameters and no output schema, the description adequately conveys the output shape: outcomes ranked by fill count with optional metadata. It does not enumerate specific return fields, but this is a minor gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters (hours, limit, useToonFormat) already documented with defaults and ranges. The description adds no new parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Return'), a specific resource ('HIP-4 outcomes'), and a precise selection/ranking criterion ('ranked by fill count' over a recent window). This clearly distinguishes it from sibling tools like hip4_outcome_summary, hip4_outcome_recent_trades, and hip4_questions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you want the most active HIP-4 outcomes ranked by fill count. However, it does not explicitly state when not to use it or name alternative tools for related needs, so the guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_outcomeHIP-4 Outcome DetailsARead-onlyIdempotent
Get details for one HIP-4 outcome contract by outcome ID. Returns metadata when available plus side tokens, fills, unique wallets, notional USDH, and trading timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| outcomeId | Yes | HIP-4 outcome ID. Side-token coins are encoded as #<10*outcomeId+side>. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful return-content context, such as 'metadata when available' plus specific fields, but it does not disclose additional behavioral traits like pagination, latency, or data availability limits beyond what annotations and schema already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with a clear verb, target, and output summary. There is no redundancy, filler, or unnecessary elaboration, so every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-record tool with complete schema coverage, the description gives enough context about scope and return content for correct invocation. It does not explicitly explain how this tool differs from the many nearby hip4_outcome siblings, but that gap is more about usage routing than completeness of the tool definition itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains outcomeId's encoding ('Side-token coins are encoded as #<10*outcomeId+side>') and useToonFormat's default behavior. The description adds no new parameter meaning, but it does not need to because the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get details for one HIP-4 outcome contract by outcome ID,' and enumerates the returned fields (metadata, side tokens, fills, unique wallets, notional USDH, trading timestamps). It is clear, but it does not explicitly distinguish itself from sibling tools like hip4_outcome_summary or hip4_outcome_recent_trades, so it falls just short of a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you need full details for a single HIP-4 outcome. However, there is no explicit when-to-use/when-not-to-use guidance or mention of alternatives among the many sibling tools. The large sibling set makes this a noticeable gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_outcome_recent_tradesHIP-4 Outcome Recent TradesARead-onlyIdempotent
Get recent real fills for one HIP-4 outcome. Excludes settlement, pair-redeem, and auction-phase fills. Returns trade time, wallet, side, price, size, PnL, and fee.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Look-back window in hours. Default 24, max 168. | |
| limit | No | Maximum trades to return. Default 100, max 500. | |
| outcomeId | Yes | HIP-4 outcome ID. Side-token coins are encoded as #<10*outcomeId+side>. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, lowering the burden on the description. The description adds meaningful behavioral context beyond annotations by specifying exactly which fill types are excluded and listing the returned fields: trade time, wallet, side, price, size, PnL, and fee.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core action and scope are front-loaded, exclusions follow immediately, and the return fields are listed compactly. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only recent-trades listing tool with a single required parameter and three optional parameters, the description is complete. It explains what data is returned and what is excluded, which is especially important given there is no output schema to document the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters. The description briefly reinforces that the tool targets one HIP-4 outcome, aligning with outcomeId, but it does not add meaningful 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get recent real fills for one HIP-4 outcome.' It further distinguishes the tool by excluding settlement, pair-redeem, and auction-phase fills, making it clear how it differs from related tools like hip4_recent_settlements or pulse_recent_trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by focusing on 'real fills' and explicitly excluding settlement and auction fills, but it does not name alternative tools or state when not to use it. An agent can infer the intended use case but gets no explicit routing guidance among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_outcomesHIP-4 OutcomesARead-onlyIdempotent
List active HIP-4 outcome contracts that traded recently. Returns outcome IDs, question metadata when available, side tokens, fills, unique wallets, notional USDH, and first/last traded timestamps. Use when users ask what prediction/outcome markets are active. Outcomes are sorted by notionalUsdh descending and capped at limit (default 25, max 200; the API route has no paging, so the cap is applied by the connector) — the response carries count (returned), totalCount, truncated and a note; raise limit or shorten hours to see more. HIP-4 fills are indexed from mainnet launch (2026-05-02; the API clamps every look-back to it) — see data_coverage for freshness.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Look-back window in hours. Default 24, max 168. | |
| limit | No | Max outcomes to return, largest notionalUsdh first (default 25, max 200). | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent/no-destructive, and the description layers on substantial extra behavior: sort order (notionalUsdh descending), the connector-side cap because the API route has no paging, the count/totalCount/truncated/note fields, how to see more (raise limit or shorten hours), and the mainnet-launch indexing floor with a pointer to data_coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, and the following clauses each carry real information (sort order, cap mechanics, index floor). It is dense and slightly long, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still enumerates the return payload (IDs, question metadata, side tokens, fills, wallets, notional USDH, timestamps, truncation fields) and the look-back constraint. An agent has everything needed to call it and interpret truncation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining why the caps exist (connector-applied, no paging) and the operational consequence of truncated/count, which materially clarifies how limit and hours behave.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'List active HIP-4 outcome contracts that traded recently,' and even enumerates the returned fields. It is clear what the tool does, though it never explicitly distinguishes itself from near-neighbors like hip4_most_active or hip4_outcome_summary, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when users ask what prediction/outcome markets are active' gives a concrete trigger context, and 'see data_coverage for freshness' routes the agent elsewhere for a related concern. There are no explicit when-not conditions or named alternatives for overlapping tools such as hip4_most_active.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_outcome_summaryHIP-4 Outcome SummaryARead-onlyIdempotent
Get the full HIP-4 summary for one outcome across both sides: fills, unique wallets, contracts, side notional, total notional, realized PnL, and trading window. Requires a Starter-or-higher key.
| Name | Required | Description | Default |
|---|---|---|---|
| outcomeId | Yes | HIP-4 outcome ID. Side-token coins are encoded as #<10*outcomeId+side>. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations by disclosing the auth requirement and specifying exactly what data will be returned, which helps an agent set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The main action and resource are front-loaded, the returned fields are listed compactly, and the access requirement is appended without disrupting the core message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two parameters and complete schema descriptions, the description gives everything an agent needs: the resource scope, the returned fields, and the access requirement. Although there is no output schema, the field list effectively documents the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 documents outcomeId and useToonFormat. The description does not add new parameter-level meaning; it only restates the high-level purpose, which aligns with the baseline score of 3 for complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), names the exact resource ('HIP-4 summary for one outcome'), and enumerates the included metrics, making the tool's function clear. It differentiates from most sibling tools by emphasizing 'across both sides' and 'full summary', but it does not explicitly distinguish itself from the closely named hip4_outcome sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool—whenever a full HIP-4 outcome summary is needed—and gives a clear access prerequisite ('Starter-or-higher key'). However, it provides no explicit guidance about when not to use it or which alternative sibling tools might be more appropriate for related but different queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_perp_position_contextHIP-4 Perp Position ContextARead-onlyIdempotent
Join one HIP-4 outcome's current net-positive holders to currently open perp positions on the same underlying asset. Returns per-side wallet counts, open-position overlap, long/short wallet counts, net underlying position, underlying notional, aligned vs hedge counts, prediction-native counts, and top wallets with signal labels. Use when users ask whether outcome traders are already exposed to the same asset, whether a side is directional or hedged, or which large outcome holders have no underlying perp exposure. Requires a Pro-or-higher key.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look-back window in days for reconstructing current outcome holders from outcome trades. Default 14, max 60. | |
| limit | No | Maximum top outcome wallets to return. Default 25, max 100. | |
| outcomeId | Yes | HIP-4 outcome ID. Side-token coins are encoded as #<10*outcomeId+side>. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds the meaningful behavioral detail that a Pro-or-higher API key is required, which is not conveyed by annotations. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized: purpose first, followed by return fields, then explicit use cases and the auth requirement. Every sentence contributes useful information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description reasonably compensates by listing the main output categories and clarifying intended queries. It does not detail exact response shapes or toon-format structure, but those are secondary given the rich output list and schema-covered parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including defaults and ranges. The description adds only a general reference to 'one HIP-4 outcome' aligning with outcomeId, but does not meaningfully extend parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Join') and clearly identifies the resource: HIP-4 outcome holders joined to open perp positions on the same underlying asset. It also enumerates the computed metrics, making the tool's function concrete and easily distinguishable from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool: when users ask whether outcome traders are exposed to the same asset, whether a side is directional or hedged, or which large outcome holders lack perp exposure. It does not name alternative tools or exclusion criteria, but the use cases are specific enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_questionsHIP-4 QuestionsBRead-onlyIdempotent
List HIP-4 question metadata from Hyperliquid outcomeMeta, including question IDs, descriptions, fallback outcomes, named outcomes, settlement metadata, and parsed expiry/threshold fields when present.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds some context by naming the source (outcomeMeta) and noting that parsed fields are included 'when present,' but it does not disclose pagination, ordering, or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that leads with the core purpose and then packs relevant field details into a readable list. It is slightly dense due to the enumeration, but every item contributes to explaining what the tool returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one optional parameter, no output schema, read-only annotations), the description provides a clear picture of what is returned and from where. It could be more complete with an explicit mention of the default toon format behavior, but that is already documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single optional parameter useToonFormat, so the schema already explains the parameter fully. The description adds no additional parameter-level semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('List') and the resource ('HIP-4 question metadata from Hyperliquid outcomeMeta'), and enumerates the specific metadata fields returned. It does not explicitly contrast itself with sibling tools like hip4_outcomes or hip4_outcome_summary, so it does not fully achieve the highest sibling-differentiation standard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus its many sibling tools, nor does it state any exclusions or alternative recommendations. An agent would have to infer use cases from the tool name and field list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_recent_settlementsHIP-4 Recent SettlementsARead-onlyIdempotent
List recent HIP-4 settlements. Returns outcome ID, settlement time, winning side when determinable, winner/loser fill counts, winner payouts, and loser losses.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Look-back window in hours. Default 168, max 720. | |
| limit | No | Maximum settlements to return. Default 50, max 200. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive. The description adds meaningful behavioral detail beyond that: it reports settlement time, winning side 'when determinable,' fill counts, payouts, and losses. This gives the agent a clear picture of what sort of data to expect and acknowledges uncertainty in outcome determination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the core action is front-loaded. The return-field enumeration is compact but informative. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the essential return vocabulary, including the caveat that winning side is included only when determinable. It could add sorting or defaults, but those are largely covered by the schema and the word 'recent.' For a read-only list tool, this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters with defaults, ranges, and meaning, and schema coverage is 100%. The description adds no parameter-level detail, which is acceptable because the schema carries the full burden. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: 'List recent HIP-4 settlements.' It then lists the exact return fields, making the tool's purpose concrete and distinguishable from sibling tools about outcomes, trades, and volume. A settlement-specific listing tool is clearly separate from hip4_outcome_summary and hip4_outcome_recent_trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the basic use case obvious—retrieve recent HIP-4 settlements—but it does not explicitly state when to prefer this tool over alternatives or when not to use it. No sibling differentiation or exclusion guidance is provided, so the agent must infer suitability from the name and return fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_top_tradersHIP-4 Top TradersARead-onlyIdempotent
Rank top HIP-4 outcome traders by recent outcome activity. Returns address, fills, distinct outcomes, contracts, notional USDH, and realized PnL. Requires a Starter-or-higher key.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look-back window in days. Default 7, max 30. | |
| limit | No | Maximum traders to return. Default 25, max 100. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful context beyond annotations by specifying the access tier required and enumerating the returned fields, though it does not cover pagination or sorting details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the core purpose, then efficiently lists return fields and the access requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only ranking tool with no output schema, the description compensates well by listing the returned fields and required access tier. It does not define the exact ranking metric behind 'recent outcome activity' or specify ordering, but this is a minor gap given the simple parameter set and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (days, limit, useToonFormat) are already documented with defaults and bounds in the input schema. The tool description adds no additional parameter-level meaning, which matches the baseline expectation for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Rank top HIP-4 outcome traders') and specifies the output fields, making the tool's purpose clear. It does not explicitly differentiate itself from similar siblings like hip4_most_active or pulse_leaderboard, so it falls just short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the tool ranks traders by recent outcome activity, which gives an agent the context needed to select it. It also mentions the access requirement ('Starter-or-higher key'), but it does not name alternatives or explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hip4_trader_outcomesHIP-4 Trader OutcomesARead-onlyIdempotent
Get one wallet's HIP-4 outcome history: outcome ID, side index, side token, fills, net shares, gross bought/sold USDH, realized PnL, and first/last traded. Requires a Starter-or-higher key. Rows are sorted by gross notional (grossBoughtUsdh + grossSoldUsdh) descending and capped at limit (default 50, max 200; the API route has no paging, so the cap is applied by the connector) — the response carries count (returned), totalCount, truncated and a note; raise limit or shorten days to see more. The API clamps days to 90 and to HIP-4 mainnet launch (2026-05-02) — see data_coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look-back window in days. Default 30; the API clamps values above 90. | |
| limit | No | Max outcome rows to return, largest gross notional first (default 50, max 200). | |
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the read-only/idempotent annotations: discloses the tier requirement, the sort key (gross notional descending), the connector-applied cap because the API route has no paging, the truncation metadata returned (count, totalCount, truncated, note), and the API's days clamping to 90 and to mainnet launch. This is the kind of behavioral context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then requirement, then ordering/truncation, then clamping — a sensible order. It is dense and delivered as one long paragraph with an em-dash run, but nearly every clause carries decision-relevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does so by listing the row fields and the truncation envelope. Combined with auth tier, sorting, capping, and clamping rules, an agent has everything needed to call and interpret it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine semantics: the connector-side cap rationale for `limit` and how raising it or shortening `days` changes results. The days clamp is partly a restatement of the schema, keeping it out of the top band.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get one wallet's HIP-4 outcome history') and enumerates the returned fields (outcome ID, side index, side token, fills, net shares, gross bought/sold USDH, realized PnL, first/last traded). The wallet-scoped framing implicitly separates it from non-wallet HIP-4 siblings, but it never names an alternative to route against, so it stops short of the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a real prerequisite ('Requires a Starter-or-higher key') and tells the agent how to widen results ('raise limit or shorten days to see more'), plus a pointer to data_coverage. However, it never states when to reach for this tool versus siblings like hip4_top_traders or hip4_outcome_summary, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assetAsset LookupARead-onlyIdempotent
Lookup one asset by canonical name or synonym. Returns every venue it trades on, collateral tokens, open interest per venue, and synonyms list. Accepts both canonical names (GOLD, BTC) and synonyms (PAXG, XAUT) — the server resolves them. Use when the user mentions a specific asset and you need its venue availability.
| Name | Required | Description | Default |
|---|---|---|---|
| canonical | Yes | Canonical asset name or synonym. Examples: 'GOLD', 'PAXG', 'BTC', 'SILVER', 'HYPE'. The server resolves synonyms to canonical. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context: the server resolves synonyms automatically, and the tool returns trade venues, collateral tokens, open interest per venue, and synonyms. This goes beyond annotation basics 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what it does, what it returns, and when to use it. No filler, no repetition of schema annotations, and the main lookup purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only tool, the description covers the core behavior, return content, and usage context. It does not mention error behavior for unknown assets, but given the rich annotations and full schema coverage, the description is sufficiently complete for an 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters and gives examples for 'canonical.' The description reinforces synonym resolution and ties canonical names to examples, but it does not add substantial new 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lookup'), a precise resource ('one asset'), and the expected output fields (venues, collateral tokens, open interest, synonyms). It also clarifies that both canonical names and synonyms are accepted, which distinguishes it from plural list tools like list_assets and list_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit usage condition: 'Use when the user mentions a specific asset and you need its venue availability.' However, it does not explicitly state when not to use it or name alternatives such as list_assets for multi-asset lookups, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assetsList AssetsARead-onlyIdempotent
Directory of every canonical asset that trades on Hyperliquid or any builder dex, grouped by economic exposure (not by venue ticker). Each asset entry lists its synonyms (e.g. PAXG is a synonym of GOLD), which venues it trades on, aggregated open interest, and a cross-market flag (listed on 2+ venues). Prefer this over list_markets when the user asks 'what assets are available?', 'which venues is GOLD on?', or 'show me cross-market assets'.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. | |
| crossMarketOnly | No | If true, return only assets listed on 2+ venues. Default: false (return all). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a safe read-only idempotent operation, so the bar is lower. The description adds useful behavior beyond that: assets are canonical and grouped by economic exposure, and each entry includes synonyms, venues, aggregate OI, and a cross-market flag. It does not disclose size/performance traits, but they are not critical for a read-only directory with rich annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first defines scope and output content, the second gives usage examples. The distinguishing scoping phrase 'grouped by economic exposure (not by venue ticker)' is placed early and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two well-described optional parameters and no output schema, the description covers what the result contains and when to prefer it. It does not mention the closely named sibling list_asset (singular), so an agent hunting for a single-asset detail view gets only partial routing context, but this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both optional booleans. The description reinforces crossMarketOnly by defining cross-market as 'listed on 2+ venues' and supplying a matching query example, but it adds no new information about useToonFormat or syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names a precise resource: a directory of every canonical Hyperliquid/builder-dex asset, and specifies how it is organized (economic exposure, not venue ticker). It also differentiates from list_markets by giving concrete query phrasings, so an agent can identify this tool without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to prefer this over list_markets for specific user questions ('what assets are available?', 'which venues is GOLD on?', 'show me cross-market assets'). This is direct when-to-use guidance that routes to the correct sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_marketsList MarketsARead-onlyIdempotent
CANONICAL market discovery tool. Returns every trading symbol on Hyperliquid and its builder dexes with dex, mark price, 24h volume, funding rate, open interest, and 24h change. Use this whenever the user asks 'what markets are available?', mentions a commodity (gold, silver, oil), stock (TSLA, AAPL, NVDA), or builder-dex market. For asset-level grouping across venues, use list_assets instead.
| Name | Required | Description | Default |
|---|---|---|---|
| dex | No | Filter by dex. 'hl' for native Hyperliquid, 'xyz' for commodities/stocks, 'cash' for equities, 'km' for energy, etc. Omit for all markets. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is largely covered. The description adds value by disclosing the exact field set returned and the scope (native + builder dexes), though it omits pagination/result-size behavior for a potentially large list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the canonical designation, then scope, then return fields, then usage triggers and the alternative. Three dense sentences with little waste, though the CLAIMANT-style emphasis and the trigger list make it slightly longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by enumerating the returned fields and the market universe covered. It stops short of describing pagination or result limits for a 'returns every symbol' tool, but is otherwise complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (dex enum, useToonFormat) are documented in the schema, so the description need not repeat them. It does not add syntax or filtering semantics beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list/returns) and resource (every trading symbol on Hyperliquid and its builder dexes) and enumerates the returned fields (mark price, 24h volume, funding rate, OI, 24h change). It explicitly distinguishes itself as the CANONICAL discovery tool versus list_assets for asset-level grouping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete triggers ('what markets are available?', mentions of commodities, stocks, or builder-dex markets) and names the alternative sibling (list_assets) with the condition that selects it. Both when-to-use and when-to-use-something-else are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_cohort_biasLive Cohort BiasARead-onlyIdempotent
See what each trader cohort is doing on a specific coin RIGHT NOW. Returns the net long/short bias for every tier (Apex, Sharps, Middleweights, etc.) on the given coin. Answers questions like 'are the Sharps traders long or short ETH?'
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN (e.g. xyz:SILVER, km:OIL, cash:TSLA) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral context by specifying the metric returned (net long/short bias per tier) and the live temporal scope. No contradiction; the extra detail goes beyond the annotation safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences convey purpose, output, and a concrete example. The first sentence and second sentence overlap slightly ('what each trader cohort is doing' vs 'net long/short bias'), but the example question earns its place and the overall description is tight and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with fully documented parameters, the description adequately explains the resource, the metric, and the live scope. There is no output schema, so the description's mention of per-tier net bias helps fill that gap. It could mention tier definitions or data latency, but these are not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both coin and useToonFormat already have clear descriptions in the schema. The tool description does not add parameter-level detail, but the schema fully carries that burden, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('See... Returns') with a precise resource: net long/short bias per trader cohort on a given coin, right now. It names example tiers (Apex, Sharps, Middleweights) and gives a concrete question it answers, making the tool's purpose unmistakable and distinct from history-oriented siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'RIGHT NOW' phrasing and example question clearly establish this as the tool for current, real-time cohort bias. It does not explicitly name alternatives like live_cohort_bias_history, but the live-vs-history contrast is strongly implied and the use case is concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_cohort_bias_historyLive Cohort Bias HistoryARead-onlyIdempotent
Get historical cohort bias data for a specific coin. Use this when a user asks 'were smart-money cohorts accumulating or exiting?' or 'which tier flipped first?'. Returns hourly net-bias snapshots for each tier or for a specific tier over time.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin symbol (e.g. BTC, ETH, SOL) | |
| tier | No | Specific tier to track. Omit for all tiers in the category. | |
| hours | No | Number of hours of history (default 168 = 7 days, max 720 = 30 days) | |
| tierType | No | Tier category: 'pnl' for profit tiers, 'size' for volume tiers | pnl |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, non-destructive), so the description only needs to add context. It does so by disclosing that the tool returns hourly net-bias snapshots and can return all tiers or a single tier over time. It adds useful behavioral detail 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, usage triggers, and return shape. The most important information is front-loaded, and there is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately characterizes the return value as hourly net-bias snapshots per tier over time. It covers the main parameter semantics and usage context. It does not describe edge cases like unknown coins or value units, but the schema covers parameters and annotations cover safety, making this sufficient for most invocation scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds semantic value beyond the schema by explaining what 'bias' means in context ('accumulating or exiting') and by clarifying how the tier parameter behaves ('each tier or a specific tier'). This goes beyond the schema's terse field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a clear resource ('historical cohort bias data for a specific coin'), and a precise scope. It also includes example user questions that make the purpose immediately understandable and distinguish it from the sibling 'live_cohort_bias' by emphasizing 'historical' and 'hourly... over time'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit trigger phrases ('were smart-money cohorts accumulating or exiting?' and 'which tier flipped first?'), which is strong when-to-use guidance. It does not mention when not to use this tool or point to alternatives like pulse_cohort_bias_history, 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.
live_coin_risk_historyLive Coin Risk HistoryARead-onlyIdempotent
Get the historical risk lane for a coin. Best for questions like 'how did this setup become fragile?' or 'did smart money rotate before the move?'. Returns hourly OI, long/short history, cohort rotation, candle data, and liquidation counts over time; by default the minute-level markDislocations section is omitted (it alone is ~700 rows per 12h). Pass include=[..., 'markDislocations'] to add it bucketed to 1 hour (the max-|basisPct| minute per hour), or use live_mark_dislocations for finer resolution. The response lists sections and omittedSections. Freshness and availability are in the response's freshness/availability stamps; see data_coverage for the risk-data window.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN | |
| hours | No | Number of hours of history to return (default 168 = 7 days, max 720 = 30 days) | |
| include | No | Sections to return. Default: every section except markDislocations. markDislocations, when included, is bucketed to 1h. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds non-obvious behavior: markDislocations is omitted by default, the response self-describes via sections/omittedSections, and freshness/availability stamps live in the payload. The ~700-rows-per-12h size note helps the agent judge payload cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and use-cases, then payload contents, then the include caveat and alternative tool. Dense but every sentence carries actionable information; the parenthetical size detail justifies the default omission rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned sections and the response's self-describing metadata (sections, omittedSections, freshness/availability). An agent has enough to call this correctly and interpret the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantics for include beyond the schema by explaining the default omission and that markDislocations is bucketed to the max-|basisPct| minute per hour. It does not add anything for hours or useToonFormat, which the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Get the historical risk lane for a coin') and enumerates the exact sections returned (hourly OI, long/short history, cohort rotation, candles, liquidation counts). It implicitly delineates itself from live_mark_dislocations and live_coin_risk_snapshot by scoping to historical breadth across many sections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete triggering questions ('how did this setup become fragile?', 'did smart money rotate before the move?') and names an explicit alternative with its selection condition ('use live_mark_dislocations for finer resolution'). It also routes the agent to data_coverage for the risk-data window.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_coin_risk_snapshotLive Coin Risk SnapshotARead-onlyIdempotent
Get the current risk snapshot for a single coin. Use this when a user asks 'is BTC crowded?', 'who is holding the risk?', or 'how liquidation-prone is this market right now?'. Returns OI, wallet count, long/short posture, position-size concentration, top positions, liquidation heatmap, and 7-day liquidation totals.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN (e.g. xyz:GOLD, km:OIL, cash:TSLA) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds temporal scope ('current') and enumerates the risk dimensions returned, but it does not disclose any additional behavioral traits such as data freshness, formatting quirks, or limits. This is adequate but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences: purpose, usage triggers, and returned content. It is front-loaded with the core action, every sentence earns its place, and there is no filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing seven return categories (OI, wallet count, long/short posture, position-size concentration, top positions, liquidation heatmap, 7-day liquidation totals). This gives an agent a solid mental model of the result. It is not a 5 because the exact shape of the heatmap and toon-format output is left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'coin' and 'useToonFormat' already having clear descriptions including the prefix convention for builder dex markets. The tool description itself adds no new parameter-level meaning, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the current risk snapshot for a single coin.' It distinguishes itself from siblings like live_coin_risk_history and live_risk_overview via 'current' and 'single coin,' and reinforces intent with concrete user questions and a list of returned risk dimensions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit trigger scenarios ('is BTC crowded?', 'who is holding the risk?', 'how liquidation-prone is this market right now?'), making the intended use clear. It does not explicitly name alternative tools or state when not to use it, so it stops 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.
live_liquidation_heatmapLive Liquidation HeatmapARead-onlyIdempotent
Get a liquidation heatmap for any coin. Shows where liquidation clusters are across price levels — essential for identifying support/resistance and potential squeeze zones.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN (e.g. xyz:SILVER, km:OIL, cash:TSLA) | |
| range | No | Price range percentage around current price | |
| buckets | No | Number of price buckets in the heatmap | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear. The description adds that the tool surfaces liquidation clusters across price levels for any coin, but does not cover operational behaviors such as rate limits, data freshness, or exact return format. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the action and resource, and the second explains what the tool shows and when it is useful. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema documents all four parameters and annotations cover the read-only, idempotent, non-destructive nature of the tool. The description explains the core output concept, liquidation clusters across price levels, which is sufficient for an agent to understand the tool's purpose even without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter (coin, range, buckets, useToonFormat) already has a detailed description. The tool description adds no parameter-specific meaning, but it does not need to because the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get a liquidation heatmap for any coin.' It further clarifies the tool's distinguishing purpose by explaining it shows liquidation clusters across price levels, which separates it from sibling tools like live_recent_liquidations or live_liquidation_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for identifying support/resistance and potential squeeze zones, which gives useful context. However, it does not explicitly state when to use this heatmap versus alternatives like live_liquidation_summary or live_recent_liquidations, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_liquidation_summaryLive Liquidation SummaryARead-onlyIdempotent
Get an aggregated liquidation summary over a time window. This is the best liquidation tool for summaries, rankings, and trend analysis. Returns event count, penalty fees, closed PnL, per-coin rollups, and a liquidation timeline.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Optional coin filter (e.g. BTC, ETH, SOL or builder dex prefix:COIN) | |
| since | No | Time window: e.g. '10m' (minutes), '1h' (hours), '1d' (days) | 7d |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds value beyond annotations by disclosing the aggregated nature, the time-window scope, and the specific output components (event count, penalty fees, closed PnL, per-coin rollups, liquidation timeline). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no filler. The core purpose and time-window behavior are front-loaded, followed by a compact list of return contents and intended use cases. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the main return components. It could be richer by specifying ordering, timeline granularity, or aggregation semantics, but for a read-only summary tool with three optional parameters, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds a little context by mentioning time window and per-coin rollups, which map to 'since' and 'coin', but it does not meaningfully enhance understanding of 'useToonFormat' or parameter syntax beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get an aggregated liquidation summary over a time window.' The description further clarifies intended use cases ('summaries, rankings, and trend analysis') and distinguishes this from sibling liquidation tools like live_liquidation_heatmap and live_recent_liquidations by emphasizing aggregation and rankings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says this is the best liquidation tool for summaries, rankings, and trend analysis, giving the agent a clear use case. It does not explicitly mention when not to use it or name alternative tools, but the context is clear enough to route the agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_long_short_ratioLive Long/Short RatioARead-onlyIdempotent
Get long/short ratio data. Without a coin, returns the global ratio across all Hyperliquid. With a coin, returns that specific pair's ratio. Optionally include historical data over the last N hours.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Coin symbol (e.g. BTC, ETH). For builder dex: prefix:COIN (e.g. xyz:SILVER). Omit for global ratio. | |
| hours | No | Include historical data for the last N hours (max 168 = 7 days) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this tool as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful functional context about global vs. per-coin behavior, but it does not disclose response shape, data freshness, or any other behavioral constraints beyond what the schema and annotations already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and wastes no words. The conditional behavior is stated clearly and compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity read-only data tool with three optional parameters and no output schema. The description covers the main invocation modes and key optional behavior. It does not describe the return value structure, but for a simple ratio query this is not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the coin conditional behavior and the optional historical window, but adds little beyond the schema: it does not explain useToonFormat or any parameter formatting details beyond what is already documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('long/short ratio data'), and immediately clarifies the two main scopes: global vs. per-coin. This clearly differentiates it from sibling tools, most of which concern other market or trader metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear conditional usage guidance: omit coin for global ratio, provide coin for a specific pair, and optionally request historical data. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to decide when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_mark_dislocationsLive Mark DislocationsARead-onlyIdempotent
Get historical mark/oracle dislocation data for a coin. Use this to answer questions like 'did basis stress or oracle drift show up before liquidations?'. Returns timestamped mark price, oracle price, and basis percentage over the requested window — default 168 hours (7 days), max 720 hours (30 days). The source series is one row per minute; the connector buckets it by resolution (default 5m: the max-|basisPct| minute in each 5-minute bucket; 1h likewise; 1m = raw) and returns at most limit rows (default 500, newest kept), with totalCount, truncated and a note when rows were dropped. For 7 days at full detail use resolution=1h, or page by shortening hours. See data_coverage for the risk-data freshness stamp.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN | |
| hours | No | Number of hours of history to return (default 168 = 7 days, max 720 = 30 days) | |
| limit | No | Max rows to return after bucketing (default 500). The newest rows are kept when the cap applies. | |
| resolution | No | Bucket width. Each bucket keeps the minute with the largest |basisPct|. Default 5m; 1m returns the raw minute rows. | 5m |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description still adds substantial behavior: per-minute source series, bucketing rule (max-|basisPct| minute per resolution bucket), newest-kept truncation, and the totalCount/truncated/note signals emitted when rows are dropped. It also points to data_coverage for the freshness stamp.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then return shape, then bucketing/truncation semantics, then a usage tip — a sensible ordering with no filler sentences. It is dense and runs long for a single paragraph, but each clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does: timestamped mark price, oracle price, basis percentage, plus totalCount/truncated/note metadata. Combined with the bucketing and paging guidance, an agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already documents defaults, bounds, and the bucket rule, so the baseline is 3. The description goes further by tying resolution and limit together into an aggregation/truncation model and by advising the resolution choice for a 7-day window, adding practical meaning beyond the field list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get historical mark/oracle dislocation data for a coin') and anchors it with a concrete example question about basis stress preceding liquidations. The resource is distinct from every sibling (risk snapshots, liquidation summaries, OI history), so an agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives actionable usage guidance: when to reach for it (diagnosing basis/oracle drift before liquidations), how to get 7 days at full detail (resolution=1h), and how to page (shorten hours). No explicit when-not or named alternative sibling, which keeps it 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.
live_official_oiLive Official Open InterestARead-onlyIdempotent
Official per-dex open interest for a coin, sourced from Hyperliquid's Info API (not derived from live_positions). Returns hourly snapshots with open interest, mark price, and 24h notional volume. Use when an agent needs venue-reported ground truth, per-dex breakdown, or wants to cross-check computed OI against official numbers. Default 7 days, max 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| dex | No | Which dex's official OI to return. Defaults to 'hl' (native Hyperliquid). | hl |
| coin | Yes | Coin symbol (e.g. BTC, ETH, SOL). Use the bare ticker — dex is supplied via the 'dex' parameter, not prefix. | |
| hours | No | Number of hours of history (default 168 = 7 days, max 720 = 30 days) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: the data source is Hyperliquid's Info API, snapshots are hourly, and the payload includes open interest, mark price, and 24h notional volume. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is composed of four short sentences, each earning its place: identity/source, output contents, use cases, and time-range defaults. It is front-loaded with the core purpose and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, full schema coverage, and no output schema, the description covers the essential behavioral contract: output fields, frequency, data source, default range, and maximum range. A minor omission is explaining what 'toon format' means, but that is addressed in the schema's parameter description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema; baseline is 3. The description's wording around 'per-dex' and 'official' reinforces the meaning of the dex and coin parameters but does not meaningfully add constraints or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Official per-dex open interest for a coin, sourced from Hyperliquid's Info API (not derived from live_positions)', which names the resource, scope, and source while explicitly distinguishing it from computed OI. It also states what the tool returns: hourly snapshots with open interest, mark price, and 24h notional volume.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description has an explicit 'Use when...' clause listing venue-reported ground truth, per-dex breakdown, and cross-checking computed OI against official numbers. It does not name a specific sibling tool as an alternative or provide an explicit when-not, but the selection context is clear enough for an agent to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_oi_historyLive Open Interest HistoryARead-onlyIdempotent
Get historical open interest data for any coin on Hyperliquid, or global OI across all coins. Best for identifying accumulation/distribution phases, market conviction shifts, and whether a move was backed by positioning. Default 7 days, max 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Coin symbol (e.g. BTC, ETH, SOL). Omit for global OI across all coins. | |
| hours | No | Number of hours of history (default 168 = 7 days, max 720 = 30 days) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds some scope context (coin-specific vs. global) but no additional behavioral details like pagination, output format, or latency. This is adequate but not notably informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no wasted words. It front-loads the purpose, then adds use cases and constraints. Every sentence contributes to helping the agent decide and invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main invocation choices (coin or global, time window) and conveys the analytical intent. There is no output schema, so a bit more detail on the response shape or granularity could help, but it is not critical for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters. The description reinforces the defaults and max ('Default 7 days, max 30 days') and the global option ('Omit for global OI'), but it does not add new meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('historical open interest data'), with explicit scope: any coin on Hyperliquid or global OI. It is not a tautology and is easy to understand. However, it does not explicitly differentiate itself from sibling tools like market_historical_oi or live_official_oi, so it loses the fifth point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use cases ('Best for identifying accumulation/distribution phases, market conviction shifts, and whether a move was backed by positioning'), which tells the agent when this tool is appropriate. It does not mention when not to use it or name alternatives, 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.
live_recent_liquidationsLive Recent LiquidationsARead-onlyIdempotent
Get real liquidation events from the syncer. Best for questions like 'where did forced unwind activity actually hit?' or 'show me BTC liquidations over the last 30 days'. Returns wallet, coin, penalty fee, and closed PnL.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Optional coin filter (e.g. BTC, ETH, SOL or builder dex prefix:COIN) | |
| limit | No | Number of liquidation events to return | |
| since | No | Time window: e.g. '10m' (minutes), '1h' (hours), '1d' (days) | 7d |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior, so the safety profile is covered. The description adds useful behavior beyond annotations by noting the data source ('from the syncer'), emphasizing 'real' liquidation events, and listing returned fields. This is meaningful context for an agent deciding whether the tool matches the query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core action is in the first sentence, followed by concrete example queries and the returned fields. Every sentence earns its place without extraneous detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no required parameters, full schema coverage, and no output schema, the description provides enough context: what it returns, example user intents, and the source of the data. It could be slightly more complete by contrasting with live_liquidation_summary or live_liquidation_heatmap, but the available information is sufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already well-documented in the input schema. The description's example about BTC liquidations over 30 days indirectly reinforces the coin and since parameters, but it does not add new semantic detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets real liquidation events from the syncer, with a specific verb and resource. It provides example questions and the returned fields, making the tool's purpose understandable. It does not explicitly name or differentiate sibling tools like live_liquidation_summary or live_liquidation_heatmap, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Best for questions like...' phrasing gives concrete usage context, such as locating actual forced unwind activity or requesting BTC liquidations over a period. It does not explicitly state when not to use this tool or point to alternatives, but the examples are enough for an agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_risk_overviewLive Risk OverviewARead-onlyIdempotent
Get the exchange-wide market risk snapshot. Best for questions like 'what looks fragile right now?' or 'which coins are most crowded?'. Returns total open interest, leverage, crowding concentration, near-liquidation exposure, 7-day liquidation totals, and the top coins where positioning looks most fragile.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so safety/behavior is well covered. The description adds useful context about what data the snapshot aggregates and includes, but it does not disclose additional behavioral traits such as time windows, sampling, or any caveats about the returned data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core purpose is front-loaded, followed by practical example questions and a compact list of return dimensions. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description compensates by listing the key return categories clearly. It is sufficient for a single-optional-parameter, read-only overview tool. It could be slightly more complete by clarifying time windows or distinguishing itself from live_coin_risk_snapshot, but overall the agent has enough context to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single optional parameter useToonFormat with a description and default, so schema coverage is 100%. The tool description does not mention this parameter, but the schema already documents it fully. No additional parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the exchange-wide market risk snapshot.' It clearly states the scope (exchange-wide) and enumerates concrete outputs (total open interest, leverage, crowding concentration, near-liquidation exposure, 7-day liquidation totals, top fragile coins). This distinguishes it from per-coin sibling tools like live_coin_risk_snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use-case examples: 'Best for questions like "what looks fragile right now?" or "which coins are most crowded?"' This provides clear context for when to use it. However, it does not explicitly name alternatives or state when not to use this tool versus sibling tools like live_coin_risk_snapshot or live_liquidation_heatmap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_historical_oiHistorical Open InterestARead-onlyIdempotent
Get historical hourly open interest snapshots (notional USD). Supports per-coin filtering or global exchange aggregation. Max range is 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER). Omit for global exchange aggregate. | |
| since | No | Time window for history (max 30d). e.g. '24h', '7d', '30d' | |
| endTime | No | Explicit end time (ISO string or timestamp). Defaults to now. | |
| startTime | No | Explicit start time (ISO string or timestamp). Overrides 'since'. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive behavior. The description adds meaningful behavioral context: hourly snapshot granularity, notional USD denomination, per-coin vs global aggregation, and the maximum range. This goes beyond what annotations alone communicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences, with the core purpose and key constraints front-loaded. No filler or redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with well-documented parameters, the description provides the essential missing context: historical hourly granularity, notional USD units, and the 30-day bound. A return-format example would be nice, but the description is sufficiently complete for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all five parameters with 100% coverage, including examples and defaults. The description reinforces the 'filter by coin vs global aggregate' distinction but does not add new parameter-level semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a precise resource ('historical hourly open interest snapshots'), and the unit ('notional USD'). It also distinguishes this historical tool from live siblings by explicitly saying 'historical hourly'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies historical use cases and states the 30-day max range, but it does not explicitly contrast with live alternatives like live_oi_history or live_official_oi. An agent must infer when to choose this over those siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_orderbookMarket Order BookARead-onlyIdempotent
Get the order book (bid/ask depth) for any trading pair on Hyperliquid. Shows price levels and sizes on both sides. Essential for understanding liquidity, spread, and potential support/resistance.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Number of price levels on each side | |
| symbol | Yes | Trading pair symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN format (e.g. xyz:SILVER, km:OIL, cash:TSLA) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds useful behavioral context by specifying that it returns bid/ask depth with levels and sizes on both sides. It does not overpromise or contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The primary action and resource are front-loaded, and the second sentence adds practical value by stating the intended use case. No redundant restating of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only market data tool, the description explains what the tool returns and why it is useful. There is no output schema, but the returned shape is summarized well enough. The only minor gap is lack of explicit mention of snapshot/current nature, but this is strongly implied by 'order book.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and parameter descriptions are already detailed, including symbol format examples and depth constraints. The tool description adds no parameter-level detail, but it does not need to because the schema already carries that burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the order book (bid/ask depth) for any trading pair on Hyperliquid.' It clearly states what data is returned ('price levels and sizes on both sides'), making it easy to distinguish from sibling market tools like market_price or market_historical_oi.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use-case context: 'Essential for understanding liquidity, spread, and potential support/resistance.' It does not explicitly name alternatives or exclusion criteria, but the use cases are specific enough for an agent to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_positionsWallet Open PositionsARead-onlyIdempotent
Get all open positions for any wallet address on Hyperliquid. Shows current entries, sizes, unrealized PnL, and leverage for each position.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds mild context like 'current' and 'open positions,' but does not disclose behavior such as empty-result handling or response format nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the action and scope, with no filler or repetition of the tool name. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two parameters and no output schema, the description adequately conveys what the caller gets back: entries, sizes, unrealized PnL, and leverage. It could be slightly stronger by specifying the return shape or contrasting with closed-position siblings, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description reinforces that the address identifies any wallet, but it adds no new parameter-level meaning beyond the schema; useToonFormat is already well documented in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Get all open positions for any wallet address on Hyperliquid.' It also lists the key returned data (entries, sizes, unrealized PnL, leverage), making it clearly distinct from closed-position and market-data siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the use case: querying a single wallet's current open positions on Hyperliquid. It does not explicitly name alternatives or exclusions, but the context is clear and no misleading guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_priceMarket PriceARead-onlyIdempotent
Get current mark price for any trading pair on Hyperliquid. Use standard symbols (BTC, ETH, SOL) or builder dex format (xyz:SILVER, km:OIL, cash:TSLA).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Trading pair symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN format (e.g. xyz:SILVER, km:OIL, cash:TSLA) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive operation, so the description does not need to restate that. The description adds the 'current mark price' semantic and symbol-format scope, but it does not disclose return-shape details or rate-limit/error behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, with the core action front-loaded and the symbol-format nuance in the second sentence. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter price lookup with rich read-only annotations and full schema coverage, the description plus schema cover what the tool needs: symbol formats, current-price semantics, and output-format switch. It does not enumerate the exact return fields since no output schema exists, but it is adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both `symbol` and `useToonFormat` already documented in the input schema. The description largely repeats the symbol examples from the schema rather than adding new parameter-level meaning, so it stays at the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Get') and resource ('current mark price for any trading pair on Hyperliquid'), making the tool's function immediately clear. It also names accepted symbol formats, distinguishing it from sibling market tools like orderbook, candles, and OI tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete guidance on how to specify symbols—standard tickers vs builder dex prefix:COIN—so an agent knows exactly what inputs are valid. It does not explicitly state when not to use this tool or name alternatives, but the context is clear enough for a simple price lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_recent_candlesRecent CandlesARead-onlyIdempotent
Get recent 1-minute candle history for a market. Best for short intraday structure checks, recent momentum, and micro-pullback analysis. This MCP tool is intentionally capped to the most recent 12 hours so agents do not fetch huge minute-bar dumps in one call.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of 1-minute candles to return. Capped at 720 candles (12h) to keep MCP responses practical. | |
| symbol | Yes | Market symbol (e.g. BTC, ETH, SOL, xyz:GOLD, cash:TSLA) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, open-world, idempotent, and non-destructive. The description adds a meaningful behavioral constraint: the tool is 'intentionally capped to the most recent 12 hours so agents do not fetch huge minute-bar dumps in one call,' which explains a deliberate data-scope design. It does not describe response format or pagination, but the safety profile is well covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences each earn their place: the first defines the core action and resource, the second gives use cases, and the third explains the cap and rationale. The most important information is front-loaded, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers what the tool returns, when to use it, and the intentional 12-hour limit, while annotations cover safety. Without an output schema, the exact response fields (e.g., OHLCV values, timestamps) are not explicitly described, though 'candle history' is a generally understood structure. This minor gap keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover both visible parameters (symbol and limit) with defaults, bounds, and explanations. The tool description adds no new parameter meaning beyond restating the 12-hour cap and the 1-minute interval, so it meets the baseline for high schema coverage but does not compensate beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a precise resource ('recent 1-minute candle history for a market'), and its scope ('capped to the most recent 12 hours'). This clearly distinguishes it from sibling tools like market_price or market_orderbook by focusing on high-frequency candle data with an explicit time bound.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly recommends the tool for 'short intraday structure checks, recent momentum, and micro-pullback analysis' and warns that it is capped to 12 hours, implying it is not for longer-range analysis. However, it does not name an alternative tool for longer histories or explicitly state 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.
pulse_active_tradersActive TradersARead-onlyIdempotent
Distinct wallets that filled at least one perp trade in the last 24h, exchange-wide, plus total match count. The 'daily active traders' headline number. Cached up to 120s.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds valuable behavioral context beyond that: the exact 24-hour window, the exchange-wide scope, the inclusion of a match count, and the 120-second cache behavior. This is genuinely useful operational information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the core metric definition, then notes the headline alias, then adds the cache caveat. Every sentence contributes distinct information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter, single-optional-parameter tool, this description is complete. It defines the metric precisely, mentions the additional match count, and discloses caching behavior. No critical usage context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, useToonFormat, is fully documented in the schema with its default and meaning. The description does not need to add parameter detail, so the baseline score of 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise, measurable definition: distinct wallets that filled at least one perp trade in the last 24h, exchange-wide, plus total match count. It also identifies itself as the 'daily active traders' headline number, making its purpose unmistakable and differentiating it from more granular trader metric tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when the daily active trader count is needed. However, it does not explicitly state when not to use it or name alternatives among the many pulse sibling tools, such as pulse_global_stats or pulse_leaderboard.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_anti_survivorsAnti-Survivors (Unrecovered Blow-Ups)ARead-onlyIdempotent
Find wallets that blew up and never recovered — cumulative realized PnL hit a deep trough and is still underwater. Returns wallet, trough depth, and current cumulative PnL. Use for 'who got rekt and stayed rekt?'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of wallets to return. | |
| offset | No | Pagination offset. | |
| maxTrough | No | Trough must be at least this deep (negative). Default -10000. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. | |
| stillUnderwater | No | Current cumulative PnL must be at or below this (negative or 0). Default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds useful behavioral context beyond annotations by explaining the underlying filter logic: a deep trough in cumulative realized PnL and current PnL still underwater. It also states what the tool returns, which is valuable since no output schema is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two efficient sentences with a memorable use-case quote. It front-loads the core behavior and expected outputs without any filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only filter tool with 100% parameter schema coverage and no nested objects, the description covers the essential behavior, selection criteria, return fields, and motivating question. No output schema exists, but the description explicitly names what will be returned, so an agent can call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the description doesn't need to carry parameter documentation. It does conceptually align 'trough depth' with maxTrough and 'still underwater' with stillUnderwater, but it adds no technical parameter details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: 'Find wallets that blew up and never recovered,' and defines the exact criteria (deep cumulative realized PnL trough plus still underwater). It also names the key return fields (wallet, trough depth, current cumulative PnL), which distinguishes it from related sibling tools like pulse_survivors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case: 'Use for "who got rekt and stayed rekt?"' This tells the agent when to invoke the tool. It doesn't explicitly contrast it with alternatives like pulse_survivors, but the anti-survivor framing and 'never recovered' condition make the intended context reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_backstop_eventsBackstop Liquidation EventsARead-onlyIdempotent
Get the most catastrophic individual liquidations across Hyperliquid — large forced closes ranked by loss. Returns wallet, coin, side, entry VWAP, peak size, realized PnL, penalty fee, liquidation method, and liquidator address. Use for 'who got wrecked hardest?' and post-mortem analysis. Default returns $10k+ losses.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of events to return. | |
| method | No | Optional liquidation method filter (e.g. 'market', 'backstop'). | |
| offset | No | Pagination offset. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. | |
| maxRealizedPnl | No | Only return losses at least this large (negative). Default -10000 = $10k+ losses. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description's job was to add behavioral context. It adds meaningful detail: results are ranked by loss, the default threshold is $10k+ losses, and it lists the exact liquidation attributes returned. This goes beyond annotation hints 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose appears in the first sentence, followed by return fields, use case, and default threshold. Every sentence adds value, and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a read-only query tool with no output schema, and the description covers purpose, ranking behavior, returned fields, and default filter. Combined with the annotations and fully described parameters, an agent has enough context 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds a little extra by restating the default $10k+ loss threshold, which maps to maxRealizedPnl, but it does not meaningfully extend parameter understanding beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a clear resource ('most catastrophic individual liquidations across Hyperliquid'), and a ranking criterion ('ranked by loss'). It also enumerates the returned fields, making the tool's purpose unmistakable and distinct from related live liquidation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: 'Use for “who got wrecked hardest?” and post-mortem analysis.' It does not name alternatives or state when not to use this tool, but the provided context is enough to guide an agent toward it for catastrophic-liquidation queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_biggest_tradesBiggest TradesARead-onlyIdempotent
Get the biggest winning or losing trades across all of Hyperliquid. Use type='wins' for the largest profitable trades, or type='losses' for the largest losses. Useful for market sentiment and narrative analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | 'wins' for biggest profitable trades, 'losses' for biggest losing trades | |
| limit | No | Number of trades to return | |
| threshold | No | Minimum PnL for wins (e.g. 50000) or maximum PnL for losses (e.g. -50000) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true and idempotentHint=true, so the description adds limited behavioral context: it confirms cross-exchange scope and the wins/losses split but does not describe sorting, result shape, or edge cases like empty thresholds. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: scope, parameter guidance, and use case. No redundancy or filler; key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with fully documented parameters, the only notable omissions are return-value shape and explicit sorting direction, but 'biggest' plus schema parameters make behavior inferable. It's nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter fully documented (type enum, limit bounds/default, threshold semantics, useToonFormat). The description only adds reiteration of the type parameter, so it doesn't meaningfully raise the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb and resource ('Get the biggest winning or losing trades across all of Hyperliquid'), then clarifies the type parameter meaning. This establishes a clear scope distinct from sibling trade-volume or liquidation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States an explicit use case ('market sentiment and narrative analysis') that tells an agent when this is appropriate, but it does not mention alternatives or exclusions relative to nearby siblings like pulse_recent_trades or pulse_top_liquidators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_capital_titansCapital TitansARead-onlyIdempotent
Find the most fee-efficient traders: highest realized PnL per dollar of fees paid. Returns wallet, total PnL, total fees, PnL-per-fee-dollar ratio, and lifecycle count. Use for 'who extracts the most edge per dollar spent on fees?'. minPnl/minFees gates filter out noise.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of wallets to return. | |
| minPnl | No | Minimum total PnL in USD. Default 10000. | |
| offset | No | Pagination offset. | |
| minFees | No | Minimum total fees in USD. Default 100. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is handled. The description adds behavioral context beyond annotations by specifying the return fields and explaining that minPnl/minFees gates 'filter out noise,' which gives the agent a sense of how results are scoped. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core ranking concept is in the first sentence, outputs in the second, and usage guidance in the third. Every sentence earns its place without filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only filtered ranking tool with no required parameters and no output schema, the description sufficiently covers what the tool does, what it returns, and when to use it. The return-field list compensates for the missing output schema, and the schema covers all parameter defaults and constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explicitly contextualizing minPnl and minFees as noise-filtering gates, which reinforces their semantic purpose beyond the schema's one-line descriptions. It does not need to restate the other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource: 'Find the most fee-efficient traders' and defines the ranking metric as 'highest realized PnL per dollar of fees paid.' It also lists the exact returned fields, which makes the tool's identity and output unambiguous. Although the title 'Capital Titans' is vague, the description clearly distinguishes this tool from the many sibling trader-ranking tools by focusing on PnL-per-fee-dollar efficiency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use-case quote: 'who extracts the most edge per dollar spent on fees?' This tells an agent when to reach for this tool. It does not name alternatives or exclude scenarios, but the stated use case is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_cohort_bias_historyCohort Bias HistoryARead-onlyIdempotent
Get historical hourly bias snapshots for trader cohorts. Returns net long/short notional and account counts per tier — 32 tier rows per hour (16 PnL + 16 size tiers), so filter with tierType and/or tier for a readable series. Use this to see how different groups (whales, smart money) have shifted their positioning over time. Supports per-coin or global aggregate; the API default window is 7d, max 30d. Returns { rows, totalCount, truncated, note? } with rows newest first, capped at limit (default 100); when truncated, narrow with tierType/tier or a shorter since, or raise limit (max 2000). Cohort history is served for up to the last 30 days; see data_coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER). Omit for global exchange aggregate. | |
| tier | No | Keep only one tier's rows (either vocabulary). Combine with tierType for a single series. | |
| limit | No | Max rows to return, newest first (default 100, max 2000). | |
| since | No | Time window for history (max 30d). e.g. '24h', '7d', '30d' | |
| endTime | No | Explicit end time (ISO string or timestamp). Defaults to now. | |
| tierType | No | Keep only PnL-tier or size-tier rows (applied by the connector; halves the row count). | |
| startTime | No | Explicit start time (ISO string or timestamp). Overrides 'since'. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false), and the description adds substantial context on top: hourly granularity, 32 rows per hour, default 7d window and 30d ceiling, row cap of 100 with max 2000, and truncation behavior. It stops short of explaining rate limits or latency characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph front-loads what the tool returns, then moves to filtering, scope, and return shape in a logical order. It is dense and mostly earns its sentences, though the limit default/max and the truncation remediation repeat information already in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still specifies the return envelope ({rows, totalCount, truncated, note?}), ordering (newest first), the cap and how to relieve truncation, the time window limits, and a pointer to data_coverage. An agent can call and handle results correctly without further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter's type, enum, default, and bounds. The description mostly restates those facts (limit default/max, since window, tierType/tier filtering) rather than adding new syntax or format meaning beyond the domain note about 16 PnL + 16 size tiers, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource — historical hourly bias snapshots for trader cohorts — and specifies the exact payload (net long/short notional and account counts per tier). 'Historical' implicitly separates it from the live_cohort_bias sibling, but no sibling is named, so the agent gets no explicit routing help against live_cohort_bias_history or pulse_cohort_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear use case ('see how different groups have shifted their positioning over time') plus concrete operational guidance on narrowing results via tierType/tier or a shorter since. It lacks explicit when-not-to-use conditions and never names an alternative tool for the live/snapshot case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_cohort_historyCohort HistoryARead-onlyIdempotent
Get historical performance data for a specific trader cohort over time. Shows how a tier's aggregate PnL, trade count, and activity have changed day-by-day. Use to spot trends like 'the sharps (Sharps) tier has been increasingly bearish over the last month.'
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days of history to return | |
| tier | Yes | Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs. | |
| tierType | Yes | Tier category: 'pnl' for profit tiers, 'size' for volume tiers | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, openWorldHint, idempotentHint, non-destructive), so the description's burden is lower. It adds useful context that data is historical, tier-level, and day-by-day, but does not disclose output shape, pagination, or any additional behavioral caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. It front-loads the verb-resource pair, then details the metrics and granularity, then gives a concrete use case. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given strong annotations and full schema coverage of all parameters, the description is largely complete for selecting and invoking the tool. It conveys the data returned and a representative use case; the main omission is guidance on choosing between this and closely related cohort-history siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description loosely references a 'trader cohort' and 'tier', but does not add meaning beyond what the schema already documents for tierType, tier, days, or useToonFormat.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get historical performance data for a specific trader cohort over time.' It also names concrete metrics (aggregate PnL, trade count, activity) and day-by-day granularity. However, it does not explicitly differentiate itself from close siblings like pulse_cohort_performance_daily or pulse_cohort_bias_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use to spot trends...' sentence provides a clear, concrete usage scenario with an illustrative example. It does not, however, state when not to use this tool or name alternatives, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_cohort_performance_dailyCohort Daily PerformanceARead-onlyIdempotent
Get historical daily performance statistics for trader cohorts. Returns PnL, volume, trade counts, and active trader counts per tier — 32 tier rows per day, so filter with tierType and/or tier for a readable series. Use this to track the consistency and profitability of different groups over time. API default window 30d, max 30d. Returns { rows, totalCount, truncated, note? } sorted by date (newest first) then tierType and tier, capped at limit (default 100); when truncated, narrow with tierType/tier or a shorter since, or raise limit (max 2000). Cohort history is served for up to the last 30 days; see data_coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Keep only one tier's rows (either vocabulary). Combine with tierType for a single series. | |
| limit | No | Max rows to return, newest date first (default 100, max 2000). | |
| since | No | Time window for history (max 30d). e.g. '7d', '14d', '30d' | |
| endTime | No | Explicit end time (ISO string or timestamp). Defaults to now. | |
| tierType | No | Keep only PnL-tier or size-tier rows (applied by the connector; halves the row count). | |
| startTime | No | Explicit start time (ISO string or timestamp). Overrides 'since'. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read-only, idempotent operation, and the description adds substantial behavior beyond them: a 30-day default/max window, 32 tier rows per day, sort order (date desc, then tierType/tier), the limit cap (100 default / 2000 max), and explicit truncation handling. This is exactly the operational context an agent needs to size its queries correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then return shape, then operational guidance in a logical order. A few clauses restate schema facts (default 100, max 2000, truncation), which is mild redundancy, but the density is justified given the truncation behavior and coverage limits it must convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return contract itself ({ rows, totalCount, truncated, note? }, sort order) and even routes the agent to the data_coverage sibling for retention limits. Nothing material to calling or interpreting this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 nevertheless adds value beyond the schema: it explains that 32 rows are produced per day and that combining tier with tierType yields a single series, that tierType 'halves the row count', that startTime overrides since, and that since is capped at 30d. That exceeds schema-level documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('historical daily performance statistics for trader cohorts') and enumerates the returned measures (PnL, volume, trade counts, active trader counts per tier). This is clearly distinguishable from siblings like pulse_cohort_summary, pulse_cohort_history, and pulse_cohort_positions without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit intent ('track the consistency and profitability of different groups over time') and practical filtering advice ('filter with tierType and/or tier for a readable series'), plus a remedy path when truncated. It does not, however, name or exclude the closest sibling alternatives (e.g. pulse_cohort_history or pulse_cohort_summary), so routing between them is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_cohort_positionsCohort PositionsARead-onlyIdempotent
See what a specific trader cohort is holding RIGHT NOW. For example, get all live positions held by 'apex' (Apex) tier traders or 'heavyweights' (Heavyweights) size wallets. This is real-time whale intelligence.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs. | |
| limit | No | Number of positions to return | |
| tierType | Yes | Tier category: 'pnl' for profit tiers, 'size' for volume tiers | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds useful context about real-time/live holdings, but does not disclose other behavioral traits such as response format particulars, pagination, or rate limits. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core action, and includes a concrete example. The final sentence 'This is real-time whale intelligence.' is slightly promotional but does not significantly hurt clarity or length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple listing tool with rich schema annotations, but it does not describe the output structure (no output schema exists) or explicitly route the agent away from similar sibling tools like pulse_cohort_recent_positions or pulse_cohort_trades. More detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds helpful examples of tier values ('apex', 'heavyweights') and implies the pnl/size distinction, but it does not materially expand beyond the parameter descriptions in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: see/get live positions held by a specific trader cohort. It clarifies current holdings ('RIGHT NOW') and gives concrete examples with 'apex' and 'heavyweights', which distinguishes it from sibling tools focused on recent trades, history, or summaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the primary use case clear: retrieving the current positions of a defined cohort, especially for whale/size tracking. It does not explicitly name alternative tools or state when not to use it, but the 'RIGHT NOW' framing provides sufficient contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_cohort_recent_alpha_concentrationRecent-Tier Cohort Alpha ConcentrationARead-onlyIdempotent
How concentrated profit is WITHIN a recent-tier cohort: percentile bands of the cohort's wallets and each band's share of the cohort's total PnL. Returns band, wallet count, band PnL, % of tier PnL, and tier total wallets. Use for 'within the hot apex (Apex) cohort, do a few wallets carry everything?'.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs. | |
| tierType | Yes | Tier category: 'pnl' for profit tiers, 'size' for volume tiers. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as read-only, idempotent, and non-destructive. The description adds useful behavioral detail beyond annotations by explaining that it segments wallets into percentile bands and returns their PnL concentration, including band PnL, wallet count, percentage of tier PnL, and total tier wallets. This effectively conveys the tool's output behavior without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences followed by a concrete use-case quote. It front-loads the core behavior, lists return fields, and gives an example without any filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for a read-only aggregation tool: it defines the analysis, lists returned fields, provides a usage example, and all input parameters are fully documented in the schema. Minor gaps such as the definition of 'recent' and percentile-band boundaries are not critical for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents tierType, tier, and useToonFormat in detail. The description adds no additional parameter-level meaning beyond referencing the Apex tier as an example. Baseline 3 is appropriate because the structured schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific analytical purpose: measuring profit concentration within a recent-tier cohort via percentile bands and their share of cohort PnL. It also enumerates the exact returned fields and gives a concrete example use case, making it clearly distinguishable from sibling cohort and market-concentration tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context via the quote: 'within the hot apex (Apex) cohort, do a few wallets carry everything?' This tells an agent when to reach for the tool. It does not name alternative tools or give exclusion criteria, so it stops short of a full when-not/alternatives guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_cohort_recent_lifecycle_statsRecent-Tier Cohort Lifecycle StatsARead-onlyIdempotent
Per-wallet lifecycle stats for a cohort defined by its LAST-30-DAY tier: lifecycles, wins, losses, liquidations, total PnL, fees, avg hold, biggest win/loss, plus the wallet's recent pnl/size tier labels. Use for position-level analysis of who is currently printing.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs. | |
| limit | No | Number of wallets to return. | |
| offset | No | Pagination offset. | |
| tierType | Yes | Tier category: 'pnl' for profit tiers, 'size' for volume tiers. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, so the description does not need to restate those. It adds useful behavioral context beyond the schema by explaining the cohort is based on LAST-30-DAY tier and outlining the returned wallet-level metrics. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, leading with the core resource definition and metric list, then closing with a clear use case. Every phrase earns its place; there is no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries responsibility for explaining what the agent should expect in the response, and it does a solid job by enumerating the returned metrics and tying them to the cohort definition. It is not exhaustive—ordering and default toon-format behavior are left to the schema—but it is sufficient for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some contextual meaning around 'recent tier' and 'currently printing,' but it does not substantially extend the already detailed parameter documentation for tier, tierType, limit, offset, or useToonFormat.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource: per-wallet lifecycle stats for a cohort defined by its LAST-30-DAY tier, and lists the included metrics such as lifecycles, wins, losses, liquidations, total PnL, fees, and avg hold. It conveys a distinct scope from sibling lifecycle/cohort tools, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use for position-level analysis of who is currently printing,' which gives the agent a clear decision signal for when to invoke this tool. It does not mention exclusions or when-not-to-use cases, 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.
pulse_cohort_recent_positionsRecent-Tier Cohort PositionsARead-onlyIdempotent
Live positions held by a cohort defined by its LAST-30-DAY tier (pnl_tier_recent / size_tier_recent), not lifetime tier. Surfaces what currently-printing wallets are positioned for right now — catches regime changes the all-time pulse_cohort_positions misses.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs. | |
| limit | No | Number of positions to return. | |
| tierType | Yes | Tier category: 'pnl' for profit tiers, 'size' for volume tiers. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is read-only, open-world, idempotent, and non-destructive. The description adds that the data is 'live' and scoped to recent-tier cohorts, which is useful, but it does not disclose return formatting, pagination behavior, or data-freshness caveats. Since annotations carry the safety profile, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The first sentence states the defining behavior and scope, and the second gives the practical use case and contrasts it with the sibling tool. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two required parameters, full schema descriptions, and clear annotations. The description covers the non-obvious selection logic that distinguishes this from pulse_cohort_positions. There is no output schema, but the return concept ('positions held by a cohort') is clear enough for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema fully documents all four parameters including enums, defaults, and legacy-slug behavior. The description adds the recent-tier concept (pnl_tier_recent / size_tier_recent), but the schema already handles 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('positions held by a cohort') and a specific defining scope ('LAST-30-DAY tier'), and explicitly contrasts it with the all-time pulse_cohort_positions sibling. An agent can immediately tell what this tool returns and how it differs from related cohort-position tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the selection criterion ('LAST-30-DAY tier ... not lifetime tier') and names the alternative it complements ('the all-time pulse_cohort_positions misses'). This gives clear when-to-use and 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.
pulse_cohort_recent_top_positionsRecent-Tier Cohort Top PositionsARead-onlyIdempotent
Top closed position lifecycles by a cohort defined by its LAST-30-DAY tier: the biggest/most notable open->close cycles from currently-printing wallets, with entry/exit VWAP, hold duration, realized PnL, fees, and liquidation flag.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs. | |
| limit | No | Number of positions to return. | |
| offset | No | Pagination offset. | |
| tierType | Yes | Tier category: 'pnl' for profit tiers, 'size' for volume tiers. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds behavioral context beyond those annotations by disclosing that the result is restricted to 'currently-printing wallets' and by enumerating the returned fields (entry/exit VWAP, hold duration, realized PnL, fees, liquidation flag). This helps the agent understand the data contents without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the core object ('Top closed position lifecycles') and then efficiently packs the cohort definition and output fields. It is not padded, but the sentence is long and somewhat run-on, requiring careful parsing. Still, every phrase contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does a good job listing return fields and explaining the cohort. However, it leaves ambiguity about the time range of the positions themselves (only the tier is defined by last-30-days) and what criteria define 'biggest/most notable'. These gaps could lead to incorrect invocation or interpretation, though the schema covers pagination and format parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter thoroughly. The description does not add parameter-specific meaning, such as explaining how tierType or tier interact with the cohort definition. It provides high-level context about the cohort but does not go beyond the schema, hence the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: 'Top closed position lifecycles' and the specific cohort definition: 'a cohort defined by its LAST-30-DAY tier' from 'currently-printing wallets'. It lists concrete output metrics (entry/exit VWAP, hold duration, realized PnL, fees, liquidation flag), making the tool's purpose specific and distinguishable from siblings like pulse_cohort_recent_positions or pulse_cohort_recent_trades, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when you need top closed position lifecycles for a recent-tier cohort—but it does not explicitly state when not to use it or name any alternative sibling tools. No exclusions or comparisons are provided, so an agent must infer the appropriate context from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_cohort_recent_tradesRecent-Tier Cohort TradesARead-onlyIdempotent
Recent trades by a cohort defined by its LAST-30-DAY tier (pnl_tier_recent / size_tier_recent). Shows what currently-printing wallets have been trading in the window — real-time alpha weighted to who is hot NOW, not all-time.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs. | |
| limit | No | Number of trades to return. | |
| since | No | Time window: e.g. '10m' (minutes), '1h' (hours), '1d' (days) | 1h |
| tierType | Yes | Tier category: 'pnl' for profit tiers, 'size' for volume tiers. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation safe/read-only/idempotent. The description adds behavioral context by explaining that the cohort is derived from LAST-30-DAY tiers and that results reflect currently-printing wallets, not historical standings. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and resource, and every clause adds meaningful distinction. There is no fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for tool selection and invocation: it states what is returned (recent trades), who is included (last-30-day tier cohorts), and the temporal emphasis. The absence of an output schema is not a major gap because the tool name and param schema make the return shape reasonably inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by clarifying that tier and tierType refer to the recent/last-30-day tier classifications (pnl_tier_recent / size_tier_recent), which is not explicitly encoded in the schema. It does not discuss limit/since/useToonFormat, but the schema already documents those well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Shows') and identifies the exact resource: recent trades for a cohort defined by its last-30-day tier. It clearly distinguishes the tool from all-time cohort queries by emphasizing 'currently-printing wallets' and 'not all-time.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 this tool: when the agent wants real-time alpha from wallets that are hot NOW based on recent-tier classification. It does not explicitly name alternatives or exclusion conditions, but the 'not all-time' contrast is a useful usage signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_cohort_summaryCohort SummaryARead-onlyIdempotent
Get behavioral cohort analysis across every tracked wallet on Hyperliquid. Returns PnL tiers (Apex/apex, Sharps/sharps, Grinders/grinders, Scrapers/scrapers, The Crowd/crowd, Bleeders/bleeders, Trapped/trapped, Blown Out/blown_out) and size tiers (Heavyweights/heavyweights, Cruiserweights/cruiserweights, Middleweights/middleweights, etc). Response payloads still use legacy slugs (money_printer, leviathan, ...). Each tier shows wallet count, avg PnL, avg win rate, and total volume. For the current tracked-wallet total, call pulse_global_stats first.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, open-world, idempotent, and non-destructive, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: response payloads use legacy slugs like money_printer and leviathan, and each tier exposes wallet count, avg PnL, avg win rate, and total volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, and the remaining sentences add concrete output details and a necessary prerequisite call. The tier lists are fairly long but earn their place by setting expectations about the response taxonomy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description explains what the response contains: tier categories, per-tier metrics, and legacy slug naming. It also covers the related global-stats prerequisite. Minor gaps remain around the exact top-level payload shape and the full size-tier list, but the tool has only one optional boolean parameter and is otherwise well-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the single optional useToonFormat parameter with its default and meaning, so schema coverage is 100%. The description adds no additional parameter-level semantics beyond what the schema already provides, which matches the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get behavioral cohort analysis across every tracked wallet on Hyperliquid.' It further differentiates the tool by enumerating the PnL and size tier categories it returns, which distinguishes it from sibling cohort tools like pulse_cohort_positions or pulse_style_distribution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the scope clear ('across every tracked wallet') and advises calling pulse_global_stats first when the total tracked-wallet count is needed. However, it does not explicitly state when to prefer this tool over alternatives or when not to use it, so usage guidance is mostly implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_cohort_tradesCohort TradesARead-onlyIdempotent
See every trade a specific cohort has made recently. For example: 'show me all trades the apex (Apex) tier made in the last hour.'
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs. | |
| limit | No | Number of trades to return | |
| since | No | Time window: e.g. '10m' (minutes), '1h' (hours), '1d' (days) | 1h |
| tierType | Yes | Tier category: 'pnl' for profit tiers, 'size' for volume tiers | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint true the safety profile is already clear, but the description's claim of 'every trade' is contradicted by the schema's limit parameter (max 100, default 50), so it can mislead an agent about completeness of results. It also does not disclose the default compact toon format or that results are bounded by the since window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences state the purpose and give a concrete usage example with no filler. The structure front-loads the action and then illustrates it productively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The rich schema plus readOnly/idempotent annotations make the tool callable, and the example clarifies the tier/time intent. However, the description omits the bounded limit behavior (undermining 'every trade'), and with no output schema it does not set expectations for the returned trade fields or toon format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions, so the description does not need to carry the semantic load. It reinforces the tier and time-window concepts through the apex example, but adds nothing about tierType or limit beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a read operation that lists recent trades for a chosen cohort, with a concrete 'apex tier' example that anchors the resource and time scope. It does not explicitly differentiate from the similarly named sibling pulse_cohort_recent_trades, so it stops short of the highest clarity bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The example ('show me all trades the apex tier made in the last hour') gives a clear context for when to invoke the tool and how to phrase a request. It does not state when-not-to-use or point to alternatives such as pulse_trader_trades or pulse_recent_trades, but the intended use is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_coin_alpha_mapCoin Alpha MapARead-onlyIdempotent
Per-coin profit pools split into winners vs losers vs net. Returns coin, lifecycles, unique wallets, winners pool, losers pool, net PnL, winning/losing lifecycle counts, and total fees. Use for 'which coins are net wealth creators vs destroyers?'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of coins to return. | |
| offset | No | Pagination offset. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful output semantics by enumerating the returned fields, but it does not disclose ordering, pagination behavior, or other execution traits, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: it opens with the core concept, then lists the output fields, and closes with a concrete use case. Every sentence contributes distinct value with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list-like tool with only three self-describing parameters and no output schema, the description is reasonably complete. It enumerates the returned fields and states the guiding use case, although it could optionally mention sorting or the semantics of 'lifecycles' for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all three parameters with descriptions, so schema coverage is 100%. The tool description adds no parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: splitting per-coin profit pools into winners, losers, and net, and lists the returned fields. It communicates a specific analytical use case, but it does not explicitly differentiate this tool from similar sibling tools like pulse_coin_kings or pulse_persistent_winners, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear intended use case in the form of a question: "which coins are net wealth creators vs destroyers?" This gives an agent useful context for when to invoke the tool, though it does not mention exclusions or alternative sibling tools explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_coin_kingsCoin KingsARead-onlyIdempotent
Find the top earner(s) per coin within the window. perCoinRank=1 returns only the #1 earner ('king') of each coin; higher values return the top-N per coin. Returns coin, wallet, coin PnL, fees, lifecycle count, and rank. Use for 'who owns BTC?' / 'who is the best trader of each market?'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of rows to return. | |
| offset | No | Pagination offset. | |
| perCoinRank | No | Top-N earners per coin to return. 1 = the king only. Default 1. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, open-world, idempotent, non-destructive behavior. The description adds meaningful behavioral context by explaining the perCoinRank semantics (1 = king only, higher = top-N) and listing the exact returned fields, which helps the agent understand what the invocation will yield.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded. The main action comes first, then parameter behavior, return fields, and use-case examples. Every sentence adds value and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's ranking semantics, returned fields, and typical user questions. With full schema parameter documentation and annotations, this is sufficient for an agent to select and invoke the tool correctly, though it could be slightly stronger by naming related sibling tools for clearer routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters. The description reinforces the meaning of perCoinRank with an example ('1 returns only the #1 earner'), but it adds no additional meaning for limit, offset, or useToonFormat beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb-object-purpose phrase: 'Find the top earner(s) per coin within the window.' It defines the core concept 'king' and frames the query around 'who owns BTC?' / 'who is the best trader of each market?', making the tool's scope clear and distinct from sibling leaderboard-style tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states what questions the tool answers: 'who owns BTC?' and 'who is the best trader of each market?'. This gives an agent clear contextual guidance, though it does not explicitly name sibling alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_compareCompare TradersARead-onlyIdempotent
Side-by-side comparison of 2-5 wallets via their lifecycle summaries — win rate, total/avg PnL, hold duration, biggest win/loss, fees, liquidations. Use for head-to-head trader comparison ('who is the better trader, A or B?').
| Name | Required | Description | Default |
|---|---|---|---|
| wallets | Yes | 2 to 5 wallet addresses to compare. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful context beyond annotations by specifying that this tool operates on lifecycle summaries and enumerating the metrics included (win rate, PnL, hold duration, fees, liquidations). It does not address output format details, but the schema covers useToonFormat.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the first states function and scope, the second gives an explicit use case. Every element earns its place, and the key constraint '2-5 wallets' is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is largely complete: it explains the comparison purpose, the wallet-count bounds, the data source, and the returned metrics, which compensates for the lack of an output schema. It could be slightly richer by noting whether results are pre-aggregated or require closed lifecycles, but this is not a major gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the wallets parameter by mentioning '2-5 wallets' and signals the output content, but it adds no new meaning about parameter syntax, formats, or the useToonFormat behavior beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Side-by-side comparison'), a precise resource ('2-5 wallets via their lifecycle summaries'), and the exact metrics returned. It clearly differentiates from the many single-trader and lifecycle sibling tools by focusing on head-to-head comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use for head-to-head trader comparison' with a concrete example question, which gives clear context for when to invoke this tool. It does not explicitly name alternatives 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.
pulse_cross_market_assetCross-Market AssetARead-onlyIdempotent
Cross-market aggregation for one asset: per-venue long/short positions, notional, net bias, unique wallets, leverage, plus a cross-venue total. Also returns biasRange (max-min netBias across venues) to detect disagreement. Accepts canonical names or synonyms (e.g. PAXG resolves to GOLD). Use when the user asks 'is gold crowded?', 'do different dexes disagree on BTC direction?', 'total OI on ETH across all venues?'.
| Name | Required | Description | Default |
|---|---|---|---|
| canonical | Yes | Canonical asset name or synonym (e.g. 'GOLD', 'PAXG', 'BTC', 'HYPE'). The server resolves synonyms. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds useful behavioral detail beyond annotations: it resolves synonyms (PAXG to GOLD), computes biasRange as max-min netBias across venues, and returns both per-venue and cross-venue totals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the return payload, the second adds the biasRange insight and synonym behavior, and the closing examples cover usage. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description does a solid job listing the main return components and giving concrete invocation triggers. It could be slightly more complete by mentioning the compact toon format effect of useToonFormat or defining 'net bias', but the current level is sufficient 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters well. The description adds a helpful synonym example ('PAXG resolves to GOLD') and canonical name examples, but this is largely redundant with the schema's own description for the canonical parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Cross-market aggregation') and resource ('one asset'), and lists concrete returned fields: per-venue positions, notional, net bias, unique wallets, leverage, cross-venue total, and biasRange. It distinguishes itself from single-venue or market-wide tools by emphasizing per-venue and cross-venue views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use-case examples: 'is gold crowded?', 'do different dexes disagree on BTC direction?', 'total OI on ETH across all venues?'. This gives clear context for when to invoke it, though it does not explicitly name when not to use it or direct to alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_entity_leaderboardEntity LeaderboardARead-onlyIdempotent
Top entities (owners, NOT wallets) ranked by combined gross open entry notional across all their sub-accounts. This is the deduplicated view a wallet leaderboard cannot give: a fund running 35 sub-accounts appears as ONE entity with its true combined book. System/protocol accounts are excluded. Each row: entity master address, wallet count, open position count, gross entry notional. Requires Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows to return (max 100). | |
| offset | No | Pagination offset (window capped at 200). | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive. The description adds meaningful behavioral context beyond those: deduplication across sub-accounts, exclusion of system/protocol accounts, and the exact row fields returned. It also surfaces the Pro tier access requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three dense sentences with no filler. It front-loads the ranking criterion, then explains the entity-level value, exclusions, output columns, and access requirement. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only leaderboard tool with fully documented optional parameters and no output schema, the description is complete: it states ranking metric, aggregation scope, exclusions, output fields, and tier restriction. Nothing essential for calling or interpreting the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 documents limit, offset, and useToonFormat. The description does not need to add parameter meaning and does not contradict any schema details. The baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Top entities (owners, NOT wallets) ranked by combined gross open entry notional across all their sub-accounts.' It clearly distinguishes entity-level aggregation from wallet-level leaderboards and defines what each row contains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need the deduplicated entity view that a wallet leaderboard cannot provide, with system/protocol accounts excluded. It notes the Pro tier requirement. It does not explicitly name sibling alternatives or state when not to use it, 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.
pulse_entity_profileEntity ProfileARead-onlyIdempotent
Resolve ANY wallet to its owner entity: the master account, every named sub-account (and weaker 'linked' wallets), each member's open book, the COMBINED open positions across all of them, and a 'verified vs chain at block N' stamp. Answers 'who owns this wallet?' and 'what is this trader's real total book across all their accounts?' — sub-accounts trade independently on Hyperliquid, so per-wallet views undercount every multi-account trader. Note: vaults appear as named sub-accounts of their creator. Requires Pro tier.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Any wallet address — master, sub-account, or unknown; it resolves to the owning entity either way. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds meaningful context beyond that: Pro tier requirement, the 'verified vs chain at block N' stamp, and the caveat that vaults appear as named sub-accounts. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average, but every sentence earns its place: scope, output components, use cases, the reason entity-level aggregation matters, a domain caveat about vaults, and the access requirement. It is front-loaded with the core action and not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and a complex return concept, the description covers the main outputs well and adds important operational context (Pro tier, vault behavior). It does not explain 'linked' wallets in detail or the exact meaning of the block-N verification stamp, but these are minor gaps given the schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are already well documented in the input schema. The description reinforces that any wallet address works but does not add significant new 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Resolve ANY wallet to its owner entity') and enumerates concrete outputs: master account, named sub-accounts, linked wallets, open books, combined positions, and a verification stamp. It also answers the exact questions the tool addresses, making it clearly distinguishable from per-wallet or trader-level siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use cases ('who owns this wallet?', 'what is this trader's real total book?') and explains why entity-level resolution is needed ('per-wallet views undercount every multi-account trader'). It does not explicitly name alternative tools or give exclusion criteria, so it stops 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.
pulse_exchange_oiExchange Open InterestARead-onlyIdempotent
Current open interest for the whole exchange by dex, with long/short notional split. Gross both-sides convention (matches HyperTracker/hl.eco headlines; halve for one-sided OI). Use for 'what's the OI on Hyperliquid / on xyz?', market-size questions, and long-vs-short balance checks. Cached up to 120s.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses two behavioral traits beyond what annotations provide: the gross both-sides OI convention with an explicit halving note for one-sided comparisons, and the 120s cache ceiling that tells the agent data may be stale. Annotations already declare readOnly/idempotent/non-destructive, and the description adds real interpretive context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: definition/scope, convention caveat, use cases, and freshness. The most decision-relevant facts are front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only snapshot tool with one optional parameter and no output schema, the description covers selection (what + use cases), interpretation (gross convention), and freshness (cache). Nothing an agent needs to choose or call this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the useToonFormat parameter is fully documented in the schema with its default and behavior (compact toon vs standard JSON). The description adds no parameter-specific detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('open interest for the whole exchange by dex') with clear scope and the long/short notional split, matching the title while adding concrete detail. The example queries ('what's the OI on Hyperliquid / on xyz?') make the intent unambiguous and help distinguish it from volume, positions, and historical OI siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use for' explicitly lists three concrete scenarios — OI queries by exchange, market-size questions, and long-vs-short balance checks — giving an agent clear selection criteria. It does not, however, name alternatives or state when not to use it (e.g., versus market_historical_oi, live_oi_history, or live_official_oi), so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_exchange_positionsExchange PositionsARead-onlyIdempotent
Exchange-wide position vitals by dex: open positions and wallets holding them, plus the 24h flow — positions closed, liquidations, and TOTAL REALIZED PNL across the whole exchange (gross profits/losses split). Answers 'how many positions are open on Hyperliquid?' and 'did traders collectively make or lose money today?' Cached up to 120s.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds useful behavioral context beyond the annotations: data is 'cached up to 120s,' the 24h flow window is specified, and the PNL is split into gross profits/losses. This gives an agent reasonable expectations about freshness and aggregation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the core scope, enumerates the specific data included, and closes with illustrative questions and cache behavior. Every sentence earns its place, and the most important semantic points appear before examples. There is no filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one optional parameter and a full schema description, the definition is largely complete. It covers the data scope, the time window, the aggregation level, the PNL split, and caching. It does not enumerate supported DEX names or describe the exact response shape, but no output schema exists and the core calling context is sufficiently specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for the single parameter useToonFormat, including its default and meaning. The description adds no parameter-specific details, but the schema carries the full burden already. Baseline 3 is appropriate since nothing is missing, yet the description does not add extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific deliverable: exchange-wide position vitals per DEX, including open positions, wallet counts, 24h closed positions, liquidations, and total realized PNL with gross profit/loss split. It differentiates from sibling tools by emphasizing 'across the whole exchange' and 'by dex,' which separates it from market-level or cohort-level position tools. The example questions make the tool's purpose immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context via example questions ('how many positions are open on Hyperliquid?', 'did traders collectively make or lose money today?'), which tells an agent when this tool is appropriate. It does not explicitly name alternative tools or state when not to use it, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_exchange_volumeExchange VolumeARead-onlyIdempotent
24h trading volume for the WHOLE exchange, split by dex: native Hyperliquid ('hl') plus every builder dex (xyz, hyna, ...), with per-dex match counts and distinct traders. Use for 'how much volume does Hyperliquid do?' — and note builder dexes are ~43% of it. Aggregates cached up to 120s.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive; the description adds meaningful behavioral context by disclosing that aggregates are cached up to 120 seconds and that builder dexes constitute ~43% of volume. This goes beyond what annotations express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: main data scope, breakdown, metrics, use case, and caching note all fit naturally. Key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter aggregate tool, the description covers the data dimensions returned, scope, caching, and a concrete user query. No output schema exists, but the description supplies the essential output semantics without requiring an agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional parameter, useToonFormat, is fully documented in the schema. The description adds no parameter-specific information, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states the exact resource (24h trading volume for the entire exchange), the breakdown by dex, and the specific metrics included (match counts, distinct traders). It distinguishes the whole-exchange scope from sibling tools focused on other aggregates such as OI or positions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit use case: "Use for 'how much volume does Hyperliquid do?'" and clarifies the exchange-wide scope. It does not name alternatives or state when not to use this tool, but the use case is concrete enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_global_statsGlobal StatsARead-onlyIdempotent
Get global Hyperliquid trading statistics: total traders, trades, volume, PnL, and data coverage period. Use this to understand the overall scale of the market. dataStartDate/dataEndDate are the indexed trade window (2025-03-22 onward as of 0.11.4); data_coverage reports the window and freshness of every dataset.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, openWorld, non-destructive. The description adds information annotations cannot carry: the indexed trade window (2025-03-22 onward as of version 0.11.4) and the fact that data_coverage reports freshness of every dataset. That freshness/window context is genuinely useful for interpreting results, though the response shape itself remains unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose and metrics, then usage, then the version/window caveat. The final sentence is dense but every clause carries substantive information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the headline return fields and flags data-freshness caveats, which is about as complete as a zero-required-parameter read tool needs. It stops short of describing the nested structure of the coverage report.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (useToonFormat), and the schema documents it at 100% coverage with the default and the false-case behavior. The description adds no parameter semantics; its dataStartDate/dataEndDate references are output fields, not inputs, which could momentarily be mistaken for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get global Hyperliquid trading statistics') and enumerates the metrics returned (traders, trades, volume, PnL, coverage period). It implicitly distinguishes itself from the many per-trader and per-cohort siblings via 'global' and 'overall scale of the market,' though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to understand the overall scale of the market' gives a real use case but no when-not-to-use guidance and no explicit alternatives, despite a sibling literally named data_coverage that overlaps with the mentioned coverage reporting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_hour_profitabilityHourly ProfitabilityARead-onlyIdempotent
Global PnL heatmap by UTC hour of position close. Returns, for each of the 24 hours, lifecycle count, total PnL, avg PnL, wins, and losses. Use for 'what time of day is most profitable to close?' / session-bias analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool as read-only, idempotent, and non-destructive. The description adds useful behavioral context by clarifying that results are global, based on UTC hour of position close, and include specific aggregate metrics for each of the 24 hours.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler: the first states what the tool returns and the grouping dimension, the second gives the concrete use case. Every sentence provides value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, zero required parameters, and strong annotations, the description sufficiently explains what the tool returns and when to use it. It even enumerates the computed fields, which compensates for the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter, useToonFormat, is fully described in the schema with 100% coverage, so the description does not need to add parameter detail. It correctly focuses on the output semantics rather than repeating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource combination: returns a global PnL heatmap grouped by UTC hour of position close. It clearly identifies the analytical dimension and differentiates itself from sibling analytics tools by focusing on time-of-day profitability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the intended use case: answering 'what time of day is most profitable to close?' and session-bias analysis. It does not mention when not to use it or name alternative tools, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_leaderboardTrader LeaderboardARead-onlyIdempotent
Get ranked trader leaderboard. Sort by PnL, win rate, volume, score, or risk-adjusted returns. Filter by time period (day/week/month/allTime) and minimum trade count. Use this to find the best traders on Hyperliquid. Trade history is indexed from 2025-03-22 (pulse_global_stats.dataStartDate; see data_coverage for the current window).
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort criteria | pnl |
| limit | No | Number of traders to return | |
| period | No | Time period | allTime |
| minTrades | No | Minimum trade count filter | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, open-world access, so the safety profile is covered. The description adds genuine context the annotations cannot: the index start date (2025-03-22), a pointer to dataStartDate and data_coverage for the current window — an important caveat about result completeness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with the core action first and filters second; nothing is padded. The parenthetical cross-references are slightly dense but carry real information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a pure read operation, the description covers the action, sort axes, filters, and data-window caveat well. Minor incompleteness: the undocumented 'losers' sort value and useToonFormat output switch are left entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (including enum values and the 1-100 limit range) are already documented structurally; baseline 3 applies. The description restates period and minTrades semantics but adds no format or syntax detail, and it silently omits the 'losers' sort mode and useToonFormat.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Get ranked trader leaderboard') with the sort axes and filters enumerated, so the tool's function is unambiguous. However it never distinguishes itself from near-name siblings like pulse_pnl_leaders or builder_leaderboard, which also rank traders, so the agent must infer the split from other means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to find the best traders on Hyperliquid' gives a use case, but no when-not guidance and no reference to the competing leaderboard tools in the sibling set. For a category with several similar ranking tools, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_lethal_coinsLethal CoinsARead-onlyIdempotent
Find the most dangerous markets: coins with the highest per-lifecycle liquidation rate. Returns coin, total lifecycles, liquidations, liquidation %, and total penalty. Use for 'which coins blow people up most often?'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of coins to return. | |
| offset | No | Pagination offset. | |
| minLifecycles | No | Minimum lifecycles for a coin to qualify (filters thin markets). Default 100. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is fully covered. The description adds useful context about the aggregation basis (per-lifecycle liquidation rate) and the returned fields, but it does not disclose ordering, units, or any timing/scope caveats beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first states the purpose and metric, the second lists return fields and gives a natural-language use case. There is no filler, and the key idea is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the returned fields and framing the query intent. It is largely complete for a simple read-only listing tool, though 'total penalty' lacks units and the sort order is only implied by 'highest.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents limit, offset, minLifecycles, and useToonFormat. The description does not add parameter-level meaning beyond what the schema states, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('Find the most dangerous markets') and pins down a precise metric: 'coins with the highest per-lifecycle liquidation rate.' This clearly differentiates it from siblings like pulse_top_liquidators or pulse_survivors through the focus on per-lifecycle liquidation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear intended query: 'Use for "which coins blow people up most often?".' This is an explicit use case. It does not name alternatives or exclusions, but the context is strong enough that an agent should know when to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_lifecyclePosition Lifecycle DetailsARead-onlyIdempotent
Look up one position lifecycle by its numeric ID, including the trade fills that composed it (timestamp, side, size, price, PnL, fee, tx hash) joined from the trades table within the open->close window. Use after pulse_trader_lifecycles to drill into exactly how a single position was built and unwound. Fills are paged by the connector: fillsLimit (default 100, max 1000) and fillsOffset; the response carries fillCount (total fills in the lifecycle), fillsOffset, truncated and a note with the next offset. Lifecycles are a rolling 90-day window (closed within the last 90 days, plus open ones); see data_coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Lifecycle ID (from pulse_trader_lifecycles). | |
| fillsLimit | No | Max fills to return in this page (default 100, max 1000). | |
| fillsOffset | No | Fills to skip, for paging (default 0). | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely new behavioral context: fills are joined from the trades table within the open->close window, paging is done by the connector, the response carries fillCount, fillsOffset, truncated and a note with the next offset, and the dataset is a rolling 90-day window. This is more than an agent could infer from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core lookup, then usage routing, then paging and window caveats — every sentence carries information. Minor redundancy: the fillsLimit default 100 / max 1000 detail duplicates the schema, and the run-on first sentence is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so: it enumerates fill fields, the paging metadata, and the truncation signal. It also discloses the 90-day rolling window and points to data_coverage for scope, so an agent has what it needs to call and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the type constraints: it explains that fillsLimit/fillsOffset drive connector-side paging, that truncated signals a partial page, and that a next-offset note is returned. It does restate fillsLimit's default/max, which the schema already gives.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('Look up one position lifecycle by its numeric ID') and immediately scopes the payload (the trade fills that composed it, with named fields). An agent can distinguish this single-lifecycle lookup from the sibling list tools like pulse_trader_lifecycles without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly sequences the tool: 'Use after pulse_trader_lifecycles to drill into exactly how a single position was built and unwound,' naming the alternative and the condition that selects it. It stops short of stating when-not to use it (e.g., vs pulse_lifecycles_recent or pulse_trader_lifecycle_summary), so it is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_lifecycles_recentRecent Closed LifecyclesARead-onlyIdempotent
Global feed of the most recently CLOSED position lifecycles across ALL wallets — 'what just closed exchange-wide right now'. Reads the corrected position_lifecycles_full table: includes MAE/MFE (when backfilled), a liquidation flag, and optional spot. Cross-wallet successor to pulse_recent_closed_positions. Filter by coin, minNotional, hold-duration range, and time window. Note: the very freshest closes may not have MAE/MFE yet — the risk backfill lags real-time, so recent rows can show null MAE/MFE. Lifecycles are a rolling 90-day window; the table's first day is not exposed by the API — see data_coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER). | |
| limit | No | Number of lifecycles to return. | |
| since | No | Time window: e.g. '10m' (minutes), '1h' (hours), '1d' (days) | 1h |
| includeSpot | No | Include spot (@-prefixed) pairs. Default false (perps only). | |
| maxDuration | No | Maximum hold duration in milliseconds (e.g. 1000 for sub-second HFT). | |
| minDuration | No | Minimum hold duration in milliseconds (e.g. 60000 for >= 1 minute). | |
| minNotional | No | Minimum notional in USD (peak_size * entry_vwap), e.g. 100000 for $100K+ positions. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a safe read-only, idempotent, open-world profile, and the description layers on genuinely useful operational context: MAE/MFE values may be null because the risk backfill lags real-time, the lifecycle table is a rolling 90-day window, and the first day is not API-exposed (routed to data_coverage). This discloses data-freshness and coverage caveats the agent cannot infer from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The feed description and source-table caveats are front-loaded and every sentence carries information, but the prose is dense with parentheticals and near the upper end of what an agent needs to parse. Slightly trimming the field-recitation sentence would improve it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned content (MAE/MFE, liquidation flag, optional spot) and the source table, plus coverage limits and a redirect to data_coverage. For an 8-parameter read tool this is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter (coin, limit, since, includeSpot, min/maxDuration, minNotional, useToonFormat) is already documented, including units like milliseconds for duration and USD notional. The description's 'filter by coin, minNotional, hold-duration range, and time window' merely restates these without adding format or default semantics, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb + resource + scope: a global feed of recently CLOSED position lifecycles across ALL wallets. It explicitly positions itself as the 'cross-wallet successor to pulse_recent_closed_positions', so an agent can distinguish it from that sibling without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The framing 'what just closed exchange-wide right now' plus the named predecessor clearly signals the use case (global, not per-trader). It does not explicitly state when to prefer the sibling pulse_trader_lifecycles or pulse_recent_closed_positions in edge cases, so it falls short of a full when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_market_concentrationMarket ConcentrationARead-onlyIdempotent
Power-law shape of trader profits: percentile bands (top 0.1%, 1%, 10%, ...) and each band's share of total profits. Returns band label, wallet count, band PnL, % of total profits, and rank range. Use for 'how concentrated is alpha — do the top 1% take everything?'.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral context by explaining the power-law framing, percentile bands, and the specific computed output fields. This goes beyond the structured annotations and helps the agent understand what the tool actually reports.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core concept ('Power-law shape of trader profits'), followed by concrete output details and a direct usage question. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and no output schema, the description is complete: it conveys the analytical purpose, the returned fields, and the intended question it answers. Nothing essential is missing for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, since the only parameter useToonFormat is fully described in the schema. The tool description does not add parameter-specific detail, but given the single well-documented boolean parameter, no additional compensation is needed. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: analyzing the power-law shape of trader profits via percentile bands and their share of total profits. It enumerates the exact return fields (band label, wallet count, band PnL, % of total profits, rank range), making the tool's purpose specific and distinguishable from typical profit or leaderboard tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit use case: 'how concentrated is alpha — do the top 1% take everything?'. This gives clear context for when the tool is appropriate. However, it does not mention when not to use it or name alternative sibling tools, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_max_pain_eventsMax Pain EventsARead-onlyIdempotent
Find the biggest survived drawdowns: closed perp positions that went deeply underwater (high MAE) yet still closed in profit. These are 'diamond hands' winners that nearly blew up first. Returns the position, entry/MAE/exit prices, realized PnL, and max drawdown %. Filtered to material positions (minPnl) with bounded drawdowns.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of events to return. | |
| minPnl | No | Minimum realized PnL in USD to filter noise. Default 1000. | |
| offset | No | Pagination offset. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. | |
| minDrawdownPct | No | Minimum drawdown % (MAE vs entry) to qualify. Default 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds meaningful behavioral detail beyond that: it returns position, entry/MAE/exit prices, realized PnL, and max drawdown %, and filters to material positions via minPnl. The phrase 'bounded drawdowns' is slightly vague, so it does not earn a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three well-structured sentences with the core purpose front-loaded. The 'diamond hands' phrasing adds useful interpretive color without padding, and every sentence contributes either selection criteria or return-value information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description covers the selection concept, return fields, and key filters, which is largely sufficient. A small gap is that 'bounded drawdowns' is not fully precise about whether it refers to the minimum drawdown threshold or an upper bound, and the sort order implied by 'biggest' is not explicitly stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description restates the minPnl concept and alludes to drawdown filtering, but does not meaningfully extend the parameter documentation. Baseline 3 is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: 'Find the biggest survived drawdowns' and then precisely defines what counts as one: closed perp positions that went deeply underwater (high MAE) yet still closed in profit. This clear definition differentiates the tool from related sibling tools like pulse_survivors or pulse_anti_survivors without needing to read their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 this tool: when the agent wants 'diamond hands' winners that nearly blew up but still closed profitably. It does not explicitly name alternatives or exclusion conditions, but the unique criteria and filter mentions make the intended use reasonably inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_most_traded_coinsMost Traded CoinsARead-onlyIdempotent
Get the most actively traded coins on Hyperliquid, ranked by trade count and volume. Use to understand what the market is focused on right now.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of coins to return | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral detail by specifying that results are ranked by trade count and volume, which is not present in annotations or schema. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and key ranking criteria, followed by a concise use-case sentence. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with no required parameters and well-documented schema, the description sufficiently conveys what to expect: a ranked list of actively traded coins. Since there is no output schema, a little more detail about the returned fields could improve it, but the description is adequate for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters (limit and useToonFormat) with descriptions and defaults, achieving 100% coverage. The tool description adds no parameter-level information, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a specific resource ('most actively traded coins on Hyperliquid'), and adds the ranking basis ('by trade count and volume'). It is clear and useful, but it does not explicitly differentiate this tool from similar pulse_* siblings such as pulse_coin_kings or pulse_market_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use to understand what the market is focused on right now' gives a clear situational cue for when the tool is appropriate. It does not name alternatives or provide exclusion criteria, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_my_planMy PlanARead-onlyIdempotent
Show the current API key's plan: tier, rate limits (per-minute/daily/monthly), and every tier's limits. Use when the user asks what plan they are on or after a tier/rate-limit rejection. Live remaining-quota counts also arrive on every API response as X-RateLimit-* headers.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior, so the description does not need to restate those. It adds useful context: the tool shows every tier's limits and mentions X-RateLimit-* headers as the source of live remaining-quota counts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one sentence defines what the tool returns, and one sentence gives clear usage timing plus a useful note about rate-limit headers. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only utility with one optional parameter, the description fully covers what the agent needs: the output contents, when to invoke it, and additional context about rate-limit headers. The lack of an output schema is compensated by the explicit listing of return data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional boolean parameter is fully documented in the schema. The tool description does not add parameter-level detail, but it does not need to because the schema already covers it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Show') and identifies the exact resource: the current API key's plan. It gives concrete content details (tier, rate limits, all tiers' limits) and is clearly distinct from the many market/analytics sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use: when the user asks what plan they are on or after a tier/rate-limit rejection. It does not name alternatives, but none of the siblings appear to cover plan information, so the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_newcomer_whalesNewcomer WhalesARead-onlyIdempotent
Find new big players: wallets whose first-ever lifecycle is recent but who have already moved large notional. Returns wallet, first-seen date, gross notional, total PnL, and lifecycle count. Use for 'who just showed up and is already trading big?'. Lower minNotional if no rows return at default.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of wallets to return. | |
| offset | No | Pagination offset. | |
| minNotional | No | Minimum gross notional in USD. Default 100000. | |
| newcomerDays | No | How recent the first lifecycle must be, in days. Default 30. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, idempotent, and non-destructive behavior. The description adds useful context beyond that: the first-ever lifecycle criterion, the returned metrics, and troubleshooting guidance on minNotional. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose, returned fields, and usage/fallback guidance. There is no filler, and the most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, fully schema-documented query with no output schema, the description covers intent, selection criteria, return fields, and a practical empty-result remedy. Nothing essential is missing for an 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter already has clear meaning, defaults, and ranges. The description adds only a generic usage tip about minNotional, which is helpful but not necessary for understanding the parameters themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Find'), a precise target ('wallets whose first-ever lifecycle is recent but who have already moved large notional'), and the returned fields. The newcomer-vs-established framing differentiates it clearly from siblings like pulse_persistent_winners and pulse_capital_titans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit motivating question ('who just showed up and is already trading big?') and even a fallback instruction to lower minNotional if no rows return. It does not explicitly mention when not to use it or which sibling alternatives to prefer, so it stops 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.
pulse_one_month_wondersOne-Month WondersARead-onlyIdempotent
Find flash-in-the-pan traders: big winners in a single month who then gave it back. Returns wallet, best-month PnL, total PnL, giveback amount, active months, and profitable months. Use for 'who had one great month then faded?'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of wallets to return. | |
| offset | No | Pagination offset. | |
| minBestMonth | No | Minimum best-month PnL in USD to qualify. Default 50000. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds meaningful behavioral context by specifying the selection logic ('big winners... who then gave it back') and enumerating the returned metrics, which is useful in the absence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no filler. It front-loads the core purpose, then lists outputs, then gives the canonical use case. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analytical tool with four optional, fully documented parameters and rich annotations, the description is adequately complete. It lists the key return fields and the intended question, so an agent can select and use the tool without needing more context. Minor gaps like the meaning of 'toon format' and giveback calculation details are not critical given the schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and every parameter has a meaningful description, default, and bounds. The tool description adds no additional parameter meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') and a clearly defined resource category ('flash-in-the-pan traders: big winners in a single month who then gave it back'). It differentiates this tool from siblings like pulse_persistent_winners by emphasizing the 'one great month then faded' pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a use-case query: 'who had one great month then faded?' This gives clear contextual guidance on when to invoke the tool. It does not explicitly state when not to use it or name alternative tools, but the intended scenario is unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_perfect_exitsPerfect ExitsARead-onlyIdempotent
Find positions that exited near the top: closed perp positions whose exit captured a high fraction of the maximum favorable excursion (MFE). These are well-timed exits. Returns the position, entry/exit/MFE prices, realized PnL, and MFE capture % (capped at 100). Filtered to material positions (minPnl) with a real favorable move.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of exits to return. | |
| minPnl | No | Minimum realized PnL in USD to filter noise. Default 1000. | |
| offset | No | Pagination offset. | |
| minCapturePct | No | Minimum MFE capture % to qualify. Default 90. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds genuine behavioral context beyond that: MFE capture is capped at 100, results are filtered to material positions with a real favorable move, and the returned fields are enumerated. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core purpose front-loaded, the MFE acronym expanded, and no filler. Slightly redundant with the schema on minPnl's noise-filtering role, but otherwise every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately covers return values. Combined with full param documentation in the schema and read-only annotations, the selection logic, filters, and the cap edge case are all disclosed. Minor gap: 'real favorable move' is not quantitatively defined, but this is not blocking for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents all five parameters. The description reinforces minPnl ('material positions') and minCapturePct (MFE capture %) but adds little beyond what the schema already states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find... closed perp positions') plus a precise selection criterion (high MFE capture fraction). The 'well-timed exits' framing and the return-field list (entry/exit/MFE prices, realized PnL, capture %) make its purpose unambiguous and distinct from generic closed-position siblings like pulse_recent_closed_positions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context is given: this is for identifying well-timed exits filtered to material positions (minPnl) with a real favorable move. However, it does not explicitly name alternatives or state when-not-to-use it (e.g., no comparison to pulse_recent_closed_positions or pulse_trader_closed_positions for raw exit listings), leaving sibling differentiation implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_persistent_winnersPersistent WinnersARead-onlyIdempotent
Find consistently profitable wallets: traders that were profitable in N+ distinct calendar months of the 90-day window. Returns wallet, profitable-month count, total PnL, and best-month PnL. Use for 'who is consistently good, not just lucky once?'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of wallets to return. | |
| offset | No | Pagination offset. | |
| minMonths | No | Minimum number of profitable months (1-3). Default 2. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds value by explaining the behavioral definition of persistence (distinct profitable calendar months in the 90-day window) and the exact fields returned, which is more than the annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry the full purpose, the defining criterion, the return fields, and a memorable use-case phrase. Every clause earns its place and the key behavior is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the returned fields. All four parameters are documented in the schema, and the 90-day window and minMonths criterion make the tool's semantics clear. It could be even more complete by explicitly mapping N to minMonths or stating the sort order, but nothing essential to selecting or invoking it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; limit, offset, minMonths, and useToonFormat are already described in the schema. The description adds the meaning of the core concept ('N+ distinct calendar months') that ties to minMonths, but it adds little about the other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation and resource ('Find consistently profitable wallets'), defines the selection criterion precisely (profitable in N+ distinct calendar months of a 90-day window), and lists returned fields. The 'not just lucky once' framing distinguishes it from one-off winner tools like pulse_one_month_wonders even without naming a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly gives the intended user question ('who is consistently good, not just lucky once?'), which tells an agent when to choose this tool. It does not name alternative tools or give negative guidance about when not to use it, though the criterion itself implies a contrast with single-month winners.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_pnl_leadersPnL LeadersARead-onlyIdempotent
Today's biggest realized winners AND losers: wallets ranked by summed realized PnL on positions CLOSED in the last 24h, with position counts and liquidation flags. Realized-on-the-day — different from the portfolio leaderboards (which rank account value over longer windows). Use for 'who made/lost the most money today?'. Requires Starter tier or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Winners and losers each capped at this count. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe, read-only, idempotent profile; the description adds meaningful behavior: only positions closed in the last 24h, realized-on-the-day PnL, winners and losers included, and position counts plus liquidation flags. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct information: the core definition, the contrast with portfolio leaderboards, and the intended question plus access requirement. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only tool this is nearly complete: it states the metric, time window, leaderboard type, and output highlights (position counts, liquidation flags). Without an output schema, exact return shape is not fully specified, but the description gives enough for an agent to form correct expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters at 100% with clear descriptions, including the winners/losers cap behavior and toon format toggle. The tool description adds little parameter-level detail beyond this, so it meets the baseline without exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific metric and scope: 'biggest realized winners AND losers ... summed realized PnL on positions CLOSED in the last 24h'. It also explicitly contrasts with portfolio leaderboards, so an agent can distinguish it from similar ranking tools without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended query is explicit: 'Use for who made/lost the most money today?' and it flags a Starter tier requirement. It distinguishes from portfolio leaderboards but stops short of naming a specific alternative tool or stating when not to use it, so it is clear but not fully exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_recent_closed_positionsRecent Closed PositionsARead-onlyIdempotent
Get recently closed positions across all traders. See what positions were just closed in the last N minutes/hours — with entry/exit prices and hold duration. Filterable by coin, minimum notional size, and hold duration range. Use to find: sub-second HFT trades (maxDuration=1000), positions that just got stopped out, large positions that just closed (minNotional=100000), quick scalps vs long holds.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER) | |
| limit | No | Number of positions to return | |
| since | No | Time window: e.g. '10m' (minutes), '1h' (hours), '1d' (days) | 1h |
| maxDuration | No | Maximum hold duration in milliseconds (e.g. 1000 for sub-second HFT trades, 60000 for under 1 minute) | |
| minDuration | No | Minimum hold duration in milliseconds (e.g. 60000 for positions held at least 1 minute) | |
| minNotional | No | Minimum notional value in USD (e.g. 100000 for $100K+ positions) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds behavioral context beyond that: global scope over all traders, the recency window, the fact that entry/exit prices and hold duration are returned, and the available filters. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, contents, and use cases. The key scope ('across all traders') and core resource are front-loaded, and the use-case list is compact and skimmable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with seven optional parameters fully documented in the schema and no output schema, the description covers what is returned, the global scope, and the main filtering use cases. The default behaviors (limit=50, since=1h) are already in the schema, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with individual descriptions, so baseline is 3. The description adds value by mapping parameters to use cases: maxDuration=1000 for HFT, minNotional=100000 for large positions, and the hold duration range. This is meaningful extra semantic guidance on how to combine filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'Get' and the precise resource 'recently closed positions across all traders.' The 'across all traders' scope distinguishes it from per-trader and per-cohort siblings, and 'closed positions' separates it from trade-level tools like pulse_recent_trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases ('Use to find:') with concrete parameter suggestions: sub-second HFT trades via maxDuration=1000, stopped-out positions, large closed positions via minNotional=100000, and scalps vs long holds. It does not, however, name alternative tools or state when not to use this tool, so it stops short of a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_recent_tradesRecent TradesARead-onlyIdempotent
Get the biggest trades on Hyperliquid in the last N minutes/hours. Returns trades sorted by absolute PnL — the largest movers. Use this to see what's happening right now on the exchange.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER) | |
| limit | No | Number of trades to return | |
| since | No | Time window: e.g. '10m' (minutes), '1h' (hours), '1d' (days) | 10m |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful behavioral context beyond the schema by specifying the temporal window, sorting by absolute PnL, and the 'largest movers' selection criteria. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The core capability, the sorting behavior, and the intended use case are all front-loaded efficiently. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with zero required parameters and a fully documented schema, the description provides sufficient context about input, time window, and output ordering. A named distinction from the overlapping sibling pulse_biggest_trades would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already well documented with types, defaults, patterns, and examples. The description adds only a generic reference to 'last N minutes/hours,' which does not meaningfully enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Get the biggest trades on Hyperliquid' in a recent time window, sorted by absolute PnL. It conveys the tool's purpose well, but it does not explicitly distinguish itself from similarly named siblings like pulse_biggest_trades or pulse_trader_trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: 'Use this to see what's happening right now on the exchange.' This provides clear context for when to call it, though it does not mention any exclusions or direct alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_style_distributionTrading Style DistributionARead-onlyIdempotent
HFT vs swing vs holder PnL split, bucketed by lifecycle hold duration. Returns, per style bucket, lifecycle count, unique wallets, total PnL, avg PnL, and total fees. Use for 'do scalpers or swing traders make more money on Hyperliquid?'.
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent, non-destructive), the description discloses what is returned per style bucket and that bucketing is by lifecycle hold duration. This is useful behavioral context and does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the core concept, list return fields, and include a concrete use case with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only one optional parameter, the description supplies enough context: what the buckets are, exact returned metrics, and a use case. Nothing essential is missing for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single useToonFormat parameter 100%, so the description need not repeat it. The description adds no parameter-level detail, which matches the high schema coverage baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource ('HFT vs swing vs holder PnL split') and the returned metrics, and it uses 'Returns' as a concrete verb. It does not explicitly name or contrast sibling tools, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit use case ('Use for 'do scalpers or swing traders make more money on Hyperliquid?'') that tells an agent when to reach for it. It does not list exclusions or alternative sibling tools, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_survivorsSurvivors (Comeback Traders)ARead-onlyIdempotent
Find comeback traders: wallets whose cumulative realized PnL hit a deep trough and then climbed back to positive. Returns wallet, trough depth, current cumulative PnL, and recovery amount. Use for 'who blew up but recovered?'. Realized-PnL drawdown only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of wallets to return. | |
| offset | No | Pagination offset. | |
| maxTrough | No | Trough must be at least this deep (negative). Default -10000. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true and destructiveHint false, so the description correctly avoids restating the safety profile. It adds value by disclosing the metric basis — cumulative realized PnL, explicitly 'Realized-PnL drawdown only' — which prevents mistaking this for an equity- or unrealized-based drawdown scan, and by listing the returned fields, partially compensating for the absent output schema. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each earning its place: the definition, the returned fields, the usage phrase, and the metric-scope qualifier. The core definition is front-loaded, with no filler or repetition of schema contents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list query with all-optional, fully documented parameters and annotations covering the safety profile, the description covers the essentials: filter semantics, return fields, and when to use it. Minor gaps remain — the time horizon over which the trough is measured and the meaning of openWorldHint are unstated — but nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (limit, offset, maxTrough, minRecovery, and the boolean output-format toggle) already carries its own meaning, defaults, and bounds. The description adds only loose conceptual glue by echoing 'trough depth' and 'recovery amount', which map to maxTrough and minRecovery, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with a specific verb and resource ('Find comeback traders') and immediately pins down the selection criterion: cumulative realized PnL that hit a deep trough and then recovered to positive. The qualifier 'Realized-PnL drawdown only' plus the plain-language intent ('who blew up but recovered?') make the purpose unambiguous and separable from siblings such as pulse_anti_survivors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit, natural-language trigger ('Use for "who blew up but recovered?"'), which is a strong when-to-use signal for an agent. It also narrows scope with 'Realized-PnL drawdown only', but it never names alternatives or states when not to use the tool (e.g., no contrast with pulse_anti_survivors for wallets still underwater).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_token_leaderboardToken LeaderboardARead-onlyIdempotent
Get the top traders for a specific coin. Answers questions like 'who are the best BTC traders?' or 'who profits most from SOL?'. Returns ranked traders with PnL, trade count, win rate, and volume for that specific coin.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Coin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN (e.g. xyz:SILVER, km:OIL, cash:TSLA) | |
| limit | No | Number of traders to return | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and non-destructive behavior, so the description doesn't need to state those. It adds that results are ranked and include PnL, trade count, win rate, and volume, which is useful but is return-shape context rather than behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: action and scope first, then example queries and return fields. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage and simple parameters, the description is largely complete and supplies return fields since no output schema exists. A minor gap is the lack of an explicit time frame or ranking metric, but the examples make correct invocation clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for coin, limit, and useToonFormat, including the prefix syntax for builder dex markets. The description reinforces the coin-centric use but adds little beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get the top traders for a specific coin,' and reinforces intent with example questions. It does not explicitly name a sibling to distinguish from, but the per-coin scope clearly separates it from general leaderboard tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Example questions ('who are the best BTC traders?') make the intended use obvious. It gives clear context but no explicit exclusion or pointer to an alternative tool, 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.
pulse_top_liquidatorsTop LiquidatorsARead-onlyIdempotent
Find wallets that profit by liquidating others' forced closes. Returns liquidator wallet, liquidations executed, distinct victims, distinct coins, total penalty collected, and total liquidation PnL. Use for 'who is the biggest backstop/liquidation player?'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of wallets to return. | |
| offset | No | Pagination offset. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive, so the description need not repeat those traits. It adds useful return-field context, but it does not disclose how 'top' is ordered or what metric determines the ranking, which is a meaningful behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core purpose before listing return fields and a use-case question. The field enumeration is somewhat long but earns its place because there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully lists the returned fields, and annotations cover safety and scope expectations. However, it omits the ordering semantics behind 'top' and does not clarify whether ranking is by total PnL, liquidations executed, or another metric, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes all three parameters with defaults, bounds, and descriptions, so schema coverage is 100%. The description adds no additional parameter-level meaning beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Find wallets') and clearly defines the resource as wallets that profit from liquidating forced closes. It also enumerates the return fields, making the tool's purpose concrete and distinguishable from generic leaderboard siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: answering 'who is the biggest backstop/liquidation player?'. It does not explicitly name alternatives or state when not to use the tool, but the intended query context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_trader_closed_positionsTrader Closed PositionsARead-onlyIdempotent
Get closed position history for any wallet. Shows every position that was opened and closed — with entry/exit prices, hold duration, PnL, and leverage. Use this to analyze a trader's position lifecycle and timing patterns. Answers: 'Show me all historical positions for this trader', 'What was the PnL and duration of each position?', 'When did this whale close their massive ETH long?'
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER) | |
| limit | No | Number of positions to return | |
| offset | No | Pagination offset | |
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds useful context beyond annotations: it works 'for any wallet,' returns 'every' closed position, and specifies the included fields. No contradictions with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences front-load the core function, then add use-case context and example queries without fluff. Every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description adequately covers return fields, while parameter semantics are fully handled by the schema and safety profile by annotations. The 'for any wallet' scope and example questions give an agent enough context to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including defaults and patterns. The description does not add additional parameter-level meaning beyond what the schema provides, meeting the baseline without exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('closed position history for any wallet'), clearly distinguishing it from open positions, recent trades, or aggregated stats. It also lists the exact data fields (entry/exit prices, hold duration, PnL, leverage) and gives example natural-language queries an agent would field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a clear use case: 'Use this to analyze a trader's position lifecycle and timing patterns.' It does not explicitly mention when not to use it or name alternative sibling tools, but the context is clear enough for an agent to select it for historical closed position queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_trader_closed_position_statsTrader Closed Position StatsARead-onlyIdempotent
Get aggregate statistics about a trader's closed positions: average hold duration, win rate by position (not by fill), total positions closed, and PnL summary. Use this to understand how long a trader typically holds and their position-level performance. Answers: 'What is this trader's average hold time?', 'Win rate by position (not by fill)?', 'Is this trader a scalper or swing trader?', 'Average PnL per position?'
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, and non-destructive behavior, so the description only needs to add context on top of that. It adds useful semantic constraints ('not by fill') but does not disclose caveats such as time range, empty-result behavior, or how toon vs standard formatting affects the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with the core purpose and metrics front-loaded, and the example questions make it actionable. Slight redundancy exists because the examples restate metrics already listed in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read-only tool with strong annotations and full schema parameter coverage, the description covers what statistics are returned and why an agent would call it. It does not specify the exact output shape or the time window of closed positions, but the metric list and use cases are sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so address and useToonFormat are already fully documented in the schema. The description adds no parameter-specific guidance beyond that schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get aggregate statistics') plus a clearly bounded resource ('a trader's closed positions'), and it enumerates the exact metrics returned. It also distinguishes itself from fill-level trade metrics via 'win rate by position (not by fill)' and from raw closed-position siblings by its aggregate focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear use context: understanding how long a trader holds positions and whether they are a scalper or swing trader, with concrete example questions. It stops short of saying when not to use this tool or naming sibling tools like pulse_trader_closed_positions for raw position lists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_trader_daily_statsTrader Daily StatsARead-onlyIdempotent
Get day-by-day performance breakdown for any trader. Returns daily PnL, trade count, win rate, and volume for each day the trader was active. Use for deep due diligence and identifying consistency patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful behavioral context by specifying the output includes daily PnL, trade count, win rate, and volume, and notes the breakdown covers only days the trader was active. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the first states the operation, the second specifies the returned data, and the third gives the use case. It is front-loaded and contains no filler or redundant restatements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two well-documented parameters and no output schema, the description is complete enough: it identifies the input type (trader), the output fields, and the intended analytical use. It does not explain toon format details, but those are covered in the input schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 schema already documents the address and useToonFormat parameters. The description does not add extra parameter-level meaning, but it does not need to because the schema carries full weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a specific resource ('day-by-day performance breakdown for any trader'), and enumerates the exact metrics returned: daily PnL, trade count, win rate, and volume. This clearly differentiates it from cohort-level, market-level, and other trader-specific tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases: 'deep due diligence and identifying consistency patterns.' It also clarifies scope with 'for any trader,' distinguishing it from cohort tools. It does not explicitly name alternatives or state when not to use it, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_trader_demoTrader BriefingARead-onlyIdempotent
Get a fast wallet briefing for demos and agent triage: lifecycle summary plus recent top wins and losses. Use when the user wants a quick read on a trader before deciding whether to run deeper lifecycle, drawdown, or token-level analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint, idempotentHint, openWorldHint, and destructiveHint all set. The description adds 'fast' and the rough scope of returned data, which is useful, but it does not disclose behavioral caveats such as data freshness, defaults beyond the schema, or response shape. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary capability is front-loaded, and the usage guidance follows immediately without redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with strong annotations and no output schema, the description covers the purpose, approximate return content, and decision context well. It stops short of defining what exactly counts as 'top wins and losses' or what the lifecycle summary includes, but this is adequate for a demo/triage tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'address' and 'useToonFormat' are already well documented in the input schema. The description adds only the word 'wallet', which maps to the address parameter, but does not contribute meaningful parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get a fast wallet briefing') and clearly states the returned content: 'lifecycle summary plus recent top wins and losses.' It also distinguishes its niche from deeper analysis by framing it as a demo/triage tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit trigger condition: use when the user wants a quick read before deciding whether to run deeper lifecycle, drawdown, or token-level analysis. It does not name exact sibling tools or explicitly state when not to use it, but the 'quick read vs deeper analysis' contrast makes the intended usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_trader_lifecyclesTrader Position LifecyclesARead-onlyIdempotent
Get a wallet's position lifecycle history — every open->close cycle reconstructed from on-chain fills, with entry/exit VWAP, peak size, hold duration, realized PnL, fees, fill count, and liquidation status. Richer than closed-positions: each row is a full position lifecycle. 90-day rolling window (closed within the last 90 days, plus open ones; the table's first day is not exposed by the API — see data_coverage); spot (@-prefixed) excluded by default. Use for deep position-level due diligence and timing analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by coin symbol (e.g. BTC, ETH). For builder dex: prefix:COIN (e.g. xyz:SILVER). | |
| limit | No | Number of lifecycles to return. | |
| offset | No | Pagination offset. | |
| status | No | Lifecycle status filter. Default 'closed'. | closed |
| address | Yes | Ethereum wallet address (0x...) | |
| includeSpot | No | Include spot (@-prefixed) pairs. Default false (perps only). | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. | |
| includeCensored | No | Include censored/low-quality lifecycles. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantive non-obvious behavior: a 90-day rolling window (closed within 90 days plus open ones), an API limitation where the table's first day is not exposed, spot exclusion by default, and a pointer to data_coverage. This is real behavioral context beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and returned fields, then appends scope caveats and a usage cue. Dense but each clause carries information; no filler sentences, though the single dense paragraph could be split for scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the returned lifecycle fields, and annotations cover the safety profile. Coverage of pagination/ordering and the distinction from other lifecycle-focused siblings is lighter, but the definition is otherwise sufficient to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented (coin prefix notation, status enum, includeSpot, includeCensored, toon format). The description only restates the spot-exclusion default, adding little beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a wallet's position lifecycle history') and enumerates the reconstructed fields (entry/exit VWAP, peak size, hold duration, realized PnL, fees). It explicitly differentiates from the sibling pulse_trader_closed_positions with 'Richer than closed-positions: each row is a full position lifecycle,' so an agent can route without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear intended context ('Use for deep position-level due diligence and timing analysis') and implies a comparison against closed-positions. It does not explicitly state when NOT to use it or how to choose against near-neighbors like pulse_lifecycles_recent or pulse_trader_lifecycle_summary, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_trader_lifecycle_summaryTrader Lifecycle SummaryARead-onlyIdempotent
Get a wallet's aggregate position-lifecycle stats: total/closed/open count, wins, losses, liquidations, win rate, total & avg PnL, biggest win/loss, avg/min/max hold duration, total fees, and unique coins traded. Same 90-day rolling window as pulse_trader_lifecycles. Use to size up a trader's position-level performance in one call.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by coin symbol (e.g. BTC, ETH). For builder dex: prefix:COIN. | |
| address | Yes | Ethereum wallet address (0x...) | |
| includeSpot | No | Include spot (@-prefixed) pairs. Default false. | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. | |
| includeCensored | No | Include censored lifecycles. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond annotations: it is an aggregate 'one call' summary, uses a '90-day rolling window,' and aligns with pulse_trader_lifecycles semantics. This is meaningful but not exhaustive; no contradictions with annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. The first sentence front-loads the tool's core purpose and output, the second adds temporal scope, and the third gives the practical use case. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for this tool's complexity. It explains what the aggregate summary includes, the 90-day window, and the intended usage. The input schema fully documents all five parameters, and since there is no output schema, the description compensates by listing the key returned metrics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and every parameter already has a clear description in the schema (address pattern, coin filter, includeSpot, useToonFormat, includeCensored). The tool description does not add new parameter-level 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource, 'Get a wallet's aggregate position-lifecycle stats,' and enumerates the exact metrics returned (wins, losses, liquidations, win rate, PnL, hold durations, fees, unique coins). It also references the sibling pulse_trader_lifecycles to anchor scope, making the tool's identity clear against dozens of related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence gives an explicit use case: 'Use to size up a trader's position-level performance in one call.' It also notes the same 90-day rolling window as pulse_trader_lifecycles, which helps an agent understand the temporal scope. It does not explicitly state when not to use this tool or name alternative tools for more granular lifecycle detail, so it stops 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.
pulse_trader_performanceTrader PerformanceARead-onlyIdempotent
Get performance comparison for a trader: 30-day vs all-time PnL, trade count, win rate, and trend direction (improving/declining/stable). Use this to evaluate if a trader is currently hot or cooling off.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety traits (readOnly, idempotent, non-destructive). The description adds meaningful behavioral context beyond those annotations by specifying the exact comparison dimensions and the trend-direction output, which helps the agent understand what the tool computes and returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, no filler. The core function is front-loaded, the returned metrics are listed compactly, and the intended use case is stated at the end. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-address analytics tool, the description covers the main output fields and the practical use case. No output schema exists, so the enumerated metrics help fill that gap. It could be slightly richer about how trend direction is derived, but nothing essential is missing for invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both address and useToonFormat have descriptive schema entries. The description does not add parameter-level detail beyond naming the trader, but the baseline of 3 applies because the schema already documents the parameters fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get performance comparison for a trader') and enumerates concrete metrics: 30-day vs all-time PnL, trade count, win rate, and trend direction. It clearly distinguishes this from sibling trader tools by focusing on performance comparison and hot/cooling evaluation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit decision context: 'Use this to evaluate if a trader is currently hot or cooling off.' It does not name alternatives or exclusion conditions, but the intended use case is clear enough for an agent to select it over similar trader-focused siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_trader_profileTrader ProfileARead-onlyIdempotent
Get full profile for any Hyperliquid trader by wallet address. Returns total PnL, trade count, win rate, volume, largest win/loss, first/last trade dates, PnL tier, size tier, and profit factor. Use this for due diligence on any wallet.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds useful context by enumerating the returned metrics, but it does not disclose details like time-horizon defaults, response shape, or any rate-limiting concerns. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the action and target come first, followed by a clear list of returned fields, and ends with the practical use case. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup tool with complete parameter schemas and strong annotations, the description is largely sufficient. It enumerates the key return fields and the intended use case, which is especially valuable given there is no output schema. A small gap is that it does not clarify the time period or whether the profile is all-time versus a configurable window.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are already clearly documented in the schema: address is an Ethereum wallet address with a pattern, and useToonFormat has a default and explanation. The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('full profile for any Hyperliquid trader by wallet address'), and lists detailed return fields, making the purpose clear. However, it does not explicitly distinguish itself from sibling trader-profile tools like pulse_trader_performance or pulse_trader_daily_stats, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the intended use case: 'Use this for due diligence on any wallet.' This gives clear context for when to call it. It does not mention exclusions or alternatives, but the use-case framing is strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_trader_token_statsTrader Token StatsARead-onlyIdempotent
Get token-by-token P&L breakdown for any trader. Shows which coins they trade, their PnL per coin, win rate per coin, and volume per coin. Use to understand a trader's edge — e.g. 'this trader only makes money on ETH and loses on everything else.'
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so no contradiction exists. The description adds meaningful behavioral context by specifying the returned breakdown dimensions and framing the tool as an edge-analysis view. No hidden side effects or surprising behaviors are implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two efficient sentences: the first states action and scope, the second lists output fields and a concrete example. Every sentence earns its place and there is no filler or redundant restating of the tool title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description explains the returned dimensions and the intended analytical use. Minor gaps such as the P&L time period or realized-versus-unrealized distinction are unspecified, but the annotations and fully documented parameters make the tool safely callable as described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully documented in the input schema, including the address pattern and useToonFormat default/effect, so the description does not need to add much. It implicitly reinforces that 'address' refers to any trader, but it adds no parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get token-by-token P&L breakdown for any trader.' It names the exact output dimensions (coins traded, PnL per coin, win rate per coin, volume per coin) and gives a concrete use-case example, making it distinguishable from sibling trader-level tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the intended use case ('understand a trader's edge') and says it works 'for any trader,' so an agent knows when to select it for per-coin P&L analysis. It does not explicitly name alternatives or exclusion conditions, but the context is clear enough among the many trader-related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_trader_tradesTrader TradesARead-onlyIdempotent
Get recent trades for a specific wallet address. See exactly what a trader has been doing in the last minutes/hours — every buy, sell, size, price, and PnL. Essential for copy-trading and due diligence. Trade history is indexed from 2025-03-22 (pulse_global_stats.dataStartDate; see data_coverage for the current window).
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER) | |
| limit | No | Number of trades to return | |
| since | No | Time window: e.g. '10m' (minutes), '1h' (hours), '1d' (days) | 1h |
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnly/idempotent/non-destructive, the description adds real behavioral value: it discloses the trade-history indexing start (2025-03-22), points to pulse_global_stats.dataStartDate and data_coverage for the current window, and frames results as activity 'in the last minutes/hours'. That coverage caveat is exactly the kind of context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action in the first sentence, then adds purpose and coverage caveats in two compact sentences with no filler. The data-coverage sentence is slightly dense but earns its place by preventing misleading empty results.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by listing the returned fields (buy/sell, size, price, PnL) and the indexing cutoff that governs completeness of results. For a read-only, single-required-param tool this covers the main gaps; a note on pagination/limit behavior would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already defines address, coin, limit, since, and useToonFormat with formats and defaults. The description paraphrases the time-window behavior ('last minutes/hours') but adds no format semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get recent trades') plus scope ('for a specific wallet address'), and the follow-up sentence enumerates what is returned (buy, sell, size, price, PnL). It is clearly distinguishable from global siblings like pulse_recent_trades by the wallet scoping, though no sibling is named explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers two use-case hints ('essential for copy-trading and due diligence') but never states when to prefer this over siblings such as pulse_recent_trades, pulse_biggest_trades, or pulse_trader_daily_stats, and lists no exclusions or prerequisites. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pulse_wallet_drawdown_curveWallet Drawdown CurveARead-onlyIdempotent
Get a wallet's per-position drawdown (MAE) and run-up (MFE) curve: for each closed perp lifecycle, the worst adverse price excursion and best favorable excursion vs entry, as percentages. Use to judge a trader's pain tolerance and exit timing — 'how far underwater did they go before it worked?'. Perp-only (spot has no MAE).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of positions to return. | |
| offset | No | Pagination offset. | |
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: it specifies that the tool analyzes closed perp lifecycles, reports MAE and MFE as percentages versus entry, and is not applicable to spot positions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-ordered: the core function comes first, followed by the exact semantics of the output, then the use case, then the domain restriction. Every sentence contributes information, and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description clearly communicates the conceptual return value: per-position MAE and MFE percentages for closed perp lifecycles. It does not spell out exact response field names or ordering, but for a read-only analytical tool with fully documented input parameters, this is sufficient context for an agent to understand what it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented by the schema. The description does not add parameter-specific details, but it does contextualize what the returned values mean (MAE/MFE as percentages), which indirectly helps interpret limit/offset usage. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get a wallet's per-position drawdown (MAE) and run-up (MFE) curve.' It clarifies exactly what is returned—worst adverse and best favorable price excursions per closed perp lifecycle, as percentages—and explicitly distinguishes itself by noting this is perp-only, so it is not confused with spot-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear when-to-use rationale: 'Use to judge a trader's pain tolerance and exit timing,' with a concrete framing of the question it answers. It also provides an exclusion boundary, 'Perp-only (spot has no MAE),' though it does not name alternative sibling tools explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trader_buildersTrader BuildersARead-onlyIdempotent
Every builder (frontend, bot, HIP-3 dex) a wallet (0x-hex address) had attributed fills through within a lookback window (since, default '30d', clamped to 90d), ordered by builder fees paid descending. Each row: builder address, curated builderName (omitted when unknown), fills, builderFeesUsd, volumeUsd, and first/last attributed-fill timestamps within the window. Attribution slightly undercounts (trigger-order stop/TP fills not yet attributed — see the response's dataNotes). The inverse of builder_traders: wallet → builders instead of builder → wallets. Use for 'which apps does this trader use?' or 'how much has wallet X paid frontend Y in fees?'. Requires Starter tier or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Lookback window like '30m', '6h', '30d' (clamped to 90d). | 30d |
| address | Yes | Ethereum wallet address (0x...) | |
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and safe, and the description adds meaningful behavior beyond that: attribution undercounts trigger-order fills, results are ordered by builder fees descending, builderName is omitted when unknown, and the lookback is clamped to 90d. This gives the agent important expectations about data completeness and output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: main behavior, output fields, caveat, relationship to sibling, use cases, and access requirement. It is well-structured and front-loads the core concept before caveats and context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing exact row fields, ordering, caveats, and the dataNotes pointer. It also includes the required tier and parameter defaults, making the tool callable and interpretable without needing additional external context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the since default/clamp and contextualizes address as a wallet with attributed fills, but it does not add substantial new parameter-level meaning beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description precisely defines what the tool returns: builders a wallet had attributed fills through, with output ordering and row fields enumerated. It also explicitly distinguishes itself from builder_traders by stating it is the inverse mapping, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete use cases: 'which apps does this trader use?' and 'how much has wallet X paid frontend Y in fees?'. It names the closely related sibling builder_traders and clarifies the directional difference, providing strong routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
v0.12.0- Added
book_levels - Added
book_stop_map - Added
book_summary - Added
book_whales - Removed
builder_heatmap - Added
data_coverage - Changed
hip4_outcomes1 field changed- added
Input schema / properties / limitAdded value: +{ + "default": 25, + "description": "Max outcomes to return, largest notionalUsdh first (default 25, max 200).", + "maximum": 200, + "minimum": 1, + "type": "integer" +}
- Changed
hip4_trader_outcomes2 fields changed- changed
Input schema / properties / days / descriptionPrevious value: -"Look-back window in days. Default 30, max 365."New value: +"Look-back window in days. Default 30; the API clamps values above 90." - added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Max outcome rows to return, largest gross notional first (default 50, max 200).", + "maximum": 200, + "minimum": 1, + "type": "integer" +}
- Changed
live_coin_risk_history1 field changed- added
Input schema / properties / includeAdded value: +{ + "description": "Sections to return. Default: every section except markDislocations. markDislocations, when included, is bucketed to 1h.", + "items": { + "enum": [ + "oiHistory", + "longShortHistory", + "cohortBiasHistory", + "candleHistory", + "markDislocations", + "liquidations" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" +}
- Changed
live_mark_dislocations2 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 500, + "description": "Max rows to return after bucketing (default 500). The newest rows are kept when the cap applies.", + "maximum": 5000, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / resolutionAdded value: +{ + "default": "5m", + "description": "Bucket width. Each bucket keeps the minute with the largest |basisPct|. Default 5m; 1m returns the raw minute rows.", + "enum": [ + "1m", + "5m", + "1h" + ], + "type": "string" +}
- Changed
pulse_cohort_bias_history3 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 100, + "description": "Max rows to return, newest first (default 100, max 2000).", + "maximum": 2000, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / tierAdded value: +{ + "description": "Keep only one tier's rows (either vocabulary). Combine with tierType for a single series.", + "enum": [ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" + ], + "type": "string" +} - added
Input schema / properties / tierTypeAdded value: +{ + "description": "Keep only PnL-tier or size-tier rows (applied by the connector; halves the row count).", + "enum": [ + "pnl", + "size" + ], + "type": "string" +}
- Changed
pulse_cohort_performance_daily3 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 100, + "description": "Max rows to return, newest date first (default 100, max 2000).", + "maximum": 2000, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / tierAdded value: +{ + "description": "Keep only one tier's rows (either vocabulary). Combine with tierType for a single series.", + "enum": [ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" + ], + "type": "string" +} - added
Input schema / properties / tierTypeAdded value: +{ + "description": "Keep only PnL-tier or size-tier rows (applied by the connector; halves the row count).", + "enum": [ + "pnl", + "size" + ], + "type": "string" +}
- Changed
pulse_lifecycle2 fields changed- added
Input schema / properties / fillsLimitAdded value: +{ + "default": 100, + "description": "Max fills to return in this page (default 100, max 1000).", + "maximum": 1000, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / fillsOffsetAdded value: +{ + "default": 0, + "description": "Fills to skip, for paging (default 0).", + "minimum": 0, + "type": "integer" +}
- Removed
pulse_market_overview
10 tool updates
v0.11.1- Changed
builder_cohorts1 field changed- changed
Input schema / properties / builder / descriptionPrevious value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
- Changed
builder_fills1 field changed- changed
Input schema / properties / builder / descriptionPrevious value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
- Added
builder_heatmap - Added
builder_journey - Added
builder_lifecycle - Added
builder_orders - Changed
builder_overlap1 field changed- changed
Input schema / properties / builder / descriptionPrevious value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
- Changed
builder_profile1 field changed- changed
Input schema / properties / builder / descriptionPrevious value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
- Changed
builder_retention1 field changed- changed
Input schema / properties / builder / descriptionPrevious value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
- Changed
builder_traders1 field changed- changed
Input schema / properties / builder / descriptionPrevious value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
8 tool updates
v0.11.0- Added
builder_cohorts - Added
builder_fills - Added
builder_leaderboard - Added
builder_overlap - Added
builder_profile - Added
builder_retention - Added
builder_traders - Added
trader_builders
17 tool updates
v0.10.0- Changed
live_cohort_bias_history1 field changed- changed
Input schema / properties / tier / enumPrevious value: -[ - "money_printer", - "smart_money", - "grinder", - "humble_earner", - "exit_liquidity", - "semi_rekt", - "full_rekt", - "giga_rekt", - "leviathan", - "tidal_whale", - "whale", - "small_whale", - "apex_predator", - "dolphin", - "fish", - "shrimp" -]New value: +[ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" +]
- Added
pulse_active_traders - Changed
pulse_cohort_history2 fields changed- changed
Input schema / properties / tier / descriptionPrevious value: -"Tier name. PnL tiers: money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt. Size tiers: leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp"New value: +"Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs." - changed
Input schema / properties / tier / enumPrevious value: -[ - "money_printer", - "smart_money", - "grinder", - "humble_earner", - "exit_liquidity", - "semi_rekt", - "full_rekt", - "giga_rekt", - "leviathan", - "tidal_whale", - "whale", - "small_whale", - "apex_predator", - "dolphin", - "fish", - "shrimp" -]New value: +[ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" +]
- Changed
pulse_cohort_positions2 fields changed- changed
Input schema / properties / tier / descriptionPrevious value: -"Tier name. PnL tiers: money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt. Size tiers: leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp"New value: +"Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs." - changed
Input schema / properties / tier / enumPrevious value: -[ - "money_printer", - "smart_money", - "grinder", - "humble_earner", - "exit_liquidity", - "semi_rekt", - "full_rekt", - "giga_rekt", - "leviathan", - "tidal_whale", - "whale", - "small_whale", - "apex_predator", - "dolphin", - "fish", - "shrimp" -]New value: +[ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" +]
- Changed
pulse_cohort_recent_alpha_concentration2 fields changed- changed
Input schema / properties / tier / descriptionPrevious value: -"Tier name. PnL tiers: money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt. Size tiers: leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp"New value: +"Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs." - changed
Input schema / properties / tier / enumPrevious value: -[ - "money_printer", - "smart_money", - "grinder", - "humble_earner", - "exit_liquidity", - "semi_rekt", - "full_rekt", - "giga_rekt", - "leviathan", - "tidal_whale", - "whale", - "small_whale", - "apex_predator", - "dolphin", - "fish", - "shrimp" -]New value: +[ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" +]
- Changed
pulse_cohort_recent_lifecycle_stats2 fields changed- changed
Input schema / properties / tier / descriptionPrevious value: -"Tier name. PnL tiers: money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt. Size tiers: leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp"New value: +"Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs." - changed
Input schema / properties / tier / enumPrevious value: -[ - "money_printer", - "smart_money", - "grinder", - "humble_earner", - "exit_liquidity", - "semi_rekt", - "full_rekt", - "giga_rekt", - "leviathan", - "tidal_whale", - "whale", - "small_whale", - "apex_predator", - "dolphin", - "fish", - "shrimp" -]New value: +[ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" +]
- Changed
pulse_cohort_recent_positions2 fields changed- changed
Input schema / properties / tier / descriptionPrevious value: -"Tier name. PnL tiers: money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt. Size tiers: leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp"New value: +"Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs." - changed
Input schema / properties / tier / enumPrevious value: -[ - "money_printer", - "smart_money", - "grinder", - "humble_earner", - "exit_liquidity", - "semi_rekt", - "full_rekt", - "giga_rekt", - "leviathan", - "tidal_whale", - "whale", - "small_whale", - "apex_predator", - "dolphin", - "fish", - "shrimp" -]New value: +[ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" +]
- Changed
pulse_cohort_recent_top_positions2 fields changed- changed
Input schema / properties / tier / descriptionPrevious value: -"Tier name. PnL tiers: money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt. Size tiers: leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp"New value: +"Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs." - changed
Input schema / properties / tier / enumPrevious value: -[ - "money_printer", - "smart_money", - "grinder", - "humble_earner", - "exit_liquidity", - "semi_rekt", - "full_rekt", - "giga_rekt", - "leviathan", - "tidal_whale", - "whale", - "small_whale", - "apex_predator", - "dolphin", - "fish", - "shrimp" -]New value: +[ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" +]
- Changed
pulse_cohort_recent_trades2 fields changed- changed
Input schema / properties / tier / descriptionPrevious value: -"Tier name. PnL tiers: money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt. Size tiers: leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp"New value: +"Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs." - changed
Input schema / properties / tier / enumPrevious value: -[ - "money_printer", - "smart_money", - "grinder", - "humble_earner", - "exit_liquidity", - "semi_rekt", - "full_rekt", - "giga_rekt", - "leviathan", - "tidal_whale", - "whale", - "small_whale", - "apex_predator", - "dolphin", - "fish", - "shrimp" -]New value: +[ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" +]
- Changed
pulse_cohort_trades2 fields changed- changed
Input schema / properties / tier / descriptionPrevious value: -"Tier name. PnL tiers: money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt. Size tiers: leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp"New value: +"Tier slug. PnL tiers (by profitability): apex (Apex), sharps (Sharps), grinders (Grinders), scrapers (Scrapers), crowd (The Crowd), bleeders (Bleeders), trapped (Trapped), blown_out (Blown Out). Size tiers (by volume): heavyweights (Heavyweights), cruiserweights (Cruiserweights), middleweights (Middleweights), welterweights (Welterweights), lightweights (Lightweights), featherweights (Featherweights), flyweights (Flyweights), strawweights (Strawweights). Legacy slugs (money_printer, smart_money, grinder, humble_earner, exit_liquidity, semi_rekt, full_rekt, giga_rekt, leviathan, tidal_whale, whale, small_whale, apex_predator, dolphin, fish, shrimp) remain accepted; API responses still emit legacy slugs." - changed
Input schema / properties / tier / enumPrevious value: -[ - "money_printer", - "smart_money", - "grinder", - "humble_earner", - "exit_liquidity", - "semi_rekt", - "full_rekt", - "giga_rekt", - "leviathan", - "tidal_whale", - "whale", - "small_whale", - "apex_predator", - "dolphin", - "fish", - "shrimp" -]New value: +[ + "apex", + "sharps", + "grinders", + "scrapers", + "crowd", + "bleeders", + "trapped", + "blown_out", + "heavyweights", + "cruiserweights", + "middleweights", + "welterweights", + "lightweights", + "featherweights", + "flyweights", + "strawweights", + "money_printer", + "smart_money", + "grinder", + "humble_earner", + "exit_liquidity", + "semi_rekt", + "full_rekt", + "giga_rekt", + "leviathan", + "tidal_whale", + "whale", + "small_whale", + "apex_predator", + "dolphin", + "fish", + "shrimp" +]
- Added
pulse_entity_leaderboard - Added
pulse_entity_profile - Added
pulse_exchange_oi - Added
pulse_exchange_positions - Added
pulse_exchange_volume - Added
pulse_my_plan - Added
pulse_pnl_leaders
28 tool updates
v0.8.0- Added
pulse_anti_survivors - Added
pulse_backstop_events - Added
pulse_capital_titans - Added
pulse_cohort_recent_alpha_concentration - Added
pulse_cohort_recent_lifecycle_stats - Added
pulse_cohort_recent_positions - Added
pulse_cohort_recent_top_positions - Added
pulse_cohort_recent_trades - Added
pulse_coin_alpha_map - Added
pulse_coin_kings - Added
pulse_compare - Added
pulse_hour_profitability - Added
pulse_lethal_coins - Added
pulse_lifecycle - Added
pulse_lifecycles_recent - Added
pulse_market_concentration - Added
pulse_max_pain_events - Added
pulse_newcomer_whales - Added
pulse_one_month_wonders - Added
pulse_perfect_exits - Added
pulse_persistent_winners - Added
pulse_style_distribution - Added
pulse_survivors - Added
pulse_top_liquidators - Added
pulse_trader_demo - Added
pulse_trader_lifecycle_summary - Added
pulse_trader_lifecycles - Added
pulse_wallet_drawdown_curve
12 tool updates
v0.7.0- Added
hip4_cross_product_overlap - Added
hip4_daily_volume - Added
hip4_most_active - Added
hip4_outcome - Added
hip4_outcome_recent_trades - Added
hip4_outcome_summary - Added
hip4_outcomes - Added
hip4_perp_position_context - Added
hip4_questions - Added
hip4_recent_settlements - Added
hip4_top_traders - Added
hip4_trader_outcomes
43 tool updates
v0.6.0- Added
list_asset - Added
list_assets - Added
list_markets - Added
live_cohort_bias - Added
live_cohort_bias_history - Added
live_coin_risk_history - Added
live_coin_risk_snapshot - Added
live_liquidation_heatmap - Added
live_liquidation_summary - Added
live_long_short_ratio - Added
live_mark_dislocations - Added
live_official_oi - Added
live_oi_history - Added
live_recent_liquidations - Added
live_risk_overview - Added
market_historical_oi - Added
market_orderbook - Added
market_positions - Added
market_price - Added
market_recent_candles - Added
pulse_biggest_trades - Added
pulse_cohort_bias_history - Added
pulse_cohort_history - Added
pulse_cohort_performance_daily - Added
pulse_cohort_positions - Added
pulse_cohort_summary - Added
pulse_cohort_trades - Added
pulse_cross_market_asset - Added
pulse_global_stats - Added
pulse_hidden_gems - Added
pulse_leaderboard - Added
pulse_market_overview - Added
pulse_most_traded_coins - Added
pulse_recent_closed_positions - Added
pulse_recent_trades - Added
pulse_token_leaderboard - Added
pulse_trader_closed_position_stats - Added
pulse_trader_closed_positions - Added
pulse_trader_daily_stats - Added
pulse_trader_performance - Added
pulse_trader_profile - Added
pulse_trader_token_stats - Added
pulse_trader_trades
TDQS
Scored across 106 tools
With 106 tools, many overlapping purposes exist: multiple leaderboards (pulse_leaderboard, pulse_pnl_leaders, pulse_hidden_gems, pulse_token_leaderboard, pulse_coin_kings), multiple trade feeds (pulse_recent_trades, pulse_trader_trades, pulse_cohort_trades, pulse_lifecycles_recent), and multiple OI/liquidation tools. Descriptions try to differentiate contexts, but the sheer volume and nuanced time windows make misselection likely.
Names use domain prefixes (pulse_, live_, builder_, hip4_, book_, market_) and snake_case throughout, but there is no single verb_noun pattern and inconsistencies exist (list_assets/list_asset, pulse_trader_closed_positions vs. pulse_trader_closed_position_stats). The convention is mixed but still readable.
106 tools is an extreme mismatch; far beyond the 3-15 typical range and even beyond the 50+ threshold considered extreme. While the domain is broad, the surface is massively over-scoped.
The surface appears complete for Hyperliquid analytics: markets, assets, order book depth, trader positions, PnL, cohorts, builders, HIP-4 outcomes, liquidations, and data coverage. No obvious domain gaps.
Maintenance
Related MCP Connectors
Read-only Hyperliquid data for AI agents: fills, candles, funding, liquidations, wallet analytics.
Live Hyperliquid perps analytics for agents: funding, OI, whale prints, leaderboard, wallet risk.
Read-only Hyperliquid analytics: orderflow, liquidation levels, whale positioning, funding.
AI research desk for Hyperliquid: ranked opportunities and trade theses. You confirm every trade.
281
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to perform cryptocurrency trading analysis and execution with 38+ tools including real-time market data, technical indicators, risk management, and support for both paper trading and live execution on Hyperliquid.7MIT
- AlicenseAqualityCmaintenanceReal-time crypto intelligence for AI agents. Technical analysis, liquidation heatmaps, sentiment, and funding rates for 50+ Hyperliquid perpetuals via x402 micropayments.1573 PyPI1MIT
- AlicenseBqualityDmaintenanceIntegrates with Hyperliquid DEX to enable trading, account management, and market data queries through natural language.1212 npm3MIT
- AlicenseAqualityDmaintenanceEnables AI agents to interact with Hyperliquid perpetual futures exchange for market analysis, account management, and risk-managed trading.51MIT