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 "Install 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.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.
Related MCP server: cerebrus-pulse-mcp
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 103 read-only tools 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.11.1"],
"env": {
"COINVERSAA_API_KEY": "cvsa_your_key_here"
}
}
}
}Or from a shell:
COINVERSAA_API_KEY=cvsa_... npx -y @coinversaa/mcp-server@0.11.1This 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. 103 tools, 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 (103)
All 103 tools require an API key. The MCP registers the full tool set, 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 | Trailing 84 days as a 7×24 UTC weekday-by-hour grid of volume, fees, and fills |
| Pro | Placement-plane intent: action and time-in-force mix, reduce-only share, stop/TP trigger breakdown, fill conversion |
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.11.1). 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
103 toolsbuilder_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.
| 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 readOnly/openWorld/idempotent, and the description adds substantial behavioral context: tiers are lifetime labels emitted as legacy slugs, missing wallets roll into 'untracked' so counts always sum to totalUsers, attribution undercounts relative to ledger revenue due to trigger-order fills, results are ordered largest cohort first, and Pro tier is required. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: core resource and metrics, tier semantics and untracked bucket, attribution caveat, concrete use cases, and access requirement. It is front-loaded with the most important compositional detail before caveats and use cases.
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 burden of explaining the return contents, and it does: fields returned, cohort ordering, tier semantics, untracked behavior, dataNotes caveat, and access restrictions. For a moderately complex 3-parameter tool, nothing critical 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 documents builder, period, and useToonFormat. The description echoes the period concept and notes the day/week/month window, but adds no new parameter-level meaning beyond the schema. This matches the baseline 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 clearly identifies the resource — a builder's attributed users — and specifies the exact segmentation (all-time profitability and size tiers) plus the metrics returned, so an agent can tell it apart from pulse cohort tools. It distinguishes from siblings by explicitly noting these are lifetime tiers, not the 30d-rolling tiers used by pulse cohort tools. However, it opens with a noun phrase ('Cohort composition of...') rather than an explicit verb like 'Returns' or 'Lists'.
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: 'is builder X's user base smart money or exit liquidity?' and 'do whales or shrimp pay most of its fees?'. It also gives a when-not signal by contrasting the lifetime tiers with the 30d-rolling tiers used by pulse cohort tools, steering agents toward the correct tool family.
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_heatmapBuilder HeatmapARead-onlyIdempotent
When a builder's attributed flow actually trades (takes only the 0x-hex builder address — no other parameters): a 7x24 weekday-by-hour grid as days[], always 7 entries Sunday first with weekday 0 = Sunday through 6 = Saturday, each carrying hours[], always 24 entries with hour 0 first, and every cell reporting hour, volumeUsd, feesUsd and fills totalled over the whole window; zero-activity cells are zero-valued, never omitted. No period parameter and no per-week averaging — windowDays is fixed at 84, the trailing 12 weeks, so every weekday is sampled exactly 12 times — and both weekday and hour are UTC, never local time. Attributed fills slightly undercount versus ledger revenue (trigger-order stop/TP fills not yet attributed — see the response's dataNotes). Use for 'what hours does builder X's volume peak, is it bot-like around the clock or human trading hours, and when is it safe to ship?'. Requires Pro tier. The first call for a builder can take up to ~90 seconds while the API computes it; the result is then cached, so repeat the call if it times out.
| 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?
The description goes well beyond the annotations, disclosing that zero-activity cells are zero-valued and never omitted, that weekdays and hours are UTC, that the window is fixed at 84 days, that attributed fills undercount ledger revenue, that Pro tier is required, and that the first call can take ~90 seconds and should be retried on timeout. This is rich, actionable behavioral context with no contradiction against the readOnly/idempotent hints.
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?
Every sentence carries meaningful information, and there is no filler, but the first sentence is a very long run-on that buries the main purpose under output-shape details. Better front-loading—e.g., a direct 'Returns a 7x24 grid for a builder's attributed trades'—would make the description easier for an agent to parse quickly.
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 present, the description fully compensates by specifying the exact shape of days[] and hours[], the cell fields, zero-value behavior, UTC semantics, the fixed window, known undercounting, access tier, and performance/caching behavior. An agent has everything needed to invoke the tool and interpret its response 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%, with both builder and useToonFormat already documented. The description adds useful clarifications such as 'no period parameter' and the fixed 84-day window, but it does not substantially improve parameter understanding beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (a builder's attributed flow) and the core deliverable: a 7x24 weekday-by-hour grid of volume, fees, and fills. It lacks an explicit verb like 'returns' or 'computes,' starting instead with a 'When...' clause, but the intended function is unmistakable and distinct from sibling heatmap 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 concrete use cases: determining when a builder's volume peaks, whether activity is bot-like, and when it is safe to ship. It does not explicitly name alternatives or say when not to use this tool, but the use-case framing plus the fixed-window/UTC constraints give an agent enough context 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.
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. The first call for a builder can take up to ~90 seconds while the API computes it; the result is then cached, so repeat the call if it times out.
| 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 though annotations already establish readOnly/openWorld/idempotent behavior, the description adds substantial non-obvious behavioral details: fixed minFills=3, trailing-year cohort construction, per-wallet aggregation, truncation bias in young cohorts, dataNotes in the response, and slow/cached first call. This goes well beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and run-on in places, but every sentence carries meaningful information: metrics, cohort definition, caveats, use case, tier, and performance. It is front-loaded with purpose and needs to be long because there is no output schema to document the return values.
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 complex metric-heavy tool with no output schema, the description is remarkably complete: it defines the universe, the per-wallet computation, all metric names, the bias caveat, the comparison tool, required tier, and call behavior. An agent has enough context to invoke it correctly and interpret the response.
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 builder is the only substantive analytical parameter ('no other parameters') and explaining the cohort semantics tied to that address. It does not add much about useToonFormat beyond the schema, but schema already covers it 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 opens with a specific analytical question ('how fast and how unevenly does builder X monetize a new user?'), names the exact resource (a builder's trailing-year acquisition cohort), and enumerates concrete metrics. It explicitly differentiates itself from builder_lifecycle, making sibling confusion unlikely.
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 in quotes, explicitly says what it is NOT ('NOT the lifetime user base builder_lifecycle covers'), and provides operational guidance such as Pro tier requirement, ~90 second first-call latency, caching, and retry on timeout. This fully equips 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.
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?'. 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?
Beyond the readOnly/idempotent/non-destructive annotations, the description discloses a material data caveat: 'Attributed metrics slightly undercount versus ledger revenue because trigger-order fills (stop/TP) are not yet attributed.' It also explains the 'verified' stamp and that builderName is omitted when unknown, which are useful behavioral details. The access-tier requirement is an additional disclosure annotations don't capture.
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 purposeful: it front-loads the core purpose, then enumerates returned fields, adds the undercount caveat, and closes with use cases. The em-dash-heavy structure makes it slightly harder to parse, but every clause adds information an agent needs. It earns a high score for no wasted sentences, though it could be tightened.
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 present, the description carries the burden of describing return values, and it does so thoroughly: fill volume, distinct users, fill counts, preceding-window deltas, feeTenthsBp, and builderName. It also tells the agent where to look for caveats (dataNotes) and what 'verified' means. Combined with the schema and annotations, nothing essential is missing for calling 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?
All four parameters (limit, offset, period, useToonFormat) already have full descriptions in the schema, so baseline is 3. The tool description reinforces the period semantics ('immediately preceding window for deltas') and references feeTenthsBp as an output field, but it adds no new parameter-level guidance beyond the schema. Since schema coverage is 100%, the description need not compensate.
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 definition: 'Builders (HIP-3 dexes, frontends, bots) ranked by exact revenue from Hyperliquid's on-chain cumulative builder-fee ledger over the requested period.' This specifies the verb, resource, and data source, and distinguishes it from sibling builder_* tools that focus on profiles, fills, or traders. The inclusion of 'Use for...' question templates further anchors what the tool answers.
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 two canonical use cases: 'which builders earn the most?' and 'is builder X growing?', giving an agent a clear decision rule for selecting this tool. It also states the access precondition ('Requires Starter tier or higher'), but does not name alternative builder_* tools or give a when-not-to-use condition, so it stops short of full differentiation.
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.
| 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 only provide readOnly, openWorld, idempotent, and non-destructive hints. The description goes far beyond them by defining the five mutually exclusive status windows, the lifetime ORDERS-plane universe including unfilled orders, the formulas for retention, churn, and competitive loss, and the fact that the status test reads only recent attributed fills. This gives the agent genuinely useful behavioral context for interpreting the results.
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 dense, single run-on sentence with heavy parentheticals and nested clauses, which makes it harder to parse than necessary. That said, nearly all the content is relevant given the genuine complexity of the lifecycle status model, so the length is justified even if the structure is not ideal.
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 burden of explaining return semantics, and it does: status counts, shares, ratios, competitive-loss fees, and the lifetime-universe caveats are all covered. It also notes the response dataNotes and Pro-tier requirement. The main completeness gap is the misleading 'no other parameters' statement and the absence of any prose mention of the useToonFormat flag.
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 builder and useToonFormat. The description repeats the 0x-hex builder address requirement but actively misleads by claiming 'no other parameters' while the schema includes the optional useToonFormat boolean. That false statement undermines the parameter guidance more than the prose adds 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 clearly identifies the tool as a lifetime lifecycle snapshot of every wallet that has traded via a builder, with an explicit use case: 'how many of builder X's users are still active, and how many did a rival take?'. It also distinguishes itself from builder_retention by contrasting a single historical snapshot with a per-cohort monthly grid, making the tool easy to select correctly.
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 direct use case in quoted form, states the Pro-tier requirement, and explains the key alternative boundary: this is one snapshot of the whole historical user base rather than builder_retention's per-cohort monthly grid. It also clarifies when the switched status is only detectable, which helps an agent decide if this tool fits the attribution context.
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.
| 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?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds substantial behavioral context beyond that: attributed metrics undercount ledger revenue due to trigger-order fills, builderName comes from a curated registry and may be omitted, and the tool returns 404 for addresses with no fee-ledger revenue. This is exactly the kind of caveat-rich detail an agent needs.
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 long but densely informative with no filler. It front-loads the core purpose, then adds caveats, error behavior, usage examples, and access requirements. It could be slightly streamlined, but every sentence carries meaningful operational 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?
There is no output schema, so the description properly carries the burden of explaining return contents, including the daily series, undercounting caveat, registry behavior, and 404 error case. It also covers access tier and concrete use cases, making the tool fully actionable without needing to open sibling definitions.
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 builder, period, topCoins, and useToonFormat. The description reinforces period semantics by listing day/week/month and explains that 'top coins' refer to attributed volume, aligning with the schema. It does not add significant new parameter-level detail beyond the schema, 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?
The description names a specific verb and resource: 'Single-builder overview for a 0x-hex builder address' and enumerates the exact outputs (ledger revenue, timestamps, fee tokens, fee rate, daily series, top coins, profitable wallets). It clearly differentiates itself from the many sibling tools by focusing on a holistic per-builder summary rather than trades, fills, or leaderboards.
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 for 'how is builder X doing?' or 'what do people trade on frontend Y?'". It also states the tier requirement. It does not explicitly contrast itself with sibling tools like builder_leaderboard or builder_fills, but the use-case guidance is strong enough to route an agent correctly.
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.
| 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 already declare readOnly/openWorld/idempotent/non-destructive hints, so the bar is lower, but the description adds valuable behavioral caveats: attributed fills undercount versus ledger revenue, trigger-order fills are not yet attributed, dataNotes exist in the response, and cohort tiers are lifetime labels unlike 30d-rolling pulse tiers. 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 but every sentence earns its place: purpose, row fields, a data caveat, concrete use cases, and access tier. It is front-loaded with the core function and avoids 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?
With no output schema, the description carries the burden of explaining return values, and it does: each row's fields are enumerated, including untracked nulls and the 0-if-untracked equity behavior. It also covers the undercounting caveat and Pro tier requirement. Combined with full schema param coverage, an agent has enough context to call this 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. The description aligns with schema parameters by mentioning sortable by builder fees/volume/PnL and window, but it does not add meaning beyond the schema's own field descriptions. The schema already documents sort, limit, offset, period, builder, and useToonFormat adequately.
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 wallets that traded via a builder address, scoped to a window and sortable by fee, volume, or PnL. It also distinguishes itself from pulse cohort tools by explicitly contrasting lifetime tiers with 30d-rolling tiers, so an agent can tell it apart from siblings without inspecting 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 concrete use cases: 'who are builder X's biggest fee payers?' and 'are smart-money wallets using this frontend?'. It also differentiates from pulse cohort tools by calling out the tier semantics difference. However, it does not explicitly state when not to use this tool or name a specific sibling alternative for comparison, so it falls short of full exclusion guidance.
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.
| 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 convey the safety profile (read-only, idempotent, non-destructive), so the description does not need to restate that. It adds contextual value by framing the data as a daily trajectory for outcome-market trends, but does not disclose additional behavioral details such as ordering, pagination, or limits.
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 primary action and included metrics appear first, followed by the intended use case. Every part 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 trend tool with well-documented parameters and rich annotations, the description is complete. It lists the returned metric dimensions and the intended analytical use, so an agent can invoke it correctly without needing 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 coverage is 100% and both parameters (days, useToonFormat) have descriptive documentation in the schema itself. The description adds general context about the data being daily but does not need to compensate for missing schema information.
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 daily HIP-4 volume trajectory') and enumerates the exact metrics returned (fills, unique trades, unique wallets, contracts, notional USDH). This clearly identifies the tool's scope and differentiates it from sibling HIP-4 tools like outcome summaries or 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 gives clear intended context: 'Use for outcome-market activity trends.' This tells an agent when the tool is appropriate, though it does not explicitly mention when not to use it or name alternative sibling tools.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Look-back window in hours. Default 24, max 168. | |
| 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, non-destructive behavior, so the description only needs to add value beyond that. It does add useful context: it lists only contracts that traded recently, mentions question metadata 'when available', and names the returned trade/volume/timestamp fields. It does not mention ordering, pagination, or result limits.
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: an action statement, a compact list of return fields, and a usage directive. Every sentence earns its place 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?
For a simple optional-parameter list tool with no output schema, the description covers what is listed, what fields are returned, and when to use it. It does not explain result ordering or caps, but the schema fully covers the hours 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 hours and useToonFormat are already fully documented with defaults, bounds, and behavior. The description adds no additional parameter-level meaning, 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?
States a specific verb ('List'), resource ('active HIP-4 outcome contracts'), and scope ('traded recently'), then enumerates the returned fields. It is clearly about listing contracts rather than summarizing trades or questions, though it does not explicitly contrast with sibling tools like hip4_outcome_recent_trades or hip4_most_active.
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 'Use when users ask what prediction/outcome markets are active,' giving a clear context for when to invoke this tool. It does not specify when not to use it or name alternative tools, but the guidance is direct and not misleading.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look-back window in days. Default 30, max 365. | |
| 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 operational value by stating the authentication requirement ('Requires a Starter-or-higher key') and specifying the returned data fields, which 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?
The description is a single well-structured sentence that front-loads the primary purpose, then lists the return fields, then states the access requirement. Every element earns its place and there is no redundant or filler content. It is concise without sacrificing necessary 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 present, the description compensates by listing the expected return fields in reasonable detail and also discloses the auth requirement. It is sufficient for basic invocation, though it could be slightly more complete by noting how this tool relates to sibling outcome-focused tools or by mentioning any pagination or result-size limits.
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 days, address, and useToonFormat are already fully documented in the input schema. The description does not add extra parameter-level meaning, but it doesn't need to because the schema carries that burden adequately. Therefore a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 one wallet's HIP-4 outcome history,' and then enumerates the exact fields returned. This clearly differentiates it from sibling tools like hip4_outcome_summary or hip4_outcome_recent_trades by emphasizing per-wallet detailed history. It leaves no ambiguity about what the tool does.
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 phrase 'one wallet's HIP-4 outcome history' implies the tool is for per-wallet historical detail, but the description never explicitly states when to choose this over alternatives such as hip4_outcome_summary or hip4_outcome_recent_trades. No exclusions or alternative routing are provided, so the usage context is only 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.
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. Prefer this over pulse_market_overview (same data, kept only for backward compat). 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, openWorldHint, and non-destructive behavior, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: it is the canonical discovery tool, returns the full market set with specific fields, and shares data with pulse_market_overview. No contradictions or hidden side effects are 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 compact and front-loaded with the core function, then gives trigger examples and sibling routing. Every sentence earns its place, and there is no fluff or redundant restating 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 simple two-optional-parameter read-only tool with no output schema, the description is complete: it names the return fields, states when to use it, and routes to alternatives. Nothing needed for correct selection or invocation 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%, and both parameters have clear descriptions in the schema. The tool description does not add much parameter-level meaning beyond reinforcing that dexes cover builder-dex markets and that commodities/stocks are relevant use cases, 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 states a specific verb and resource: 'Returns every trading symbol on Hyperliquid and its builder dexes' with the exact data fields included. It also distinguishes itself from pulse_market_overview and list_assets, making it easy for an agent to select this tool over near-named 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 gives explicit trigger conditions ('whenever the user asks what markets are available?, mentions a commodity, stock, or builder-dex market') and names alternatives with routing guidance: prefer over pulse_market_overview for backward compatibility, use list_assets for asset-level grouping. This is clear, actionable, and complete.
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, mark/oracle dislocation history when available, and liquidation counts over time.
| 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) | |
| 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=true, destructiveHint=false, idempotentHint=true). The description adds valuable behavioral context beyond annotations: the data is hourly, includes multiple historical series, and some data (mark/oracle dislocation history) is included only 'when available.' No contradiction exists between the description and 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 purposeful sentences: what it does, when to use it, and what it returns. The most important intent is front-loaded, and the return-component list is compact. 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 well by enumerating the major output components and caveating availability. The hours range and output format are already documented in the schema, so their absence from the description is acceptable. It could have briefly noted the default 7-day window, but the description is otherwise sufficient for a history-retrieval 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 schema already fully documents coin, hours, and useToonFormat. The description does not add new parameter-specific meaning beyond reinforcing the historical nature of the data. Baseline 3 is appropriate because the schema carries the 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 the historical risk lane for a coin.' It also provides example questions and enumerates the returned data types (OI, long/short history, cohort rotation, candles, mark/oracle dislocations, liquidations), making its purpose concrete. The word 'historical' clearly distinguishes it from the sibling 'live_coin_risk_snapshot', 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?
The 'Best for questions like...' phrasing gives clear contextual guidance for when to use this tool, especially for historical risk analysis. It does not explicitly state when not to use it or name alternative snapshot/current-state tools, but the historical framing and example questions strongly imply the appropriate use case.
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 last 30 days.
| 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) | |
| 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, so the safety profile is covered. The description adds useful behavioral context by clarifying the data is historical (despite 'live' in the name), bounded to the last 30 days, and composed of timestamped mark/oracle/basis values. No caveats about pagination or freshness are given, but the annotations lower the burden.
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 a front-loaded action, an illustrative use case, and a concise return-value summary. No word is wasted; the second sentence clarifies the output without 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 annotations covering safety and schema covering all parameters, the description supplies the missing output-level information (timestamped fields, 30-day history). An agent can correctly select and call this tool with the provided information alone.
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 all three parameters at 100% coverage, including coin prefix syntax, hours bounds/default, and toon format. The description only implies the 30-day historical window and adds no parameter-specific guidance beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 mark/oracle dislocation data for a coin,' and immediately distinguishes the tool's focus from broader price/risk tools by naming the returned fields (mark price, oracle price, basis percentage). The example question about basis stress/oracle drift before liquidations reinforces a unique use case among the 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 gives a concrete trigger ('Use this to answer questions like...') that maps to dislocation analysis, which tells an agent when this tool is relevant. It does not explicitly name alternatives or give when-not-to-use conditions, 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.
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 all trader cohorts. Returns net long/short notional and account counts per tier. Use this to see how different groups (whales, smart money) have shifted their positioning over time. Supports per-coin or global aggregate. 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 declare readOnly/openWorld/idempotent/non-destructive, and the description adds behavioral detail beyond that: hourly cadence, 30-day max range, and the response contents (notional and account counts per tier). This helps set expectations without repeating 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?
Five short sentences, each earning its place: purpose, output, use case, scope, and limit. Front-loaded with the main action and output.
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 historical tool with no required parameters and no output schema, the description covers inputs, output shape, supported scope, and time limit. The only notable gap is not explicitly disambiguating from the similarly named live_cohort_bias_history sibling.
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 carries the parameter documentation; the description reinforces that omitting coin yields a global aggregate and constrains ranges to 30 days, but adds little new 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-resource pair: 'Get historical hourly bias snapshots for all trader cohorts' and specifies the returned data (net long/short notional and account counts per tier). It is clear about scope and constraints, though it does not explicitly differentiate from siblings like 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?
It gives a direct use case: 'Use this to see how different groups (whales, smart money) have shifted their positioning over time,' and states coverage ('per-coin or global aggregate') and a hard limit ('Max range is 30 days'). It does not name alternative tools for real-time snapshots or explicitly say 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_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 all trader cohorts. Returns PnL, volume, trade counts, and active trader counts per tier. Use this to track the consistency and profitability of different groups over time. Max range is 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| 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. | |
| 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 that this is a read-only, idempotent, non-destructive operation. The description adds useful behavioral context beyond those hints by specifying the 30-day range limit and describing the returned metrics, which is especially valuable given 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?
Three compact sentences cover purpose, output contents, use case, and a key limit with no filler. The most essential information is front-loaded in the first sentence, making it easy for an agent to quickly determine whether to invoke this 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?
For a read-only query tool with no required parameters, the description is largely complete: it states what the tool returns, who it covers, and its range constraint. It does not describe default time-window behavior or format switching, but those are covered by the input schema, so only minor contextual gaps remain.
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, patterns, and the override relationship between startTime and since. The description adds only the general 30-day max, which restates the schema's 'max 30d' note, so no significant new parameter meaning is provided.
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 daily performance statistics for all trader cohorts.' It further clarifies the scope by listing the exact returned metrics (PnL, volume, trade counts, active trader counts per tier), making it clearly distinct from sibling cohort tools such as pulse_cohort_summary or pulse_cohort_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?
The description gives a clear use case: 'Use this to track the consistency and profitability of different groups over time.' It also communicates an important constraint ('Max range is 30 days'). However, it does not explicitly mention when to prefer alternative tools, such as pulse_trader_daily_stats for individual trader statistics.
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.
| 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 the safety profile is well covered. The description adds useful context about the data fields and coverage period, but does not disclose output structure, pagination, or any other behavioral details beyond what annotations 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 with no filler. The first sentence front-loads what the tool returns, and the second provides a clear use case. 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?
This is a simple tool with one optional, well-documented parameter and rich safety annotations. The description covers the data returned and the intended use case, which is fully adequate for an agent to select and invoke the tool correctly. No output schema exists, but the description gives enough hint about the response contents.
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 with its default and effect. The description adds no parameter-specific meaning, but none is needed given the schema's completeness, 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 uses a specific verb ('Get') with a clear resource ('global Hyperliquid trading statistics') and enumerates the exact metrics returned: total traders, trades, volume, PnL, and data coverage period. It is clear and informative, though it does not explicitly differentiate itself from siblings like pulse_market_overview or pulse_active_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?
The description explicitly states when to use the tool: 'Use this to understand the overall scale of the market.' This gives clear intent but does not mention exclusions or alternatives, so it lacks the when-not-to-use guidance that would make it a 5.
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.
| 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 convey readOnly, idempotent, non-destructive, and open-world behavior, so the description's additional behavioral load is light. The description adds the ranking/filtering intent but does not disclose return shape, whether 'losers' sorting is included, or other behavioral nuances beyond the schema 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 description is compact and front-loaded, with three short sentences that directly state the action, key options, and intended use. There is no redundant or verbose wording.
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 plus the fully documented schema is enough to invoke the tool for a basic leaderboard query. However, with no output schema and many overlapping sibling leaderboard tools, it would benefit from clarifying what the return payload contains and how this tool differs from alternatives like pulse_pnl_leaders or pulse_top_traders.
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 restates sort keys and filters but adds no new semantic detail beyond the schema, and it omits 'losers' from the listed sort options.
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 names the resource (trader leaderboard) and the verb (get), and enumerates the sort and filter dimensions. It is specific enough to convey the core action, though it does not explicitly differentiate from similar leaderboard siblings like pulse_top_traders or pulse_pnl_leaders.
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 usage context: 'Use this to find the best traders on Hyperliquid.' This tells an agent when the tool is relevant, but it does not mention exclusions or alternative leaderboard tools, leaving some ambiguity among the many sibling leaderboard/analytics tools.
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 every trade fill 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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Lifecycle ID (from pulse_trader_lifecycles). | |
| 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 the safety profile is covered. The description adds valuable behavioral context by specifying the join window from the trades table and the exact fill-level fields returned, which is more than the schema or 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?
Two dense sentences with no filler. The first sentence front-loads the lookup purpose and return contents; the second provides actionable usage guidance. 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 lookup, the description covers what the tool returns, how it sources that data, and how it fits into the workflow with pulse_trader_lifecycles. With schema covering parameters and annotations covering safety, 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 both parameters are already documented in the schema. The description reinforces that 'id' comes from pulse_trader_lifecycles, matching the schema's own note, but does not add substantial new meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Look up one position lifecycle by its numeric ID') and clearly describes the returned data (each composing trade fill with timestamp, side, size, price, PnL, fee, tx hash). It differentiates itself from sibling list-style lifecycle tools by emphasizing the single-position drill-down purpose.
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 tells the agent when to use this tool: 'Use after pulse_trader_lifecycles to drill into exactly how a single position was built and unwound.' This gives clear sequencing and distinguishes it from the broader lifecycle listing tool.
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.
| 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 declare readOnly/openWorld/idempotent/non-destructive, and the description adds valuable behavior beyond that: the source table, inclusion of MAE/MFE only when backfilled, liquidation flag, optional spot, and the critical caveat that the freshest closes may show null MAE/MFE due to risk backfill lag. This is exactly the kind of behavioral context an agent needs.
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: core use case, source and included fields, successor relationship, and an important data-quality caveat. The most essential information is front-loaded, with 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 feed tool with no output schema, the description conveys the source table, key returned fields, filters, and a meaningful lag caveat. It does not describe the full response envelope or the practical effect of useToonFormat beyond the schema, but an agent has enough context 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%, with every parameter including defaults, patterns, and examples. The description restates filter categories like coin, minNotional, hold-duration, and time window, but adds no new parameter-level meaning beyond what the schema already 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?
Description opens with a specific verb and resource: 'Global feed of the most recently CLOSED position lifecycles across ALL wallets.' It also positions itself as the 'Cross-wallet successor to pulse_recent_closed_positions', making it clearly distinguishable from siblings like pulse_trader_lifecycles or pulse_lifecycle.
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 when to use this tool: for exchange-wide, real-time closed lifecycle activity — 'what just closed exchange-wide right now'. It explicitly identifies the predecessor/sibling pulse_recent_closed_positions, but it does not enumerate exclusions or contrast with other lifecycle/trader-specific alternatives, so guidance is strong 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_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_market_overviewMarket OverviewARead-onlyIdempotent
DEPRECATED alias for list_markets — returns the same payload (24h volume, open interest, mark price, funding rate, 24h change for every pair). Prefer list_markets for new integrations; this tool is kept for backward compatibility only.
| Name | Required | Description | Default |
|---|---|---|---|
| dex | No | Filter by dex. 'hl' for native Hyperliquid only, or a builder dex name (xyz, cash, km, 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?
The description goes beyond annotations by disclosing that the tool is deprecated, behaves as an alias, and returns the same payload as list_markets. This is valuable behavioral context that the agent cannot infer from the schema or annotations alone.
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, well-structured sentence that front-loads the deprecation, names the replacement, describes the payload, and states the intended use. There is no wasted text.
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 list-style tool with rich annotations and fully documented optional parameters, the description is complete. It conveys deprecation status, payload contents, and the relationship to list_markets, which is all an agent needs to call or avoid 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 both parameters (dex and useToonFormat) are already fully documented in the schema. The description does not add parameter-level detail, and baseline 3 is appropriate because the schema carries the 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 the tool is a deprecated alias for list_markets and specifies exactly what payload it returns (24h volume, open interest, mark price, funding rate, 24h change for every pair). This clearly identifies the resource and distinguishes it from siblings, especially 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 explicitly says to prefer list_markets for new integrations and that this tool is kept for backward compatibility only. This provides clear when-to-use versus when-not-to-use guidance, leaving no inference burden on the agent.
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; 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 readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral context beyond that: lifecycles are 'reconstructed from on-chain fills,' a '90-day rolling window' applies, and 'spot (@-prefixed) excluded by default.' No contradiction with annotations 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: it states the core function first, then enriches with return-row details, the comparison to closed-positions, key constraints, and a use case. Every sentence adds value 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?
Given the absence of an output schema, the description appropriately enumerates returned fields: entry/exit VWAP, peak size, hold duration, realized PnL, fees, fill count, and liquidation status. It also covers key behavioral constraints like the rolling window and default spot exclusion. Combined with the fully documented input schema, the tool is adequately specified for an agent 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?
The input schema has 100% parameter description coverage, so the baseline is 3. The description reinforces the window and spot exclusion but does not add much parameter-specific syntax beyond what the schema already documents. This is acceptable because the 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 opens with a specific verb and resource: 'Get a wallet's position lifecycle history.' It then details what each lifecycle contains and explicitly contrasts with closed-positions: 'Richer than closed-positions: each row is a full position lifecycle.' This makes the tool's purpose distinct from similar 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?
The description gives a clear use case: 'Use for deep position-level due diligence and timing analysis.' It also differentiates from closed-positions by explaining that this returns full lifecycles. It does not explicitly name alternative tools or state when not to use it, but the comparison and use-case guidance are 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_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.
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds useful behavioral context by describing the recency of the data ('last minutes/hours') and the exact trade fields returned. It does not discuss pagination or output ordering, but the annotation coverage lowers the burden and the description meaningfully supplements it.
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 action and resource, then immediately states the value for the user. 'Essential for copy-trading and due diligence' earns its place by conveying practical purpose.
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 fully documented schema, read-only annotations, and the description's coverage of output content and use case, an agent has enough information to call the tool correctly. It could be slightly more complete by noting how this differs from sibling tools like pulse_recent_trades or pulse_trader_profile, but that is not a serious 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 input schema already documents all five parameters including defaults and patterns. The description adds little beyond framing the address and recency, so it does not need to compensate for schema gaps. 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 starts with a specific verb and resource: 'Get recent trades for a specific wallet address.' It also names the expected content (buy, sell, size, price, PnL), and the phrase 'specific wallet address' differentiates it from market-wide or cohort sibling tools like pulse_recent_trades or pulse_cohort_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 clear context for when to use the tool: to inspect one trader's recent activity for copy-trading and due diligence. It does not explicitly name alternatives or state when not to use it, so there is no exclusion guidance, but the intended use is evident.
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. Dates show when Glama detected each change.
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
Many tool pairs are near-neighbors with only subtle distinctions: pulse_trader_lifecycles vs pulse_trader_closed_positions vs pulse_trader_closed_position_stats, plus multiple recent-cohort variants like pulse_cohort_positions vs pulse_cohort_recent_positions. The detailed descriptions help, but with 103 tools an agent will frequently need to read very carefully to avoid misselection.
The server uses readable snake_case and helpful domain prefixes such as market_, live_, pulse_, hip4_, and builder_. However, the pattern is not truly consistent: list_markets, market_price, pulse_compare, hip4_questions, and pulse_lifecycle mix verbs, nouns, and arbitrary phrasing.
103 tools is far beyond a reasonable agent-facing surface, even for a broad analytics domain. The sheer count creates massive context overhead and makes tool selection itself a significant failure point.
For a read-only analytics server, the domain coverage is exhaustive: markets, assets, traders, cohorts, liquidations, risk, builders, HIP-4 outcomes, entities, and exchange-wide aggregates all have both discovery and drill-down tools. I did not find an obvious missing read operation within the implied scope.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hyperliquid perp market data for LLMs: OHLCV, funding, open interest, positioning & forecasts.
Market intelligence for AI agents. Real-time data, cross-market analysis, and regime detection.
Hyperliquid - 2 tools for perpetuals, options, and position data
Polymarket + Hyperliquid + macro for AI agents. 38 tools, signal backtest, SSE streaming. Free tier.
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.151MIT
- AlicenseBqualityDmaintenanceIntegrates with Hyperliquid DEX to enable trading, account management, and market data queries through natural language.12243MIT
- AlicenseAqualityDmaintenanceEnables AI agents to interact with Hyperliquid perpetual futures exchange for market analysis, account management, and risk-managed trading.51MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Coinversaa/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server