Skip to main content
Glama
Coinversaa

Coinversaa Pulse

Official
by Coinversaa

Coinversa Pulse — MCP Server

Crypto intelligence for AI agents. Query the full Hyperliquid wallet universe, indexed trade history with PnL attribution, behavioral cohorts, and live market data through any MCP-compatible client. Call pulse_global_stats to see exact current coverage (tracked wallets, indexed trades, volume, PnL, data window).

Now with HIP-4 outcome contracts and builder dex support — inspect prediction-market style outcome contracts, settlements, commodities (gold, silver, oil), stocks (TSLA, AAPL), and perps across 8 dexes and 369+ markets.

What's new in 0.12.0

L4 order book tools and dataset coverage. Five more tools, and full parity with the hosted connector at https://mcp.coinversa.ai/mcp.

New tool

What it answers

book_summary [Pro]

"What does the resting book for coin X look like right now — depth, spread, imbalance?"

book_levels [Pro]

"Where is the resting size stacked, level by level?"

book_whales [Pro]

"Which wallets are holding the largest resting orders, and on which side?"

book_stop_map [Pro]

"Where are the trigger orders clustered that a move would sweep?"

data_coverage

"What window does each dataset cover, and how fresh is it?"

Tool count: 103 → 107 registered, 106 advertised (see below).

Also in 0.12.0:

  • builder_heatmap is withheld by default. Its upstream cannot answer inside the client timeout until the hourly rollup is backfilled, so advertising it only produced timeouts. It is still built in: set COINVERSAA_HIDDEN_TOOLS= (explicitly empty) to advertise everything, or name a different comma-separated list to withhold other tools. Leaving the variable unset withholds builder_heatmap.

  • pulse_market_overview removed. It was a deprecated alias for list_markets, which is the canonical market-discovery tool.

  • Descriptions and parameters resynced with the hosted connector. Twenty tool descriptions and seven input schemas had drifted; live_mark_dislocations, pulse_cohort_bias_history, pulse_cohort_performance_daily, hip4_outcomes, hip4_trader_outcomes and pulse_lifecycle gained the paging and filter parameters the hosted connector already had, and live_coin_risk_history gained include.

Related MCP server: cerebrus-pulse-mcp

What's new in 0.11.1

Builder user-lifecycle, journey, heatmap, and order-intent analytics. 4 more tools over the same builder-fee data, covering where a builder's users stand today, how fast it monetizes a new wallet, when its flow actually trades, and what its users intend at order placement.

New tool

What it answers

builder_journey [Pro]

"How fast and how unevenly does builder X monetize a new user?"

builder_lifecycle [Pro]

"How many of builder X's users are still active, and how many did a rival take?"

builder_heatmap [Pro]

"What hours does builder X's volume peak, and when is it safe to ship?"

builder_orders [Pro]

"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 title and MCP annotations (readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true), so clients can label the tools and treat them as read-only without prompting.

  • Hosted connector parity — this package now ships exactly the tool set served by the hosted OAuth endpoint at https://mcp.coinversa.ai/mcp. The obsolete header-authenticated HTTP entrypoint that used to live in this repo has been removed; see Quick Start for the two supported ways to connect.

What's new in 0.11.0

Builder analytics — 8 new tools (91 → 99). The Hyperliquid builder-code economy (the fees frontends, wallet apps, bots, and builder dexes earn on routed order flow) is now a first-class tool family:

  • builder_leaderboard — builders ranked by exact on-chain ledger revenue, with attributed volume/users and prev-window deltas (Starter)

  • builder_profile — one builder: revenue, daily series, top coins, profitable-user share (Starter)

  • builder_traders — wallets trading via a builder, with exchange-wide cohort tiers (Pro)

  • builder_fills — individual attributed fills through a builder, perp/spot/HIP-4 (Pro)

  • builder_cohorts — a builder's user base split by behavioral tier (Pro)

  • builder_retention — monthly new-user retention triangle (Pro)

  • builder_overlap — which other builders share this one's users (Pro)

  • trader_builders — every builder one wallet trades through, by fees paid (Starter)

Revenue is computed from Hyperliquid's own cumulative builder-fee ledger (reconciled on-chain); fill-level detail comes from order→fill attribution with honest coverage caveats in every response (dataNotes). Ask your agent "which frontends do MetaMask's traders also use?" — no other data source can answer that.

What's new in 0.10.0

Dual-vocabulary cohort tiers. New canonical tier slugs accepted everywhere a tier is an input — PnL tiers (apex, sharps, grinders, scrapers, crowd, bleeders, trapped, blown_out) and weight-class size tiers (heavyweights … strawweights). Legacy slugs (money_printer, smart_money, …) remain valid indefinitely; responses are unchanged. No breaking changes.

What's new in 0.9.0

Entity resolution, tier-aware sessions, and chain-verified answers.

New tool

What it answers

pulse_entity_profile [Pro]

"Who owns this wallet — and what is their REAL combined book across every sub-account?"

pulse_entity_leaderboard [Pro]

"Top traders deduped by OWNER, not wallet — a fund running 35 sub-accounts shows as one entity."

pulse_my_plan

"What plan is this API key on, what are the limits, and what does upgrading unlock?"

pulse_exchange_volume

"24h volume — total and per dex (builder dexes are ~43% and most trackers miss them)."

pulse_exchange_oi

"Open interest by dex with long/short split."

pulse_active_traders

"How many wallets traded in the last 24h?"

pulse_exchange_positions

"How many positions are open right now, per dex?"

pulse_pnl_leaders

"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

pulse_trader_lifecycles

"Show me every open→close position for this wallet, with entry/exit and hold time."

pulse_trader_lifecycle_summary

"What are this wallet's position-level stats — win rate, avg hold, biggest win/loss?"

pulse_lifecycle

"Break down lifecycle 12345 into every fill that built and unwound it."

pulse_trader_demo

"Give me a quick wallet brief before a deeper dive."

pulse_wallet_drawdown_curve

"How far underwater did each of this wallet's positions go before working?"

pulse_max_pain_events

"Which winners survived the deepest drawdowns before recovering?"

pulse_perfect_exits

"Which exits captured most of the maximum favorable move?"

pulse_backstop_events

"What were the most catastrophic individual liquidations?"

pulse_survivors / pulse_anti_survivors

"Who blew up and recovered — and who never did?"

pulse_persistent_winners

"Who is profitable across multiple distinct months, not just lucky once?"

pulse_capital_titans

"Who extracts the most PnL per dollar of fees paid?"

pulse_one_month_wonders

"Who had one huge month then gave it back?"

pulse_newcomer_whales

"Who just showed up and is already trading big notional?"

pulse_coin_kings

"Who is the top earner of each coin?"

pulse_top_liquidators

"Who profits most by liquidating others?"

pulse_lethal_coins

"Which coins blow people up most often?"

pulse_coin_alpha_map

"Per coin, how big are the winner vs loser profit pools?"

pulse_hour_profitability

"What UTC hour of close is most profitable?"

pulse_market_concentration

"How concentrated is alpha — do the top 1% take everything?"

pulse_style_distribution

"Do scalpers or swing traders make more money?"

pulse_compare

"Head-to-head: who is the better trader, A or B?"

pulse_cohort_recent_*

"What are wallets that are printing RIGHT NOW (last-30-day tier) doing — positions, trades, top lifecycles, concentration?"

pulse_lifecycles_recent

"What just closed exchange-wide right now?" (global feed; successor to pulse_recent_closed_positions)

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

hip4_outcomes

"What outcome contracts are active right now?"

hip4_outcome

"What is outcome 123 and what side tokens does it use?"

hip4_outcome_summary

"How much volume/PnL has this outcome done across both sides?"

hip4_outcome_recent_trades

"Show me recent fills for this prediction market."

hip4_questions

"What HIP-4 questions and named outcomes exist?"

hip4_recent_settlements

"Which outcomes settled recently and which side won?"

hip4_daily_volume

"Is HIP-4 outcome volume growing day by day?"

hip4_most_active

"Which outcome contracts are most active?"

hip4_top_traders

"Who are the top outcome traders?"

hip4_trader_outcomes

"What outcomes did this wallet trade?"

hip4_cross_product_overlap

"How much overlap is there between outcome traders and perp traders?"

hip4_perp_position_context

"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

list_assets

"What assets are available? Which are listed on 2+ venues?"

list_asset

"Where does GOLD trade? Is PAXG the same as GOLD?"

pulse_cross_market_asset

"Is gold more crowded on xyz or hyna? Do dexes disagree on BTC direction?"

live_official_oi

"What does Hyperliquid itself report for BTC OI — do our numbers match?"

Synonyms baked in: PAXG → GOLD, XAUT → GOLD, XAGT → SILVER. Prefix grouping (BTC ≡ flx:BTC ≡ hyna:BTC) works automatically.

Other 0.6.0 housekeeping: default API URL points at production; removed stale hard-coded "710K+ wallets / 1.8B+ trades" marketing figures (call pulse_global_stats for current coverage); pulse_market_overview kept as a deprecated alias for the canonical list_markets.

Quick Start

There are two ways to connect. Both expose the same 106 read-only tools available by default and both require a Coinversa API key (cvsa_...) — there is no keyless tier.

Method

Where

Auth

Best for

Hosted Remote MCP (recommended)

https://mcp.coinversa.ai/mcp

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)

npx -y @coinversaa/mcp-server@0.12.0

COINVERSAA_API_KEY env var

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)

  1. Open claude.ai/customize/connectors?modal=add-custom-connector.

  2. Name: Coinversa — URL: https://mcp.coinversa.ai/mcp. Leave the auth fields empty.

  3. Click Add, then Connect; sign in on the Coinversa page and click Authorize.

  4. 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

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

Linux

~/.config/Claude/claude_desktop_config.json

{
  "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/mcp

Then run /mcp inside Claude Code and choose Authenticate for coinversa; the browser flow is the same as above.

ChatGPT, Perplexity, and other remote clients

Add a custom connector / remote MCP server with URL https://mcp.coinversa.ai/mcp and no headers. The client will open the Coinversa authorization page on first use.

Local stdio MCP (npx + API key)

For stdio-only clients (for example Codex) or when you would rather hold the key yourself, run this npm package locally. Get a key from the developer portal.

{
  "mcpServers": {
    "coinversa": {
      "command": "npx",
      "args": ["-y", "@coinversaa/mcp-server@0.12.0"],
      "env": {
        "COINVERSAA_API_KEY": "cvsa_your_key_here"
      }
    }
  }
}

Or from a shell:

COINVERSAA_API_KEY=cvsa_... npx -y @coinversaa/mcp-server@0.12.0

This 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

POST

MCP Streamable HTTP endpoint (requires a valid OAuth access token)

/health

GET

Health check — returns { ok, name, version }

/.well-known/oauth-authorization-server

GET

OAuth 2.1 authorization-server metadata (RFC 8414)

/.well-known/oauth-protected-resource/mcp

GET

Protected-resource metadata (RFC 9728) — this is what clients follow from the 401 on /mcp

/authorize

GET

Authorization endpoint; renders the consent page

/token

POST

Token endpoint (authorization_code + PKCE, refresh_token)

/register

POST

Dynamic client registration (RFC 7591)

/revoke

POST

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:

  1. The client POSTs to /mcp without a token, gets 401 with a WWW-Authenticate header pointing at the protected-resource metadata, and discovers the authorization server from there.

  2. The client registers itself via /register (DCR), then opens /authorize in the browser with a PKCE code challenge.

  3. 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.

  4. The client exchanges the authorization code (plus PKCE verifier) at /token for tokens.

Token details:

Token

Format

Lifetime

Access token

opaque, random

1 hour

Refresh token

opaque, random, rotated on every refresh

90 days, sliding

Tokens are stored hashed (SHA-256) on the server. Revoking the underlying API key in the developer portal invalidates every session authorized with it.

There is no header-based API-key authentication on the hosted endpoint. Requests that skip OAuth and put a raw cvsa_ key in an Authorization or custom header are rejected with 401. If you want to authenticate with a key you hold, run the local stdio server instead (see above), which reads COINVERSAA_API_KEY from its environment and sends it to the Coinversa API itself.

Privacy & data handling

The hosted server is a thin, stateless bridge between your MCP client and the Coinversa API.

What it stores (a SQLite database on Coinversa infrastructure):

  • OAuth client registrations created through dynamic client registration (client id, redirect URIs, client metadata).

  • Access and refresh tokens, stored as SHA-256 hashes — the plaintext token exists only in your client.

  • The API-key grant behind each token: either a key id (a reference the backend resolves; the key itself is never stored) when you connected through the developer portal, or the pasted key encrypted at rest with AES-256-GCM under a key-encryption key that lives outside the database.

What it never stores:

  • Conversation content. The server only ever sees the tool call in flight, not your chat.

  • Tool arguments or results beyond the lifetime of the request being served. Nothing is written to a database, and parameters are not logged.

  • Wallet private keys, seed phrases, signatures, exchange credentials, or any custody material — no tool asks for them and none exist.

The local stdio server stores nothing at all: it holds COINVERSAA_API_KEY in memory for the life of the process and forwards each tool call to the Coinversa API.

What tool calls send to the Coinversa API: the parameters you can see in each tool's schema — market symbols, public wallet addresses, cohort names, HIP-4 outcome ids, builder addresses, time windows — plus your API key for authorization and metering. Usage is counted against the key's plan; see Rate Limits.

Scope: every tool is read-only and is annotated as such (readOnlyHint: true, destructiveHint: false). The server cannot place orders, sign transactions, move funds, approve agents, or change any account setting on Hyperliquid or Coinversa.

Revocation: revoke the API key in the developer portal to disconnect every agent that authorized with it, or remove the connector in your client; clients may also call /revoke.

Policies: coinversa.ai/privacy · coinversa.ai/terms. Questions or data requests: chat@coinversaa.ai.

Connector directory

For directory reviewers and security teams, in one place:

  • Read-only. 107 registered tools, 106 available by default — all GET-equivalent analytics; no write, trade, transfer, or account-mutation capability of any kind. No financial transactions are possible through this connector.

  • Auth: OAuth 2.1, PKCE S256, dynamic client registration, refresh-token rotation. No API keys in headers, no static secrets in client config.

  • Data source: first-party — the server is operated by Coinversa and calls only Coinversa's own API at api.coinversa.ai (plus, during sign-in, the Coinversa developer portal/backend). No third-party data brokers or LLM providers are called.

  • Transport: Streamable HTTP (stateless POST /mcp), TLS only.

  • Data retention: hashed tokens, encrypted key or key id, DCR client records. No conversation or parameter logging.

  • Source: github.com/coinversaa/mcp-server (MIT) — the npm stdio package, with the same tool definitions the hosted connector serves.

  • Support: chat@coinversaa.ai · Privacy · Terms

Builder Dex Markets

Hyperliquid supports multiple builder dexes beyond the native perps exchange. Each dex has its own set of markets, collateral token, and symbol format.

Dex

What it trades

Collateral

Example symbols

(native)

Core perps (crypto)

USDC

BTC, ETH, SOL, HYPE

xyz

Commodities, stocks, indices

USDC

xyz:GOLD, xyz:SILVER, xyz:TSLA

flx

Perps

USDH

flx:BTC, flx:ETH

vntl

Perps

USDH

vntl:ANTHROPIC, vntl:BTC

hyna

Perps

USDE

hyna:SOL, hyna:BTC

km

Energy & commodities

USDH

km:OIL, km:NATGAS

abcd

Misc

USDC

abcd:BITCOIN

cash

Stocks & equities

USDT0

cash:TSLA, cash:AAPL

Symbol format:

  • Native Hyperliquid symbols: BTC, ETH, SOL

  • Builder 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 canonical BTC. Zero-config.

  • Different ticker, same exposure (PAXG and GOLD both 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:GOLD

  • netBias: 0.27 — moderately long across venues

  • biasRange: 0.61 — venues disagree strongly on strength of conviction (worth flagging in any answer)

  • synonyms: ["GOLD", "PAXG"] — confirms PAXG was correctly merged into canonical GOLD

Numbers are illustrative — call pulse_cross_market_asset with canonical: "GOLD" for current values.

Backend dependency

The 3 asset tools call /api/public/v1/assets* endpoints on the production Coinversa backend (https://api.coinversa.ai). Self-hosted or forked setups need to run a backend that exposes these routes; see the Coinversa backend repo for the reference implementation.

Available Tools (106)

All of them require an API key. The MCP registers 107 tools and advertises 106 by default (builder_heatmap is withheld — see What's new in 0.12.0), and the Coinversa API enforces access by key tier. Free API keys can use public/discovery routes, while Starter, Pro, and Enterprise keys unlock deeper trader, HIP-4, risk, historical, and official OI tools.

Risk Tools Freshness

Syncer-backed risk tools such as live_risk_overview, live_coin_risk_snapshot, live_coin_risk_history, live_mark_dislocations, live_recent_liquidations, live_liquidation_summary, live_oi_history, and live_cohort_bias_history are best treated as beta recent-intelligence tools. For venue ground-truth OI, live_official_oi pulls directly from Hyperliquid's Info API as a cross-check.

  • Best for research, LLM training, liquidation analysis, OI trend work, and crowding detection

  • Best queried over recent windows like 7d or 30d

  • Freshness 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

live_risk_overview, live_coin_risk_snapshot

"What looks fragile right now?", "Is BTC crowded?", "Which coin is closest to forced unwinds?"

Explain recent stress

live_recent_liquidations, live_liquidation_summary, live_mark_dislocations

"Where did forced unwind activity hit?", "Did basis stress show up before liquidations?", "What got liquidated over the last 30 days?"

Track regime change

live_coin_risk_history, live_oi_history, live_cohort_bias_history

"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

pulse_global_stats

Total traders, trades, volume, PnL across Hyperliquid — call this for current coverage numbers

list_markets

Canonical market discovery — every symbol with dex, price, volume, funding rate, OI

pulse_market_overview

Deprecated alias for list_markets (same payload)

pulse_leaderboard

Top traders ranked by PnL, win rate, volume, score, or risk-adjusted returns

pulse_hidden_gems

Underrated high-performers most platforms miss

pulse_most_traded_coins

Most actively traded coins ranked by volume and trade count

pulse_biggest_trades

Biggest winning or losing trades across all of Hyperliquid

pulse_recent_trades

Biggest trades in the last N minutes/hours

pulse_token_leaderboard

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

list_assets

Directory of canonical assets — every asset grouped by economic exposure, with venues, synonyms, and a cross-market flag. Use crossMarketOnly: true to filter to multi-venue assets.

list_asset

Single canonical lookup with venue breakdown. Accepts synonyms — list_asset({canonical: "PAXG"}) returns the GOLD asset.

pulse_cross_market_asset

Aggregated per-venue long/short/bias/OI for one asset, plus cross-venue totals and a biasRange metric (venues agree vs disagree on direction). The agent-native answer to "is X crowded?" and "do venues disagree on Y?".

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

hip4_outcomes

Free API key

hours 1-168, default 24

GET /hip4/outcomes

Recently active outcomes with outcomeId, optional question metadata, parsed priceBinary, side tokens, coin keys, asset IDs, fills, unique wallets, notional USDH, first/last traded. Use to discover active prediction markets.

hip4_outcome

Free API key

outcomeId

GET /hip4/outcomes/{outcome_id}

Detail for one outcome ID from mainnet launch onward. Returns the same outcome shape as discovery, including fallback side tokens if metadata is unavailable.

hip4_outcome_summary

Starter+

outcomeId

GET /hip4/outcomes/{outcome_id}/summary

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.

hip4_outcome_recent_trades

Free API key

outcomeId, hours 1-168 default 24, limit 1-500 default 100

GET /hip4/outcomes/{outcome_id}/recent-trades

Recent real fills only, excluding settlement, pair-redeem, and auction-phase fills. Returns trade time, wallet, coin, sideIndex, side label, dirId, price, size, PnL, and fee.

hip4_questions

Free API key

none

GET /hip4/questions

Hyperliquid outcomeMeta question catalog: question IDs, names, descriptions, fallback outcome, named outcome IDs, settled named outcomes, and parsed fields such as class, underlying, expiry, period, and price thresholds.

hip4_recent_settlements

Free API key

hours 1-720 default 168, limit 1-200 default 50

GET /hip4/settlements/recent

Recent settlements with outcome ID, settlement time, winning side when determinable, winner/loser fill counts, total winner payout, and total loser loss.

hip4_daily_volume

Free API key

days 1-60, default 14

GET /hip4/daily-volume

Daily trajectory since the requested cutoff: fills, unique trades, unique wallets, contracts, and notional USDH. Use for adoption/activity trend questions.

hip4_most_active

Free API key

hours 1-168 default 24, limit 1-50 default 10

GET /hip4/most-active

Top outcomes by recent fill count, with metadata and side tokens when available. Use to rank current outcome-market activity.

hip4_top_traders

Starter+

days 1-30 default 7, limit 1-100 default 25

GET /hip4/top-traders

Outcome trader leaderboard: address, fills, distinct outcomes, total contracts, total notional USDH, and realized PnL.

hip4_trader_outcomes

Starter+

address, days 1-365 default 30

GET /hip4/trader/{address}/outcomes

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.

hip4_cross_product_overlap

Pro+

days 1-30 default 7

GET /hip4/cross-product/overlap

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.

hip4_perp_position_context

Pro+

outcomeId, days 1-60 default 14, limit 1-100 default 25

GET /hip4/outcomes/{outcome_id}/perp-position-context

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

pulse_trader_demo

Wallet-level position stats

pulse_trader_lifecycle_summary

Full wallet lifecycle history

pulse_trader_lifecycles

Drill into one position's fills

pulse_lifecycle

MAE/MFE pain and exit timing

pulse_wallet_drawdown_curve, pulse_max_pain_events, pulse_perfect_exits

Find trader archetypes

pulse_survivors, pulse_anti_survivors, pulse_persistent_winners, pulse_capital_titans, pulse_one_month_wonders, pulse_newcomer_whales

Market-wide lifecycle structure

pulse_coin_alpha_map, pulse_hour_profitability, pulse_market_concentration, pulse_style_distribution

Compare wallets

pulse_compare

Analyze currently-hot cohorts

pulse_cohort_recent_positions, pulse_cohort_recent_trades, pulse_cohort_recent_lifecycle_stats, pulse_cohort_recent_top_positions, pulse_cohort_recent_alpha_concentration

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

builder_leaderboard

Starter

Builders ranked by exact ledger revenue, with attributed volume/users/fills and prev-window deltas

builder_profile

Starter

One builder: revenue, daily series, top coins, profitable-user share

trader_builders

Starter

Every builder one wallet trades through, ordered by fees paid

builder_traders

Pro

A builder's attributed wallets with PnL, fees, volume, and all-time cohort tiers

builder_fills

Pro

Individual attributed fills through a builder (perp/spot/HIP-4)

builder_cohorts

Pro

A builder's user base split by behavioral tier

builder_retention

Pro

Monthly new-user retention triangle, last 12 months

builder_overlap

Pro

Which other builders share this builder's active users

builder_journey

Pro

Revenue ramp of the trailing-year acquisition cohort: lifetime fees per wallet, whale concentration, days to peak / 50% / 75% of lifetime revenue

builder_lifecycle

Pro

Lifetime user base split into active / cooling / switched / dormant / movedOn, plus true retention, churn, and competitive loss

builder_orders

Pro

Placement-plane intent: action and time-in-force mix, reduce-only share, stop/TP trigger breakdown, fill conversion

Currently hidden, not counted above: builder_heatmap [Pro] — trailing 84 days as a 7×24 UTC weekday-by-hour grid of volume, fees, and fills. It is registered but withheld by default because its upstream cannot answer inside the client timeout until the hourly rollup is backfilled. Set COINVERSAA_HIDDEN_TOOLS= (explicitly empty) to advertise it.

Pulse — Trader Profiles

Tool

Description

pulse_trader_profile

Full due diligence on any wallet (PnL, win rate, tiers, profit factor)

pulse_trader_performance

30-day vs all-time comparison with trend direction

pulse_trader_demo

Fast wallet briefing: lifecycle summary plus recent top wins and losses

pulse_trader_trades

Recent trades for any wallet — the copy-trading signal

pulse_trader_daily_stats

Day-by-day PnL, win rate, and volume breakdown

pulse_trader_token_stats

Per-coin P&L breakdown (find a trader's edge)

pulse_trader_lifecycle_summary

Preferred 0.8 wallet position summary — wins/losses, liquidation count, hold time, fees, biggest win/loss

pulse_trader_lifecycles

Preferred 0.8 lifecycle history — one reconstructed open->close position per row

pulse_lifecycle

One lifecycle by ID, including composing fills

pulse_trader_closed_positions

Legacy closed-position payload; prefer pulse_trader_lifecycles for new position analysis

pulse_trader_closed_position_stats

Legacy aggregate stats; prefer pulse_trader_lifecycle_summary for new position analysis

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

apex

money_printer

Sharps

sharps

smart_money

Grinders

grinders

grinder

Scrapers

scrapers

humble_earner

The Crowd

crowd

exit_liquidity

Bleeders

bleeders

semi_rekt

Trapped

trapped

full_rekt

Blown Out

blown_out

giga_rekt

Size tiers (by volume, largest to smallest):

Display name

Slug

Legacy slug (still accepted)

Heavyweights

heavyweights

leviathan

Cruiserweights

cruiserweights

tidal_whale

Middleweights

middleweights

whale

Welterweights

welterweights

small_whale

Lightweights

lightweights

apex_predator

Featherweights

featherweights

dolphin

Flyweights

flyweights

fish

Strawweights

strawweights

shrimp

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

pulse_cohort_summary

Behavioral tier breakdown across every tracked wallet

pulse_cohort_positions

What the Apex / Heavyweights tiers are holding RIGHT NOW

pulse_cohort_trades

Every trade a cohort made in the last N minutes/hours

pulse_cohort_history

Historical performance trends for any cohort

pulse_cohort_bias_history

Historical hourly bias snapshots for all cohorts

pulse_cohort_performance_daily

Historical daily performance stats for all cohorts

Market — Live Data

Tool

Description

market_price

Current mark price for any symbol (native or builder dex)

market_positions

Open positions for any wallet

market_orderbook

Bid/ask depth for any trading pair

market_historical_oi

Historical hourly open interest snapshots (notional USD)

market_recent_candles

Recent 1-minute candles for a market, capped to the last 12 hours to keep MCP responses practical

Live — Real-Time Analytics

Tool

Description

live_liquidation_heatmap

Liquidation clusters across price levels — support/resistance signals

live_risk_overview

Exchange-wide risk snapshot: OI, leverage, crowding, near-liquidation exposure, and 7-day liquidation totals

live_coin_risk_snapshot

Current single-coin fragility snapshot: OI, crowding, top positions, liquidation heatmap, and 7-day stress

live_coin_risk_history

Multi-lane history for a coin: OI, long/short, cohort rotation, candles, dislocations, and liquidation flow

live_mark_dislocations

Mark/oracle dislocation history for a coin — useful for spotting basis stress before or during unwinds

live_recent_liquidations

Real syncer liquidation events with wallet, coin, penalty fee, and closed PnL

live_liquidation_summary

Best liquidation summary tool: counts, totals, by-coin rollups, and timeline buckets

live_long_short_ratio

Global or per-coin long/short ratio with optional history

live_cohort_bias

Net long/short stance for every tier on a given coin

live_oi_history

Historical open interest for any coin or global — hourly snapshots up to 30 days (our derived OI)

live_official_oi

Official per-dex OI pulled from Hyperliquid's Info API (venue ground truth, not derived) — hourly snapshots up to 30 days

live_cohort_bias_history

How each cohort's long/short bias evolved over time — useful for tracking smart-money rotation

pulse_recent_closed_positions

Positions just closed across all traders with entry/exit data

Example Prompts

Once connected, try asking your AI:

  • "What are the top 5 traders on Hyperliquid by PnL?"

  • "Show me what the apex tier is holding right now"

  • "What are the biggest trades in the last 10 minutes?"

  • "What did wallet 0x7fda...7d1 trade in the last hour?"

  • "Find underrated traders with 70%+ win rate"

  • "Do a deep dive on wallet 0x7fda...7d1 — are they still performing?"

  • "Where are the BTC liquidation clusters?"

  • "Show me the exchange-wide risk overview on Hyperliquid this week"

  • "Which coin looks the most crowded right now?"

  • "Show me ETH liquidation events from the last 7 days"

  • "Give me BTC risk history with OI, liquidations, and cohort rotation"

  • "Show me BTC mark/oracle dislocations for the last 30 days"

  • "Are smart money traders long or short ETH right now?"

  • "Show me the biggest losses in the last 24 hours"

  • "What coins are most actively traded right now?"

  • "What's this trader's average hold time and position win rate?"

  • "What markets are available on the xyz dex?"

  • "Show me all gold and silver markets"

  • "What's the price of xyz:GOLD?"

  • "List all builder dex markets with their prices"

  • "What stocks can I trade on Hyperliquid?"

  • "Show me the last 240 one-minute candles for BTC"

  • "Is PAXG the same as GOLD? Which venues list it?"

  • "Show me every asset that trades on 2+ dexes"

  • "Total open interest on BTC across all dexes right now"

  • "Is ETH more crowded on HYNA or native Hyperliquid?"

  • "Do the dexes disagree on gold direction?"

  • "What does Hyperliquid's own Info API say BTC OI is — does it match our number?"

  • "Which HIP-4 outcome contracts are most active today?"

  • "Show me recent trades for outcome 123"

  • "Which HIP-4 outcomes settled recently?"

  • "Who are the top HIP-4 outcome traders this week?"

  • "For outcome 25, are Yes traders already long BTC or mostly prediction-native?"

  • "Did outcome traders overlap with perp traders over the last 7 days?"

Environment Variables

These apply to the local stdio server (npx -y @coinversaa/mcp-server@0.12.0). The hosted endpoint needs no configuration.

Variable

Required

Default

Description

COINVERSAA_API_KEY

Yes

—

Your API key (starts with cvsa_). Required for every tool; the stdio server exits at startup without it.

COINVERSAA_API_URL

No

https://api.coinversa.ai

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 limit

  • X-RateLimit-Remaining: requests left in current window

  • X-RateLimit-Reset: seconds until window resets

  • X-RateLimit-Tier: your API-key tier

  • X-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 --noEmit

The 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_asset resolve synonyms (PAXG↔GOLD, XAUT↔GOLD, XAGT↔SILVER) and aggregate OI, bias, and positions across venues — server-side, no client grouping required

  • Builder dex markets: Access 369+ markets across 8 dexes — commodities, stocks, indices, and perps

  • Venue ground-truth OI: live_official_oi pulls directly from Hyperliquid's Info API, cross-checkable against our derived numbers

  • Behavioral 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_stats for 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

MIT


Built by Coinversa

Available Tools

106 tools
book_levelsOrder Book Levels (L4)A
Read-onlyIdempotent

Answers: what does the depth ladder look like, with the detail L2 throws away? The top price levels per side, best-first, each with total size, order count, DISTINCT WALLET count and the age of the oldest order on it — so a level held by one wallet's single order is distinguishable from the same size spread across twenty. Example: 'is SOL's 3rd bid level real depth or one wallet?' — book_levels('SOL', depth=5) and read bids[2].wallets. Snapshot-derived: refreshed every 60 s, latest-only (no history), and as_of_height is the L1 block the answer is true at — check age_s before citing it. market_orderbook remains the aggregated L2 view; this is the L4 one. Coin is case-sensitive in the node's own spelling (BTC, xyz:GOLD, #28200) and is passed through unchanged — 'btc' will 404. Pro tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin in the node's own spelling, CASE-SENSITIVE: BTC, HYPE, xyz:GOLD, cash:TSLA, #28200. Not normalized — 'btc' returns 404. Use list_markets to discover exact spellings. Spot pairs (names containing '/', e.g. PURR/USDC) are not addressable on this route.
depthNoPrice levels returned per side.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover readOnly/idempotent/destructive, but the description adds substantial behavioral context beyond them: 60 s refresh cadence, latest-only with no history, the meaning of as_of_height at the L1 block, the caution to check age_s before citing, and the Pro-tier requirement. This is rich disclosure layered on top of annotations.

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

Conciseness4/5

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

Dense but front-loaded: the answer to 'what does this provide' leads, followed by the example, then caveats. Every sentence carries information, though the em-dash-heavy prose is slightly heavy for the payload.

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

Completeness5/5

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

With no output schema, the description compensates by naming the returned fields (total size, order count, DISTINCT WALLET count, oldest-order age, as_of_height) and the freshness constraint. An agent has everything needed to call and interpret it correctly.

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

Parameters4/5

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

Schema coverage is 100% so the schema already documents coin, depth, and useToonFormat, giving a baseline of 3. The description adds value by showing depth=5 in a worked example and pointing to bids[2].wallets, tying the parameter to the returned structure rather than merely restating it.

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

Purpose5/5

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

States a concrete verb+resource (top price levels per side, best-first) and explicitly contrasts with the aggregated L2 view via 'market_orderbook remains the aggregated L2 view; this is the L4 one'. An agent can distinguish this from siblings without opening the schema.

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

Usage Guidelines5/5

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

Explicitly names the alternative (market_orderbook) and the condition selecting this tool, plus a concrete use case ('is SOL's 3rd bid level real depth or one wallet?'). The L2-vs-L4 routing is spelled out.

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

book_stop_mapOrder Book Stop Map (L4)A
Read-onlyIdempotent

Answers: where are the stops, and how much size fires if price gets there? Buckets every untriggered stop / take-profit order by distance from mid in 0.25 % steps, out to within_pct, reporting per bucket the count, size, reduce-only share, stop vs take-profit split and side split — plus totals below and above mid, the nearest trigger each side, and how many sit beyond the window. Example: 'what is stacked under BTC within 2 %?' — book_stop_map('BTC', within_pct=2) and read totals_below plus the negative buckets. Note totals_below / totals_above / nearest_* always cover EVERY trigger on the coin, while buckets is the within_pct window. Snapshot-derived: refreshed every 60 s, latest-only (no history), and as_of_height is the L1 block the answer is true at — check age_s before citing it. market_orderbook remains the aggregated L2 view; this is the L4 one. Coin is case-sensitive in the node's own spelling (BTC, xyz:GOLD, #28200) and is passed through unchanged — 'btc' will 404. Pro tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin in the node's own spelling, CASE-SENSITIVE: BTC, HYPE, xyz:GOLD, cash:TSLA, #28200. Not normalized — 'btc' returns 404. Use list_markets to discover exact spellings. Spot pairs (names containing '/', e.g. PURR/USDC) are not addressable on this route.
within_pctNoHalf-width of the bucketed window, in percent of mid. The stored map always covers ±10 %; this slices it.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial non-obvious traits: snapshot-derived, refreshed every 60s, latest-only with no history, as_of_height semantics, and an instruction to check age_s before citing. It also flags case-sensitivity ('btc' will 404) and the Pro-tier requirement — well beyond what annotations convey.

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

Conciseness4/5

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

Dense but organized, leading with the question it answers and the summary, then the example, then the important window-vs-totals caveat and freshness notes. Nearly every sentence carries load, though the paragraph is long and could be tightened without losing meaning.

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

Completeness5/5

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

For a snapshot tool with no output schema, the description explains both what is returned and how to read it (totals vs buckets, nearest triggers, beyond-window counts) plus freshness (age_s, as_of_height) and addressability constraints. An agent has everything needed to call and interpret it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: the totals_below/totals_above/nearest_* fields always cover every trigger while `buckets` is limited to the within_pct window, which clarifies how the parameters interact with the output. The case-sensitivity and spelling guidance is largely repeated from the schema, capping it at 4.

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

Purpose5/5

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

Opens with a direct question the tool answers ('where are the stops, and how much size fires if price gets there?') then states the specific operation: bucketing untriggered stop/take-profit orders by distance from mid in 0.25% steps. It explicitly positions itself against the sibling market_orderbook ('the aggregated L2 view; this is the L4 one'), so an agent can distinguish them.

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

Usage Guidelines4/5

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

Provides a concrete usage example ('what is stacked under BTC within 2%?' with the exact call and which fields to read) and clarifies the L4-vs-L2 relationship. It does not enumerate hard when-not conditions or other alternatives, but the context is clear enough to route correctly.

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

book_summaryOrder Book Summary (L4)A
Read-onlyIdempotent

Answers: how deep and how lopsided is this book right now? Returns touch prices, spread in bps, and per side the size / order count / distinct wallet count within 0.5, 1, 2, 5 and 10 % of mid (nested bands, not rings), plus near- and far-band imbalance, the number of orders resting at the touch, their median age, and the share of them that are post-only. Example: 'is HYPE's bid side thinner than its ask side inside 1 %?' — book_summary('HYPE') and compare bid.bands vs ask.bands. Snapshot-derived: refreshed every 60 s, latest-only (no history), and as_of_height is the L1 block the answer is true at — check age_s before citing it. market_orderbook remains the aggregated L2 view; this is the L4 one. Coin is case-sensitive in the node's own spelling (BTC, xyz:GOLD, #28200) and is passed through unchanged — 'btc' will 404. Pro tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin in the node's own spelling, CASE-SENSITIVE: BTC, HYPE, xyz:GOLD, cash:TSLA, #28200. Not normalized — 'btc' returns 404. Use list_markets to discover exact spellings. Spot pairs (names containing '/', e.g. PURR/USDC) are not addressable on this route.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.4/5.0
Behavior4/5

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

On top of the readOnly/idempotent/openWorld annotations, the description discloses that results are snapshot-derived, refreshed every 60s, latest-only with no history, that as_of_height is the L1 block of truth, and that age_s should be checked before citing. It also flags Pro-tier gating. The main omission is expected response shape, which is partly covered by the field enumeration.

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

Conciseness4/5

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

It is a long description but dense and front-loaded with the core question and the return enumeration before the caveats. Most sentences earn their place, though the coin-spelling warning is somewhat duplicative of the schema.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so by naming the bands, imbalance metrics, and touch statistics an agent will actually receive. Combined with the freshness and interpretation guidance, an agent has everything needed to call and correctly cite it.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented, including the case-sensitive coin spelling, the 404 on 'btc', and the spot-pair exclusion. The description largely restates this, adding the nuance that the value is 'passed through unchanged', which is marginal. Baseline 3 applies when the schema carries the detail.

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

Purpose5/5

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

The description opens with the exact question the tool answers ('how deep and how lopsided is this book right now?') and then enumerates the specific outputs: touch prices, spread in bps, per-side size/count/wallets in nested bands, imbalance, and post-only share. It explicitly distinguishes itself from the sibling 'market_orderbook' by labeling this the L4 view versus the aggregated L2 one.

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

Usage Guidelines5/5

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

It gives a concrete worked example ('is HYPE's bid side thinner than its ask side inside 1 %?'), names the alternative tool and the condition that separates them (L4 vs L2), and states the refresh cadence and latest-only constraint so the agent knows when the answer is valid. Nothing about when to reach for this tool is left to inference.

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

book_whalesOrder Book Whales (L4)A
Read-onlyIdempotent

Answers: who is sitting on this book, and where? Returns the largest resting orders (wallet, side, price, size, original size, distance from mid, tif, order type, how long it has rested) and the biggest wallets per side by total resting size. Example: 'is one wallet holding up the ETH bid?' — book_whales('ETH', limit=10) and check whether bid_wallets[0].size dominates. Wallet addresses join to the trader tools (pulse_trader_profile, pulse_trader_performance). Snapshot-derived: refreshed every 60 s, latest-only (no history), and as_of_height is the L1 block the answer is true at — check age_s before citing it. market_orderbook remains the aggregated L2 view; this is the L4 one. Coin is case-sensitive in the node's own spelling (BTC, xyz:GOLD, #28200) and is passed through unchanged — 'btc' will 404. Pro tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin in the node's own spelling, CASE-SENSITIVE: BTC, HYPE, xyz:GOLD, cash:TSLA, #28200. Not normalized — 'btc' returns 404. Use list_markets to discover exact spellings. Spot pairs (names containing '/', e.g. PURR/USDC) are not addressable on this route.
limitNoHow many orders and how many wallets per side to return.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/no-destruction, but the description adds substantial non-structured context: snapshot-derived, refreshed every 60s, latest-only with no history, as_of_height semantics, and the instruction to check age_s before citing. It also flags 'Pro tier' for access context.

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

Conciseness4/5

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

Front-loads the core question, then return fields, example, caveats, and tier in a logical order with essentially no filler. It is dense and somewhat run-on, but every clause carries useful information.

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

Completeness5/5

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

No output schema exists, yet the description enumerates return fields, the snapshot/refresh model, the as_of_height/age_s staleness caveat, coin spelling, and tier. An agent has everything needed to call it correctly and interpret the result.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters, including the case-sensitivity rules and toon-format toggle. The description largely repeats the coin case-sensitivity guidance and only adds an example 'limit=10' usage, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific question it answers ('who is sitting on this book, and where?') and enumerates the returned fields (wallet, side, price, size, original size, distance from mid, tif, order type, rest time). It also explicitly separates itself from the sibling 'market_orderbook' as the L4 view rather than the aggregated L2 view.

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

Usage Guidelines5/5

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

Gives a concrete when-to-use scenario ('is one wallet holding up the ETH bid?') with an example call and how to read the result. It names the alternative market_orderbook and the condition (L2 aggregate vs L4 individual orders) that selects between them, and routes to the trader tools for wallet joins.

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

builder_cohortsBuilder CohortsA
Read-onlyIdempotent

Cohort composition of a builder's attributed users over the period (day/week/month): split by all-time exchange-wide profitability tier (pnlTiers) and size tier (sizeTiers), largest cohort first, each with users, share of totalUsers, builder fees paid, attributed volume, realized PnL, and fills. Tiers are LIFETIME labels emitted as legacy slugs (money_printer..giga_rekt / leviathan..shrimp) — not the 30d-rolling tiers the pulse cohort tools use — and wallets missing from the rollup appear under 'untracked' so per-tier user counts always sum to totalUsers. Attribution slightly undercounts versus ledger revenue (trigger-order fills — see the response's dataNotes). Use for 'is builder X's user base smart money or exit liquidity?' or 'do whales or shrimp pay most of its fees?'. Requires Pro tier. Availability: computed per builder on request and can exceed its 30-second budget on large builders; if it times out, retry once a minute later.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoAttribution window: day, week, or month.week
builderYesBuilder address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that tiers are LIFETIME labels in legacy slug form, that untracked wallets are surfaced so per-tier counts sum to totalUsers, that attribution undercounts versus ledger revenue, and that the computation may exceed a 30s budget (retry once a minute later).

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

Conciseness4/5

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

Front-loads the core purpose in the first sentence and keeps caveats tight, though it is dense and packs several clauses (attribution, tiers, Pro tier, timeout) into a long paragraph. Efficient but not maximally scannable.

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

Completeness5/5

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

With no output schema, the description carries the full burden and does so: it enumerates the returned fields (users, share of totalUsers, builder fees, attributed volume, realized PnL, fills) and points to the response's dataNotes for attribution caveats.

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

Parameters3/5

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

Schema coverage is 100%, so period/builder/useToonFormat are already documented in the schema. The description adds conceptual meaning to the tier outputs (pnlTiers/sizeTiers slugs) but contributes little parameter-specific guidance beyond what the schema provides.

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

Purpose5/5

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

States a precise verb+resource: the cohort composition of a builder's attributed users over day/week/month, split by all-time profitability tier and size tier. It explicitly distinguishes itself from siblings by noting it emits LIFETIME legacy-slug tiers rather than the 30d-rolling tiers used by the pulse cohort tools.

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

Usage Guidelines5/5

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

Gives concrete motivating questions ('is builder X's user base smart money or exit liquidity?', 'do whales or shrimp pay most of its fees?') and states the Pro-tier prerequisite plus availability/retry behavior. It even contrasts with the alternative cohort tools.

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

builder_fillsBuilder FillsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoOptional exact coin filter: BTC, xyz:GOLD, @123 (spot), #10010 (HIP-4).
limitNoRows to return (max 500).
sinceNoLookback window like '30m', '6h', '7d' (clamped to 90d).24h
offsetNoPagination offset.
addressNoOptional wallet filter (0x-hex address).
builderYesBuilder address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds useful 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.

Purpose5/5

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

The description states a specific verb and resource: 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.

Usage Guidelines4/5

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

The description gives concrete use cases ('show me the flow going through frontend X right now' or auditing one wallet's activity via a builder) and notes the Pro tier requirement. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to select this tool appropriately.

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

builder_journeyBuilder JourneyA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
builderYesBuilder address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (which already declare read-only/idempotent/non-destructive), the description discloses the Pro-tier requirement, the fixed minFills=3 qualifying threshold, the per-wallet-then-aggregate computation, and the truncation bias that pushes day counts low, pointing to dataNotes. That is meaningful behavioral context the annotations cannot carry.

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

Conciseness4/5

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

It is front-loaded with the core purpose and every clause carries metric, caveat, or routing information, which is defensible given the absence of an output schema. It is still a dense run-on that could be broken into scannable sentences.

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

Completeness5/5

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

With no output schema, the description responsibly enumerates the returned fields and their semantics (e.g., concentration=1 means evenly spread, 0 when median is 0), defines the cohort universe and window, and flags the bias, leaving no material gap for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both the builder pattern and useToonFormat, giving a baseline of 3. The description only restates that a 0x-hex builder address is taken and adds no format or value guidance beyond the schema; its claim of 'no other parameters' is also slightly loose given useToonFormat exists.

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

Purpose5/5

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

The description names the exact population, metrics, and computations (avgRevenueUsd, medianRevenueUsd, concentration, daysToPeak/Half/ThreeQuarters, peakDayDistribution) for a specific resource — a builder's acquisition cohort. It explicitly distinguishes itself from the sibling builder_lifecycle by scoping to the trailing-year cohort.

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

Usage Guidelines5/5

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

It supplies an explicit trigger question ('how fast and how unevenly does builder X monetize a new user?') and a 'NOT ... builder_lifecycle covers' exclusion, so the agent knows both when to use it and which sibling to pick instead. It also states the Pro-tier prerequisite.

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

builder_leaderboardBuilder LeaderboardA
Read-onlyIdempotent

Builders (HIP-3 dexes, frontends, bots) ranked by exact revenue from Hyperliquid's on-chain cumulative builder-fee ledger over the requested period. Each row carries join-attributed fill volume, distinct users, and fill counts — plus the same metrics for the immediately preceding window for deltas — the builder's most common requested fee rate over the last 7d of orders (feeTenthsBp, tenths of a basis point), and builderName from a curated registry (omitted when unknown). Attributed metrics slightly undercount versus ledger revenue because trigger-order fills (stop/TP) are not yet attributed — see the response's dataNotes; the 'verified' stamp gives the ledger block this data was reconciled against. Use for 'which builders earn the most?' or 'is builder X growing?'. Ledger history begins at the fee ledger's first on-chain entry: dataNotes states that date whenever a window predates it, and data_coverage (builder_ledger) reports it. Requires Starter tier or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoRows to return (max 100).
offsetNoPagination offset (window capped at 1000).
periodNoRanking window: day, week, or month. Prev-window deltas cover the same-length window immediately before.week
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing that attributed metrics undercount ledger revenue due to unattributed trigger-order fills, pointing to dataNotes, explaining the 'verified' stamp, and warning that ledger history begins at the first on-chain entry. This is the kind of caveat an agent cannot get from structured fields.

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

Conciseness4/5

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

Dense but front-loaded: the ranking definition comes first, followed by row contents, caveats, and usage. Every sentence carries distinct information, though the middle section is heavy enough to risk readability.

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

Completeness5/5

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

Despite having no output schema, the description enumerates returned fields (feeTenthsBp, builderName, prev-window metrics, dataNotes, verified stamp) and coverage behavior, giving the agent enough to interpret results correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so limit, offset, period, and useToonFormat are fully documented in the schema. The description adds response-field semantics but nothing new about the parameters themselves, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource+scope: builders ranked by exact revenue from the on-chain cumulative builder-fee ledger. It clearly distinguishes itself from siblings like builder_profile, builder_traders, and builder_fills by centering on revenue ranking.

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

Usage Guidelines4/5

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

Gives concrete use cases ('which builders earn the most?', 'is builder X growing?') and a prerequisite ('Requires Starter tier or higher'). It does not explicitly name alternatives or when-not to use it, so it stops short of a 5.

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

builder_lifecycleBuilder LifecycleA
Read-onlyIdempotent

Where every wallet that ever traded via this builder stands today (takes only the 0x-hex builder address — no other parameters): totalUsers split into five MUTUALLY EXCLUSIVE statuses that sum back to it, each {users, share} — active (attributed fill via THIS builder within 7d), cooling (within 30d but not 7d), switched (no fill here in 30d but at least one via a DIFFERENT builder in that window, detectable only with all-builder attribution), dormant (no fill via any builder in 30d, last fill here within 90d) and movedOn (no fill anywhere in 30d and none here in 90d) — plus trueRetention ((active+cooling)/totalUsers), churn ((dormant+movedOn)/totalUsers) and competitiveLoss (switched/totalUsers), which sum to 1, and competitiveLossFeesUsd, the builder fees those switched wallets paid to OTHER builders in the last 30d. LIFETIME universe on the ORDERS plane — every wallet that ever placed a builder-fee order via this builder, including ones whose orders never filled (they land in movedOn, or in switched if they filled via a DIFFERENT builder in the last 30d) — with only the status test reading recent attributed fills, so this is one snapshot of the whole historical user base rather than builder_retention's per-cohort monthly grid; see the response's dataNotes. Use for 'how many of builder X's users are still active, and how many did a rival take?'. Requires Pro tier. Availability: typically 1-15 seconds; can exceed its 30-second budget on the largest builders, in which case retry once a minute later.

ParametersJSON Schema
NameRequiredDescriptionDefault
builderYesBuilder address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover read-only and idempotent safety, but the description adds substantial behavioral context: mutually exclusive statuses that sum to totalUsers, the LIFETIME universe on the ORDERS plane, the exact recency windows, whether unfilled wallets are included, and the fact that only the status test reads recent attributed fills. It also discloses tier requirements, latency, and retry behavior.

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

Conciseness4/5

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

It is long and dense, but the length is largely justified by the need to define five statuses and several derived metrics. The purpose and sibling distinction are front-loaded, and every clause carries substantive meaning, though bullets or clearer segmentation would improve readability.

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

Completeness5/5

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

With no output schema, the description compensates by enumerating the returned fields and their relationships, including status definitions, retention/churn/competitiveLoss calculations, and competitiveLossFeesUsd. It also covers caveats, dataNotes, tier requirements, and operational latency, leaving little an agent needs to infer.

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

Parameters3/5

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

Schema description coverage is 100%, so the builder and useToonFormat parameters are already documented in the schema. The description reinforces the builder address format and notes that no other query parameters are accepted, but it does not add meaningful semantics beyond the schema and does not mention useToonFormat.

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

Purpose5/5

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

It states a specific resource and operation: a lifetime snapshot of every wallet that ever traded via a builder, with five mutually exclusive statuses and derived retention metrics. It explicitly distinguishes itself from builder_retention by contrasting a single historical snapshot with a per-cohort monthly grid.

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

Usage Guidelines5/5

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

It gives a concrete use case quote, states that only a 0x-hex builder address is accepted, notes Pro tier requirement, and provides availability and retry guidance. It also tells the agent when to prefer this over builder_retention.

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

builder_ordersBuilder OrdersA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoPlacement window: day, week, or month.week
builderYesBuilder address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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

Given the tool's complexity 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.

Parameters3/5

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

Schema coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines5/5

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 OverlapA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoAttribution window: day, week, or month.week
builderYesBuilder address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 ProfileA
Read-onlyIdempotent

Single-builder overview for a 0x-hex builder address: exact revenue from Hyperliquid's on-chain builder-fee ledger over the period (day/week/month), first/last fee accrual timestamps, distinct fee tokens, most common requested fee rate over the last 7d of orders (feeTenthsBp, tenths of a basis point), a daily attributed series (fees/volume/users/fills) with the biggest day highlighted, top coins by attributed volume, and how many of the period's attributed wallets are all-time profitable. Attributed metrics slightly undercount versus ledger revenue (trigger-order stop/TP fills not yet attributed — see the response's dataNotes); builderName comes from a curated registry, omitted when unknown. Returns 404 for addresses with no revenue in the fee ledger. Use for 'how is builder X doing?' or 'what do people trade on frontend Y?'. Requires Starter tier or higher. Availability: typically 10-25 seconds on large builders; the coin split (topCoins) may come back null with an explanation in dataNotes when the live pass exceeds its budget. Ledger history begins at the fee ledger's first on-chain entry (see data_coverage, builder_ledger).

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoAggregation window: day, week, or month.month
builderYesBuilder address (0x...)
topCoinsNoHow many top coins (by attributed volume) to return (max 50).
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: 404 behavior for zero-revenue addresses, 10-25s latency on large builders, topCoins null-on-budget with dataNotes explanation, known undercounting vs ledger revenue, registry-sourced builderName omission, and ledger history scope. Annotations cover the safety profile, and the description layers on operational and data-quality traits.

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

Conciseness3/5

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

Purpose is front-loaded and every clause carries information, but the entire definition is a single dense run-on paragraph mixing return values, caveats, latency, and coverage notes. It is information-rich rather than wasteful, yet structure and scannability suffer.

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

Completeness5/5

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

No output schema exists, so the description must carry the return-value explanation, and it does thoroughly (revenue, timestamps, tokens, rate, daily series, top coins, profitability count, dataNotes caveats). For a complex analytics tool with a mandatory address parameter, an agent has everything needed to call and interpret it.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema: it explains feeTenthsBp units (tenths of a basis point), clarifies that topCoins may come back null, and reinforces the period window semantics. Genuine added value over the structured fields.

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

Purpose5/5

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

States a specific resource ('single-builder overview for a 0x-hex builder address') and enumerates exactly what is returned: ledger revenue, timestamps, fee tokens, fee rates, daily attributed series, top coins, profitable wallets. It is unmistakably distinct from builder_leaderboard, builder_fills, and the pulse_* siblings.

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

Usage Guidelines4/5

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

Provides concrete trigger phrasing ('how is builder X doing?', 'what do people trade on frontend Y?') plus a tier prerequisite (Starter+). It does not explicitly name a sibling alternative or a when-not-to-use condition, so it falls short of a 5.

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

builder_retentionBuilder RetentionA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
builderYesBuilder address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 TradersA
Read-onlyIdempotent

Wallets that traded via a builder (0x-hex address) in the window, sortable by builder fees paid, volume, or realized PnL. Each row: wallet, realized PnL on its attributed fills, builderFeesUsd, volumeUsd, fills, latest equity (0 if untracked), and the wallet's ALL-TIME exchange-wide cohort tiers (pnlTier/sizeTier, emitted as legacy slugs like smart_money/whale; null if untracked) — lifetime labels, unlike the 30d-rolling tiers the pulse cohort tools classify by, so memberships can differ. Attributed fills slightly undercount versus ledger revenue (trigger-order stop/TP fills not yet attributed — see the response's dataNotes). Use for 'who are builder X's biggest fee payers?' or 'are smart-money wallets using this frontend?'. Requires Pro tier. Availability: this endpoint computes per builder on request and can exceed its 30-second budget on large builders; if it times out, retry once a minute later.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoRanking: builderFee (fees paid to the builder), volume, or pnl.builderFee
limitNoRows to return (max 500).
offsetNoPagination offset.
periodNoAttribution window: day, week, or month.week
builderYesBuilder address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (read-only, idempotent, open-world), and the description layers on genuinely non-obvious behavior: per-builder on-request computation that can blow a 30s budget, retry guidance, attribution undercount vs ledger revenue, and the lifetime-vs-30d tier distinction that affects how memberships compare to cohort tools.

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

Conciseness4/5

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

Dense but front-loaded: what the tool returns comes first, then the caveats, then usage and availability. Every clause carries information, though the single long paragraph and nested parentheticals make it harder to scan than a short bulleted caveat block would be.

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

Completeness5/5

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

With no output schema, the description carries the return-shape burden and does so: it enumerates each row field, flags the dataNotes caveat, and documents the availability limit. An agent has everything needed to call and interpret this tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains the semantics of the emitted equity sentinel (0 when untracked) and the tier fields (legacy slugs, null when untracked) and why lifetime tiers differ from rolling ones. It does not add syntax beyond the schema for the enum params themselves.

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

Purpose5/5

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

States a specific resource and scope: wallets that traded via a given builder address within a window, with explicit ranking dimensions. It is clearly distinguishable from siblings like builder_fills (fill-level) or builder_leaderboard, and the two example questions pin the intent down.

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

Usage Guidelines4/5

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

Provides concrete use cases ('who are builder X's biggest fee payers?', 'are smart-money wallets using this frontend?') plus a Pro-tier prerequisite and a timeout/retry rule. It stops short of naming an explicit alternative sibling to use instead when this tool is not the right fit.

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

data_coverageData CoverageA
Read-onlyIdempotent

Report the data window (start/end or latest row) and freshness stamp of each dataset behind this server, with the API route each figure came from — check window and freshness before relying on a historical range or citing a date. Datasets: trades (indexed trade history, /pulse/stats), builder_ledger (fee ledger + attribution coverage), census (chain-state stamp), hip4 (latest outcome fill), liquidations (risk-route availability/freshness), lifecycles (latest close; rolling 90-day window), cohort_history, book (L4 order-book rollups: coins covered, latest L1 height/time and age; snapshot-derived, refreshed every 60 s, no history). Where the API exposes no window start the dataset is listed with windowStart null and a note; no date is guessed. Sources are queried sequentially (the API's per-key burst allowance is small) and a failing source is reported in that dataset's notes rather than failing the call. Also returns server { version, hiddenTools, toolCount }. Free tier (some sources need a higher tier and then report the tier gate in notes).

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetNoNarrow to one dataset. Omit for all.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/openWorld/idempotent annotations, the description discloses rich operational behavior: sources queried sequentially due to a small per-key burst allowance, a failing source reported in notes rather than failing the call, no date ever guessed, book snapshots refreshed every 60 s with no history, and free-tier gating surfaced in notes.

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

Conciseness4/5

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

Front-loaded with the core purpose before the dataset inventory, and every clause carries information. It is dense and parenthetical-heavy, reading as one long paragraph, so it is effective rather than elegant, but nothing is padding.

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

Completeness5/5

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

There is no output schema, so the description must describe returns, and it does: per-dataset window fields (with windowStart null + note when unavailable), freshness stamps, source notes, and the server { version, hiddenTools, toolCount } object. An agent has everything needed to call it and interpret the result.

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

Parameters4/5

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

Schema coverage is 100% (baseline 3), but the description goes further by glossing each opaque enum value — e.g. 'builder_ledger (fee ledger + attribution coverage)', 'census (chain-state stamp)', 'book (L4 order-book rollups ... no history)' — which the bare enum cannot convey. useToonFormat is left entirely to the schema.

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

Purpose5/5

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

The description states a precise verb+resource pair ('report the data window and freshness stamp of each dataset behind this server') and adds provenance (API route per figure). It is unmistakably a meta/diagnostic tool, clearly separable from the analytical siblings like trades, liquidations or cohort tools.

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

Usage Guidelines4/5

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

It gives an explicit trigger: 'check window and freshness before relying on a historical range or citing a date.' That is clear when-to-use guidance. It does not name a when-not condition or a competing sibling, which keeps it below a 5, though no true alternative tool exists in the roster.

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

hip4_cross_product_overlapHIP-4 Cross-Product OverlapA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook-back window in days. Default 7, max 30.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 VolumeA
Read-onlyIdempotent

Get daily HIP-4 volume trajectory: fills, unique trades, unique wallets, contracts, and notional USDH by day. Use for outcome-market activity trends. HIP-4 fills are indexed from mainnet launch (2026-05-02; the API clamps every look-back to it) — see data_coverage for freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days back from today. Default 14, max 60.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful behavior the schema cannot express: HIP-4 fills are indexed from mainnet launch 2026-05-02 and the API clamps every look-back to that date. It stops short of describing response shape or truncation behavior, which matters since there is no output schema.

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

Conciseness5/5

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

Two sentences, front-loaded with the payload contents before the usage cue and the data-coverage caveat. Every clause carries information an agent needs; nothing is restated from the name or title.

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

Completeness4/5

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

For a read-only, no-output-schema tool the description compensates well by naming the returned metrics and warning about the launch-date clamp. The only remaining gap is expected response structure/pagination, which is minor given the annotations and the small 2-parameter surface.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are fully documented in the schema (days default/max, useToonFormat default). The description adds only 'by day' granularity and does not elaborate on the 1–60 day clamp or the toon-format toggle, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource ('Get daily HIP-4 volume trajectory') and enumerates the exact measures returned: fills, unique trades, unique wallets, contracts, notional USDH by day. That granularity separates it from siblings such as hip4_andwer_summary or hip4_most_active without the agent needing to open any schema.

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

Usage Guidelines4/5

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

'Use for outcome-market activity trends' gives a clear usage context, and the pointer to data_coverage for freshness is a useful secondary route. However, it never names an explicit alternative (e.g., hip4_outcome_summary, hip4_most_active) or a when-not condition, so routing remains partly inferential.

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

hip4_most_activeHIP-4 Most Active OutcomesA
Read-onlyIdempotent

Return the most active HIP-4 outcomes over a recent window, ranked by fill count. Includes outcome/question metadata when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoLook-back window in hours. Default 24, max 168.
limitNoMaximum outcomes to return. Default 10, max 50.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies when to use the tool: 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 DetailsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
outcomeIdYesHIP-4 outcome ID. Side-token coins are encoded as #<10*outcomeId+side>.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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

The description uses a specific verb and resource: '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.

Usage Guidelines3/5

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 TradesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoLook-back window in hours. Default 24, max 168.
limitNoMaximum trades to return. Default 100, max 500.
outcomeIdYesHIP-4 outcome ID. Side-token coins are encoded as #<10*outcomeId+side>.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose5/5

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

The description states a specific verb and resource: '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.

Usage Guidelines3/5

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

The description implies when to use the tool 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 OutcomesA
Read-onlyIdempotent

List active HIP-4 outcome contracts that traded recently. Returns outcome IDs, question metadata when available, side tokens, fills, unique wallets, notional USDH, and first/last traded timestamps. Use when users ask what prediction/outcome markets are active. Outcomes are sorted by notionalUsdh descending and capped at limit (default 25, max 200; the API route has no paging, so the cap is applied by the connector) — the response carries count (returned), totalCount, truncated and a note; raise limit or shorten hours to see more. HIP-4 fills are indexed from mainnet launch (2026-05-02; the API clamps every look-back to it) — see data_coverage for freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoLook-back window in hours. Default 24, max 168.
limitNoMax outcomes to return, largest notionalUsdh first (default 25, max 200).
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare read-only/idempotent/no-destructive, and the description layers on substantial extra behavior: sort order (notionalUsdh descending), the connector-side cap because the API route has no paging, the count/totalCount/truncated/note fields, how to see more (raise limit or shorten hours), and the mainnet-launch indexing floor with a pointer to data_coverage.

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

Conciseness4/5

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

Purpose is front-loaded in the first sentence, and the following clauses each carry real information (sort order, cap mechanics, index floor). It is dense and slightly long, but no sentence is filler.

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

Completeness5/5

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

With no output schema, the description still enumerates the return payload (IDs, question metadata, side tokens, fills, wallets, notional USDH, timestamps, truncation fields) and the look-back constraint. An agent has everything needed to call it and interpret truncation.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining why the caps exist (connector-applied, no paging) and the operational consequence of truncated/count, which materially clarifies how limit and hours behave.

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

Purpose4/5

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

The description opens with a specific verb+resource: 'List active HIP-4 outcome contracts that traded recently,' and even enumerates the returned fields. It is clear what the tool does, though it never explicitly distinguishes itself from near-neighbors like hip4_most_active or hip4_outcome_summary, so sibling differentiation is left to inference.

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

Usage Guidelines4/5

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

'Use when users ask what prediction/outcome markets are active' gives a concrete trigger context, and 'see data_coverage for freshness' routes the agent elsewhere for a related concern. There are no explicit when-not conditions or named alternatives for overlapping tools such as hip4_most_active.

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

hip4_outcome_summaryHIP-4 Outcome SummaryA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
outcomeIdYesHIP-4 outcome ID. Side-token coins are encoded as #<10*outcomeId+side>.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully 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.

Purpose4/5

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.

Usage Guidelines3/5

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

The description implies when to use 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 ContextA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook-back window in days for reconstructing current outcome holders from outcome trades. Default 14, max 60.
limitNoMaximum top outcome wallets to return. Default 25, max 100.
outcomeIdYesHIP-4 outcome ID. Side-token coins are encoded as #<10*outcomeId+side>.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 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.

Purpose5/5

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.

Usage Guidelines4/5

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

It explicitly states when to use the tool: 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 QuestionsB
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus 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 SettlementsA
Read-onlyIdempotent

List recent HIP-4 settlements. Returns outcome ID, settlement time, winning side when determinable, winner/loser fill counts, winner payouts, and loser losses.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoLook-back window in hours. Default 168, max 720.
limitNoMaximum settlements to return. Default 50, max 200.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines3/5

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 TradersA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook-back window in days. Default 7, max 30.
limitNoMaximum traders to return. Default 25, max 100.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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

The description uses a specific verb and resource ('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.

Usage Guidelines4/5

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 OutcomesA
Read-onlyIdempotent

Get one wallet's HIP-4 outcome history: outcome ID, side index, side token, fills, net shares, gross bought/sold USDH, realized PnL, and first/last traded. Requires a Starter-or-higher key. Rows are sorted by gross notional (grossBoughtUsdh + grossSoldUsdh) descending and capped at limit (default 50, max 200; the API route has no paging, so the cap is applied by the connector) — the response carries count (returned), totalCount, truncated and a note; raise limit or shorten days to see more. The API clamps days to 90 and to HIP-4 mainnet launch (2026-05-02) — see data_coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook-back window in days. Default 30; the API clamps values above 90.
limitNoMax outcome rows to return, largest gross notional first (default 50, max 200).
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the read-only/idempotent annotations: discloses the tier requirement, the sort key (gross notional descending), the connector-applied cap because the API route has no paging, the truncation metadata returned (count, totalCount, truncated, note), and the API's days clamping to 90 and to mainnet launch. This is the kind of behavioral context annotations cannot carry.

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

Conciseness4/5

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

Front-loads purpose, then requirement, then ordering/truncation, then clamping — a sensible order. It is dense and delivered as one long paragraph with an em-dash run, but nearly every clause carries decision-relevant detail.

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

Completeness5/5

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

With no output schema, the description carries the return-shape burden and does so by listing the row fields and the truncation envelope. Combined with auth tier, sorting, capping, and clamping rules, an agent has everything needed to call and interpret it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds genuine semantics: the connector-side cap rationale for `limit` and how raising it or shortening `days` changes results. The days clamp is partly a restatement of the schema, keeping it out of the top band.

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

Purpose4/5

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

States a specific verb and resource ('Get one wallet's HIP-4 outcome history') and enumerates the returned fields (outcome ID, side index, side token, fills, net shares, gross bought/sold USDH, realized PnL, first/last traded). The wallet-scoped framing implicitly separates it from non-wallet HIP-4 siblings, but it never names an alternative to route against, so it stops short of the top band.

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

Usage Guidelines3/5

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

Provides a real prerequisite ('Requires a Starter-or-higher key') and tells the agent how to widen results ('raise limit or shorten days to see more'), plus a pointer to data_coverage. However, it never states when to reach for this tool versus siblings like hip4_top_traders or hip4_outcome_summary, so usage is only implied.

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

list_assetAsset LookupA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
canonicalYesCanonical asset name or synonym. Examples: 'GOLD', 'PAXG', 'BTC', 'SILVER', 'HYPE'. The server resolves synonyms to canonical.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

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 AssetsA
Read-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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.
crossMarketOnlyNoIf true, return only assets listed on 2+ venues. Default: false (return all).

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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

Schema coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines5/5

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 MarketsA
Read-onlyIdempotent

CANONICAL market discovery tool. Returns every trading symbol on Hyperliquid and its builder dexes with dex, mark price, 24h volume, funding rate, open interest, and 24h change. Use this whenever the user asks 'what markets are available?', mentions a commodity (gold, silver, oil), stock (TSLA, AAPL, NVDA), or builder-dex market. For asset-level grouping across venues, use list_assets instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
dexNoFilter by dex. 'hl' for native Hyperliquid, 'xyz' for commodities/stocks, 'cash' for equities, 'km' for energy, etc. Omit for all markets.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is largely covered. The description adds value by disclosing the exact field set returned and the scope (native + builder dexes), though it omits pagination/result-size behavior for a potentially large list.

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

Conciseness4/5

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

Front-loaded with the canonical designation, then scope, then return fields, then usage triggers and the alternative. Three dense sentences with little waste, though the CLAIMANT-style emphasis and the trigger list make it slightly longer than strictly necessary.

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

Completeness4/5

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

There is no output schema, and the description compensates by enumerating the returned fields and the market universe covered. It stops short of describing pagination or result limits for a 'returns every symbol' tool, but is otherwise complete enough to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (dex enum, useToonFormat) are documented in the schema, so the description need not repeat them. It does not add syntax or filtering semantics beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb (list/returns) and resource (every trading symbol on Hyperliquid and its builder dexes) and enumerates the returned fields (mark price, 24h volume, funding rate, OI, 24h change). It explicitly distinguishes itself as the CANONICAL discovery tool versus list_assets for asset-level grouping.

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

Usage Guidelines5/5

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

Gives concrete triggers ('what markets are available?', mentions of commodities, stocks, or builder-dex markets) and names the alternative sibling (list_assets) with the condition that selects it. Both when-to-use and when-to-use-something-else are covered.

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

live_cohort_biasLive Cohort BiasA
Read-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?'

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN (e.g. xyz:SILVER, km:OIL, cash:TSLA)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 HistoryA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin symbol (e.g. BTC, ETH, SOL)
tierNoSpecific tier to track. Omit for all tiers in the category.
hoursNoNumber of hours of history (default 168 = 7 days, max 720 = 30 days)
tierTypeNoTier category: 'pnl' for profit tiers, 'size' for volume tierspnl
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. 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.

Purpose5/5

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.

Usage Guidelines4/5

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 HistoryA
Read-onlyIdempotent

Get the historical risk lane for a coin. Best for questions like 'how did this setup become fragile?' or 'did smart money rotate before the move?'. Returns hourly OI, long/short history, cohort rotation, candle data, and liquidation counts over time; by default the minute-level markDislocations section is omitted (it alone is ~700 rows per 12h). Pass include=[..., 'markDislocations'] to add it bucketed to 1 hour (the max-|basisPct| minute per hour), or use live_mark_dislocations for finer resolution. The response lists sections and omittedSections. Freshness and availability are in the response's freshness/availability stamps; see data_coverage for the risk-data window.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN
hoursNoNumber of hours of history to return (default 168 = 7 days, max 720 = 30 days)
includeNoSections to return. Default: every section except markDislocations. markDislocations, when included, is bucketed to 1h.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds non-obvious behavior: markDislocations is omitted by default, the response self-describes via sections/omittedSections, and freshness/availability stamps live in the payload. The ~700-rows-per-12h size note helps the agent judge payload cost.

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

Conciseness4/5

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

Front-loaded with purpose and use-cases, then payload contents, then the include caveat and alternative tool. Dense but every sentence carries actionable information; the parenthetical size detail justifies the default omission rather than padding.

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

Completeness5/5

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

With no output schema, the description compensates by naming the returned sections and the response's self-describing metadata (sections, omittedSections, freshness/availability). An agent has enough to call this correctly and interpret the result shape.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics for include beyond the schema by explaining the default omission and that markDislocations is bucketed to the max-|basisPct| minute per hour. It does not add anything for hours or useToonFormat, which the schema already documents.

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

Purpose5/5

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

Opens with a specific verb+resource ('Get the historical risk lane for a coin') and enumerates the exact sections returned (hourly OI, long/short history, cohort rotation, candles, liquidation counts). It implicitly delineates itself from live_mark_dislocations and live_coin_risk_snapshot by scoping to historical breadth across many sections.

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

Usage Guidelines5/5

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

Gives concrete triggering questions ('how did this setup become fragile?', 'did smart money rotate before the move?') and names an explicit alternative with its selection condition ('use live_mark_dislocations for finer resolution'). It also routes the agent to data_coverage for the risk-data window.

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

live_coin_risk_snapshotLive Coin Risk SnapshotA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN (e.g. xyz:GOLD, km:OIL, cash:TSLA)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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 HeatmapA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN (e.g. xyz:SILVER, km:OIL, cash:TSLA)
rangeNoPrice range percentage around current price
bucketsNoNumber of price buckets in the heatmap
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, and each parameter (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.

Purpose5/5

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

The description uses a specific verb and resource: '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.

Usage Guidelines3/5

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 SummaryA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoOptional coin filter (e.g. BTC, ETH, SOL or builder dex prefix:COIN)
sinceNoTime window: e.g. '10m' (minutes), '1h' (hours), '1d' (days)7d
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 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.

Purpose5/5

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.

Usage Guidelines4/5

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 RatioA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol (e.g. BTC, ETH). For builder dex: prefix:COIN (e.g. xyz:SILVER). Omit for global ratio.
hoursNoInclude historical data for the last N hours (max 168 = 7 days)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines4/5

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 DislocationsA
Read-onlyIdempotent

Get historical mark/oracle dislocation data for a coin. Use this to answer questions like 'did basis stress or oracle drift show up before liquidations?'. Returns timestamped mark price, oracle price, and basis percentage over the requested window — default 168 hours (7 days), max 720 hours (30 days). The source series is one row per minute; the connector buckets it by resolution (default 5m: the max-|basisPct| minute in each 5-minute bucket; 1h likewise; 1m = raw) and returns at most limit rows (default 500, newest kept), with totalCount, truncated and a note when rows were dropped. For 7 days at full detail use resolution=1h, or page by shortening hours. See data_coverage for the risk-data freshness stamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN
hoursNoNumber of hours of history to return (default 168 = 7 days, max 720 = 30 days)
limitNoMax rows to return after bucketing (default 500). The newest rows are kept when the cap applies.
resolutionNoBucket width. Each bucket keeps the minute with the largest |basisPct|. Default 5m; 1m returns the raw minute rows.5m
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description still adds substantial behavior: per-minute source series, bucketing rule (max-|basisPct| minute per resolution bucket), newest-kept truncation, and the totalCount/truncated/note signals emitted when rows are dropped. It also points to data_coverage for the freshness stamp.

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

Conciseness4/5

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

Front-loaded with the purpose, then return shape, then bucketing/truncation semantics, then a usage tip — a sensible ordering with no filler sentences. It is dense and runs long for a single paragraph, but each clause carries information.

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

Completeness5/5

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

With no output schema, the description carries the return-shape burden and does: timestamped mark price, oracle price, basis percentage, plus totalCount/truncated/note metadata. Combined with the bucketing and paging guidance, an agent has everything needed to call and interpret this tool.

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

Parameters4/5

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

Schema coverage is 100% and already documents defaults, bounds, and the bucket rule, so the baseline is 3. The description goes further by tying resolution and limit together into an aggregation/truncation model and by advising the resolution choice for a 7-day window, adding practical meaning beyond the field list.

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

Purpose5/5

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

States a specific verb+resource ('Get historical mark/oracle dislocation data for a coin') and anchors it with a concrete example question about basis stress preceding liquidations. The resource is distinct from every sibling (risk snapshots, liquidation summaries, OI history), so an agent can select it without opening the schema.

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

Usage Guidelines4/5

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

Gives actionable usage guidance: when to reach for it (diagnosing basis/oracle drift before liquidations), how to get 7 days at full detail (resolution=1h), and how to page (shorten hours). No explicit when-not or named alternative sibling, which keeps it short of a 5.

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

live_official_oiLive Official Open InterestA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dexNoWhich dex's official OI to return. Defaults to 'hl' (native Hyperliquid).hl
coinYesCoin symbol (e.g. BTC, ETH, SOL). Use the bare ticker — dex is supplied via the 'dex' parameter, not prefix.
hoursNoNumber of hours of history (default 168 = 7 days, max 720 = 30 days)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 HistoryA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol (e.g. BTC, ETH, SOL). Omit for global OI across all coins.
hoursNoNumber of hours of history (default 168 = 7 days, max 720 = 30 days)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines4/5

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 LiquidationsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoOptional coin filter (e.g. BTC, ETH, SOL or builder dex prefix:COIN)
limitNoNumber of liquidation events to return
sinceNoTime window: e.g. '10m' (minutes), '1h' (hours), '1d' (days)7d
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 OverviewA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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 InterestA
Read-onlyIdempotent

Get historical hourly open interest snapshots (notional USD). Supports per-coin filtering or global exchange aggregation. Max range is 30 days.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER). Omit for global exchange aggregate.
sinceNoTime window for history (max 30d). e.g. '24h', '7d', '30d'
endTimeNoExplicit end time (ISO string or timestamp). Defaults to now.
startTimeNoExplicit start time (ISO string or timestamp). Overrides 'since'.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/non-destructive behavior. 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 BookA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoNumber of price levels on each side
symbolYesTrading pair symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN format (e.g. xyz:SILVER, km:OIL, cash:TSLA)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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 PositionsA
Read-onlyIdempotent

Get all open positions for any wallet address on Hyperliquid. Shows current entries, sizes, unrealized PnL, and leverage for each position.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline 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.

Purpose5/5

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.

Usage Guidelines4/5

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 PriceA
Read-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).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesTrading pair symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN format (e.g. xyz:SILVER, km:OIL, cash:TSLA)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb ('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.

Usage Guidelines4/5

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 CandlesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of 1-minute candles to return. Capped at 720 candles (12h) to keep MCP responses practical.
symbolYesMarket symbol (e.g. BTC, ETH, SOL, xyz:GOLD, cash:TSLA)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 TradersA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)A
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of wallets to return.
offsetNoPagination offset.
maxTroughNoTrough must be at least this deep (negative). Default -10000.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.
stillUnderwaterNoCurrent cumulative PnL must be at or below this (negative or 0). Default 0.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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 EventsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of events to return.
methodNoOptional liquidation method filter (e.g. 'market', 'backstop').
offsetNoPagination offset.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.
maxRealizedPnlNoOnly return losses at least this large (negative). Default -10000 = $10k+ losses.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 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.

Purpose5/5

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

The description names a specific verb ('Get'), 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.

Usage Guidelines4/5

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 TradesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes'wins' for biggest profitable trades, 'losses' for biggest losing trades
limitNoNumber of trades to return
thresholdNoMinimum PnL for wins (e.g. 50000) or maximum PnL for losses (e.g. -50000)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, with each parameter 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.

Purpose5/5

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.

Usage Guidelines4/5

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 TitansA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of wallets to return.
minPnlNoMinimum total PnL in USD. Default 10000.
offsetNoPagination offset.
minFeesNoMinimum total fees in USD. Default 100.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds 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.

Purpose5/5

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.

Usage Guidelines4/5

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 HistoryA
Read-onlyIdempotent

Get historical hourly bias snapshots for trader cohorts. Returns net long/short notional and account counts per tier — 32 tier rows per hour (16 PnL + 16 size tiers), so filter with tierType and/or tier for a readable series. Use this to see how different groups (whales, smart money) have shifted their positioning over time. Supports per-coin or global aggregate; the API default window is 7d, max 30d. Returns { rows, totalCount, truncated, note? } with rows newest first, capped at limit (default 100); when truncated, narrow with tierType/tier or a shorter since, or raise limit (max 2000). Cohort history is served for up to the last 30 days; see data_coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER). Omit for global exchange aggregate.
tierNoKeep only one tier's rows (either vocabulary). Combine with tierType for a single series.
limitNoMax rows to return, newest first (default 100, max 2000).
sinceNoTime window for history (max 30d). e.g. '24h', '7d', '30d'
endTimeNoExplicit end time (ISO string or timestamp). Defaults to now.
tierTypeNoKeep only PnL-tier or size-tier rows (applied by the connector; halves the row count).
startTimeNoExplicit start time (ISO string or timestamp). Overrides 'since'.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false), and the description adds substantial context on top: hourly granularity, 32 rows per hour, default 7d window and 30d ceiling, row cap of 100 with max 2000, and truncation behavior. It stops short of explaining rate limits or latency characteristics.

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

Conciseness4/5

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

The paragraph front-loads what the tool returns, then moves to filtering, scope, and return shape in a logical order. It is dense and mostly earns its sentences, though the limit default/max and the truncation remediation repeat information already in the schema.

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

Completeness5/5

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

With no output schema, the description still specifies the return envelope ({rows, totalCount, truncated, note?}), ordering (newest first), the cap and how to relieve truncation, the time window limits, and a pointer to data_coverage. An agent can call and handle results correctly without further information.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents every parameter's type, enum, default, and bounds. The description mostly restates those facts (limit default/max, since window, tierType/tier filtering) rather than adding new syntax or format meaning beyond the domain note about 16 PnL + 16 size tiers, so the baseline 3 applies.

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

Purpose4/5

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

States a precise verb and resource — historical hourly bias snapshots for trader cohorts — and specifies the exact payload (net long/short notional and account counts per tier). 'Historical' implicitly separates it from the live_cohort_bias sibling, but no sibling is named, so the agent gets no explicit routing help against live_cohort_bias_history or pulse_cohort_history.

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

Usage Guidelines4/5

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

Gives a clear use case ('see how different groups have shifted their positioning over time') plus concrete operational guidance on narrowing results via tierType/tier or a shorter since. It lacks explicit when-not-to-use conditions and never names an alternative tool for the live/snapshot case.

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

pulse_cohort_historyCohort HistoryA
Read-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.'

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days of history to return
tierYesTier 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.
tierTypeYesTier category: 'pnl' for profit tiers, 'size' for volume tiers
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description 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.

Purpose4/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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 PerformanceA
Read-onlyIdempotent

Get historical daily performance statistics for trader cohorts. Returns PnL, volume, trade counts, and active trader counts per tier — 32 tier rows per day, so filter with tierType and/or tier for a readable series. Use this to track the consistency and profitability of different groups over time. API default window 30d, max 30d. Returns { rows, totalCount, truncated, note? } sorted by date (newest first) then tierType and tier, capped at limit (default 100); when truncated, narrow with tierType/tier or a shorter since, or raise limit (max 2000). Cohort history is served for up to the last 30 days; see data_coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNoKeep only one tier's rows (either vocabulary). Combine with tierType for a single series.
limitNoMax rows to return, newest date first (default 100, max 2000).
sinceNoTime window for history (max 30d). e.g. '7d', '14d', '30d'
endTimeNoExplicit end time (ISO string or timestamp). Defaults to now.
tierTypeNoKeep only PnL-tier or size-tier rows (applied by the connector; halves the row count).
startTimeNoExplicit start time (ISO string or timestamp). Overrides 'since'.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare a safe read-only, idempotent operation, and the description adds substantial behavior beyond them: a 30-day default/max window, 32 tier rows per day, sort order (date desc, then tierType/tier), the limit cap (100 default / 2000 max), and explicit truncation handling. This is exactly the operational context an agent needs to size its queries correctly.

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

Conciseness4/5

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

Front-loaded with purpose, then return shape, then operational guidance in a logical order. A few clauses restate schema facts (default 100, max 2000, truncation), which is mild redundancy, but the density is justified given the truncation behavior and coverage limits it must convey.

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

Completeness5/5

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

With no output schema, the description carries the return contract itself ({ rows, totalCount, truncated, note? }, sort order) and even routes the agent to the data_coverage sibling for retention limits. Nothing material to calling or interpreting this tool is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description nevertheless adds value beyond the schema: it explains that 32 rows are produced per day and that combining tier with tierType yields a single series, that tierType 'halves the row count', that startTime overrides since, and that since is capped at 30d. That exceeds schema-level documentation.

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

Purpose5/5

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

States a specific verb+resource ('historical daily performance statistics for trader cohorts') and enumerates the returned measures (PnL, volume, trade counts, active trader counts per tier). This is clearly distinguishable from siblings like pulse_cohort_summary, pulse_cohort_history, and pulse_cohort_positions without opening their schemas.

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

Usage Guidelines4/5

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

Gives explicit intent ('track the consistency and profitability of different groups over time') and practical filtering advice ('filter with tierType and/or tier for a readable series'), plus a remedy path when truncated. It does not, however, name or exclude the closest sibling alternatives (e.g. pulse_cohort_history or pulse_cohort_summary), so routing between them is left to inference.

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

pulse_cohort_positionsCohort PositionsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesTier 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.
limitNoNumber of positions to return
tierTypeYesTier category: 'pnl' for profit tiers, 'size' for volume tiers
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema coverage is 100%, so the schema already documents 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.

Purpose5/5

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

The description uses a specific verb and resource: 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.

Usage Guidelines4/5

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 ConcentrationA
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesTier 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.
tierTypeYesTier category: 'pnl' for profit tiers, 'size' for volume tiers.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish this as read-only, idempotent, and non-destructive. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

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 StatsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesTier 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.
limitNoNumber of wallets to return.
offsetNoPagination offset.
tierTypeYesTier category: 'pnl' for profit tiers, 'size' for volume tiers.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description 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.

Purpose4/5

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.

Usage Guidelines4/5

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 PositionsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesTier 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.
limitNoNumber of positions to return.
tierTypeYesTier category: 'pnl' for profit tiers, 'size' for volume tiers.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 PositionsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesTier 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.
limitNoNumber of positions to return.
offsetNoPagination offset.
tierTypeYesTier category: 'pnl' for profit tiers, 'size' for volume tiers.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies when to use the tool—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 TradesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesTier 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.
limitNoNumber of trades to return.
sinceNoTime window: e.g. '10m' (minutes), '1h' (hours), '1d' (days)1h
tierTypeYesTier category: 'pnl' for profit tiers, 'size' for volume tiers.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. 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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description gives clear context for when to use 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 SummaryA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description states a specific verb and resource: '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.

Usage Guidelines3/5

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 TradesA
Read-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.'

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesTier 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.
limitNoNumber of trades to return
sinceNoTime window: e.g. '10m' (minutes), '1h' (hours), '1d' (days)1h
tierTypeYesTier category: 'pnl' for profit tiers, 'size' for volume tiers
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 MapA
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of coins to return.
offsetNoPagination offset.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool's function: 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.

Usage Guidelines4/5

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 KingsA
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of rows to return.
offsetNoPagination offset.
perCoinRankNoTop-N earners per coin to return. 1 = the king only. Default 1.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

The description covers the tool's 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.

Parameters3/5

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

Schema coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

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 TradersA
Read-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?').

ParametersJSON Schema
NameRequiredDescriptionDefault
walletsYes2 to 5 wallet addresses to compare.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines4/5

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 AssetA
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
canonicalYesCanonical asset name or synonym (e.g. 'GOLD', 'PAXG', 'BTC', 'HYPE'). The server resolves synonyms.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

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 LeaderboardA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoRows to return (max 100).
offsetNoPagination offset (window capped at 200).
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully 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.

Purpose5/5

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

The description states a specific verb and resource: '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.

Usage Guidelines4/5

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

The description implies when to use this tool: when you need 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 ProfileA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesAny wallet address — master, sub-account, or unknown; it resolves to the owning entity either way.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description uses a specific verb-resource 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.

Usage Guidelines4/5

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 InterestA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 PositionsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 VolumeA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark the tool read-only, idempotent, and non-destructive; the description adds 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 StatsA
Read-onlyIdempotent

Get global Hyperliquid trading statistics: total traders, trades, volume, PnL, and data coverage period. Use this to understand the overall scale of the market. dataStartDate/dataEndDate are the indexed trade window (2025-03-22 onward as of 0.11.4); data_coverage reports the window and freshness of every dataset.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, openWorld, non-destructive. The description adds information annotations cannot carry: the indexed trade window (2025-03-22 onward as of version 0.11.4) and the fact that data_coverage reports freshness of every dataset. That freshness/window context is genuinely useful for interpreting results, though the response shape itself remains unspecified.

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

Conciseness4/5

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

Three sentences, front-loaded with the purpose and metrics, then usage, then the version/window caveat. The final sentence is dense but every clause carries substantive information.

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

Completeness4/5

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

With no output schema, the description usefully enumerates the headline return fields and flags data-freshness caveats, which is about as complete as a zero-required-parameter read tool needs. It stops short of describing the nested structure of the coverage report.

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

Parameters3/5

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

Only one parameter (useToonFormat), and the schema documents it at 100% coverage with the default and the false-case behavior. The description adds no parameter semantics; its dataStartDate/dataEndDate references are output fields, not inputs, which could momentarily be mistaken for parameters.

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

Purpose4/5

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

The description names a specific verb and resource ('Get global Hyperliquid trading statistics') and enumerates the metrics returned (traders, trades, volume, PnL, coverage period). It implicitly distinguishes itself from the many per-trader and per-cohort siblings via 'global' and 'overall scale of the market,' though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

'Use this to understand the overall scale of the market' gives a real use case but no when-not-to-use guidance and no explicit alternatives, despite a sibling literally named data_coverage that overlaps with the mentioned coverage reporting.

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

pulse_hidden_gemsHidden GemsA
Read-onlyIdempotent

Discover underrated high-performing traders who fly under the radar. Filters by minimum win rate, PnL, and trade count. These are skilled traders that most platforms don't surface.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of traders to return
minPnlNoMinimum total PnL in USD
maxTradesNoMaximum number of trades (filters out well-known whales)
minTradesNoMinimum number of trades
minWinRateNoMinimum win rate percentage
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already establish that this is read-only, idempotent, and non-destructive, so the safety profile is handled. The description adds that results are filtered by minimum win rate, PnL, and trade count, which is useful, but it does not describe sorting, result shape, or the maxTrades-based whale exclusion beyond what the schema already provides.

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

Conciseness4/5

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

The description is compact and front-loaded with the core purpose. The third sentence, 'These are skilled traders that most platforms don't surface,' is largely redundant with 'underrated' and 'fly under the radar,' which prevents a perfect score.

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

Completeness4/5

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

For a read-only discovery tool with rich annotations and a fully documented parameter set, the description plus schema is nearly sufficient to invoke correctly. The only meaningful gap is that the contents and ranking of the returned trader list are not described, though useToonFormat hints at the output format and no output schema exists to demand more.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters are already documented. The description only paraphrases minWinRate, minPnl, and minTrades, and does not add meaning for limit, maxTrades, or useToonFormat beyond what the schema states. Baseline 3 applies.

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

Purpose5/5

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

The description names a specific verb ('Discover') and a specific resource ('underrated high-performing traders') with a clear differentiation angle: 'fly under the radar' and 'most platforms don't surface.' It also states the key filtering dimensions (win rate, PnL, trade count), making it distinct from generic leaderboard or top-trader tools.

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

Usage Guidelines4/5

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

The intended use case—finding capable but non-mainstream traders—is clearly stated through phrases like 'underrated' and 'most platforms don't surface.' It does not explicitly name alternative sibling tools or state when not to use it, 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_hour_profitabilityHourly ProfitabilityA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

The description uses a specific verb-resource 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.

Usage Guidelines4/5

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 LeaderboardA
Read-onlyIdempotent

Get ranked trader leaderboard. Sort by PnL, win rate, volume, score, or risk-adjusted returns. Filter by time period (day/week/month/allTime) and minimum trade count. Use this to find the best traders on Hyperliquid. Trade history is indexed from 2025-03-22 (pulse_global_stats.dataStartDate; see data_coverage for the current window).

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort criteriapnl
limitNoNumber of traders to return
periodNoTime periodallTime
minTradesNoMinimum trade count filter
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world access, so the safety profile is covered. The description adds genuine context the annotations cannot: the index start date (2025-03-22), a pointer to dataStartDate and data_coverage for the current window — an important caveat about result completeness.

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

Conciseness4/5

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

Three front-loaded sentences with the core action first and filters second; nothing is padded. The parenthetical cross-references are slightly dense but carry real information.

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

Completeness4/5

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

With no output schema and a pure read operation, the description covers the action, sort axes, filters, and data-window caveat well. Minor incompleteness: the undocumented 'losers' sort value and useToonFormat output switch are left entirely to the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters (including enum values and the 1-100 limit range) are already documented structurally; baseline 3 applies. The description restates period and minTrades semantics but adds no format or syntax detail, and it silently omits the 'losers' sort mode and useToonFormat.

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

Purpose4/5

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

Specific verb+resource ('Get ranked trader leaderboard') with the sort axes and filters enumerated, so the tool's function is unambiguous. However it never distinguishes itself from near-name siblings like pulse_pnl_leaders or builder_leaderboard, which also rank traders, so the agent must infer the split from other means.

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

Usage Guidelines3/5

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

'Use this to find the best traders on Hyperliquid' gives a use case, but no when-not guidance and no reference to the competing leaderboard tools in the sibling set. For a category with several similar ranking tools, the absence of routing guidance is a real gap.

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

pulse_lethal_coinsLethal CoinsA
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of coins to return.
offsetNoPagination offset.
minLifecyclesNoMinimum lifecycles for a coin to qualify (filters thin markets). Default 100.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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

The description opens with a specific verb and resource ('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.

Usage Guidelines4/5

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 DetailsA
Read-onlyIdempotent

Look up one position lifecycle by its numeric ID, including the trade fills that composed it (timestamp, side, size, price, PnL, fee, tx hash) joined from the trades table within the open->close window. Use after pulse_trader_lifecycles to drill into exactly how a single position was built and unwound. Fills are paged by the connector: fillsLimit (default 100, max 1000) and fillsOffset; the response carries fillCount (total fills in the lifecycle), fillsOffset, truncated and a note with the next offset. Lifecycles are a rolling 90-day window (closed within the last 90 days, plus open ones); see data_coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLifecycle ID (from pulse_trader_lifecycles).
fillsLimitNoMax fills to return in this page (default 100, max 1000).
fillsOffsetNoFills to skip, for paging (default 0).
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely new behavioral context: fills are joined from the trades table within the open->close window, paging is done by the connector, the response carries fillCount, fillsOffset, truncated and a note with the next offset, and the dataset is a rolling 90-day window. This is more than an agent could infer from structured fields.

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

Conciseness4/5

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

Front-loaded with the core lookup, then usage routing, then paging and window caveats — every sentence carries information. Minor redundancy: the fillsLimit default 100 / max 1000 detail duplicates the schema, and the run-on first sentence is dense.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so: it enumerates fill fields, the paging metadata, and the truncation signal. It also discloses the 90-day rolling window and points to data_coverage for scope, so an agent has what it needs to call and interpret the result.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the type constraints: it explains that fillsLimit/fillsOffset drive connector-side paging, that truncated signals a partial page, and that a next-offset note is returned. It does restate fillsLimit's default/max, which the schema already gives.

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

Purpose5/5

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

Opens with a specific verb and resource ('Look up one position lifecycle by its numeric ID') and immediately scopes the payload (the trade fills that composed it, with named fields). An agent can distinguish this single-lifecycle lookup from the sibling list tools like pulse_trader_lifecycles without opening a schema.

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

Usage Guidelines4/5

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

Explicitly sequences the tool: 'Use after pulse_trader_lifecycles to drill into exactly how a single position was built and unwound,' naming the alternative and the condition that selects it. It stops short of stating when-not to use it (e.g., vs pulse_lifecycles_recent or pulse_trader_lifecycle_summary), so it is clear but not exhaustive.

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

pulse_lifecycles_recentRecent Closed LifecyclesA
Read-onlyIdempotent

Global feed of the most recently CLOSED position lifecycles across ALL wallets — 'what just closed exchange-wide right now'. Reads the corrected position_lifecycles_full table: includes MAE/MFE (when backfilled), a liquidation flag, and optional spot. Cross-wallet successor to pulse_recent_closed_positions. Filter by coin, minNotional, hold-duration range, and time window. Note: the very freshest closes may not have MAE/MFE yet — the risk backfill lags real-time, so recent rows can show null MAE/MFE. Lifecycles are a rolling 90-day window; the table's first day is not exposed by the API — see data_coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER).
limitNoNumber of lifecycles to return.
sinceNoTime window: e.g. '10m' (minutes), '1h' (hours), '1d' (days)1h
includeSpotNoInclude spot (@-prefixed) pairs. Default false (perps only).
maxDurationNoMaximum hold duration in milliseconds (e.g. 1000 for sub-second HFT).
minDurationNoMinimum hold duration in milliseconds (e.g. 60000 for >= 1 minute).
minNotionalNoMinimum notional in USD (peak_size * entry_vwap), e.g. 100000 for $100K+ positions.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already establish a safe read-only, idempotent, open-world profile, and the description layers on genuinely useful operational context: MAE/MFE values may be null because the risk backfill lags real-time, the lifecycle table is a rolling 90-day window, and the first day is not API-exposed (routed to data_coverage). This discloses data-freshness and coverage caveats the agent cannot infer from structured fields.

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

Conciseness4/5

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

The feed description and source-table caveats are front-loaded and every sentence carries information, but the prose is dense with parentheticals and near the upper end of what an agent needs to parse. Slightly trimming the field-recitation sentence would improve it.

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

Completeness5/5

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

With no output schema, the description compensates by naming the returned content (MAE/MFE, liquidation flag, optional spot) and the source table, plus coverage limits and a redirect to data_coverage. For an 8-parameter read tool this is complete enough to call correctly.

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

Parameters3/5

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

Schema coverage is 100%, so every parameter (coin, limit, since, includeSpot, min/maxDuration, minNotional, useToonFormat) is already documented, including units like milliseconds for duration and USD notional. The description's 'filter by coin, minNotional, hold-duration range, and time window' merely restates these without adding format or default semantics, so baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb + resource + scope: a global feed of recently CLOSED position lifecycles across ALL wallets. It explicitly positions itself as the 'cross-wallet successor to pulse_recent_closed_positions', so an agent can distinguish it from that sibling without opening any schema.

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

Usage Guidelines4/5

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

The framing 'what just closed exchange-wide right now' plus the named predecessor clearly signals the use case (global, not per-trader). It does not explicitly state when to prefer the sibling pulse_trader_lifecycles or pulse_recent_closed_positions in edge cases, so it falls short of a full when/when-not statement.

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

pulse_market_concentrationMarket ConcentrationA
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

For a simple read-only tool with 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.

Parameters3/5

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.

Purpose5/5

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

The description clearly identifies the tool's 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.

Usage Guidelines4/5

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

The description provides an explicit use case: 'how concentrated is alpha — do the top 1% take everything?'. This gives clear context for when the tool is appropriate. However, it does not mention when not to use it or name alternative sibling tools, so it falls just short of a 5.

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

pulse_max_pain_eventsMax Pain EventsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of events to return.
minPnlNoMinimum realized PnL in USD to filter noise. Default 1000.
offsetNoPagination offset.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.
minDrawdownPctNoMinimum drawdown % (MAE vs entry) to qualify. Default 10.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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

The description gives clear context for when to use 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 CoinsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of coins to return
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior4/5

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

Annotations already convey read-only, idempotent, 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 PlanA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

For a simple read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 WhalesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of wallets to return.
offsetNoPagination offset.
minNotionalNoMinimum gross notional in USD. Default 100000.
newcomerDaysNoHow recent the first lifecycle must be, in days. Default 30.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 WondersA
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of wallets to return.
offsetNoPagination offset.
minBestMonthNoMinimum best-month PnL in USD to qualify. Default 50000.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 ExitsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of exits to return.
minPnlNoMinimum realized PnL in USD to filter noise. Default 1000.
offsetNoPagination offset.
minCapturePctNoMinimum MFE capture % to qualify. Default 90.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds 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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 WinnersA
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of wallets to return.
offsetNoPagination offset.
minMonthsNoMinimum number of profitable months (1-3). Default 2.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3; 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.

Purpose5/5

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.

Usage Guidelines4/5

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 LeadersA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoWinners and losers each capped at this count.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 PositionsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER)
limitNoNumber of positions to return
sinceNoTime window: e.g. '10m' (minutes), '1h' (hours), '1d' (days)1h
maxDurationNoMaximum hold duration in milliseconds (e.g. 1000 for sub-second HFT trades, 60000 for under 1 minute)
minDurationNoMinimum hold duration in milliseconds (e.g. 60000 for positions held at least 1 minute)
minNotionalNoMinimum notional value in USD (e.g. 100000 for $100K+ positions)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 TradesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER)
limitNoNumber of trades to return
sinceNoTime window: e.g. '10m' (minutes), '1h' (hours), '1d' (days)10m
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a read-only tool with 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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states a specific verb 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.

Usage Guidelines4/5

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 DistributionA
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the annotations (read-only, idempotent, non-destructive), the description discloses 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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)A
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of wallets to return.
offsetNoPagination offset.
maxTroughNoTrough must be at least this deep (negative). Default -10000.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 LeaderboardA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin symbol (e.g. BTC, ETH, SOL). For builder dex markets use prefix:COIN (e.g. xyz:SILVER, km:OIL, cash:TSLA)
limitNoNumber of traders to return
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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

The description uses a specific verb and resource: '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.

Usage Guidelines4/5

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 LiquidatorsA
Read-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?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of wallets to return.
offsetNoPagination offset.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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

The description uses a specific verb-resource 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.

Usage Guidelines4/5

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 PositionsA
Read-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?'

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER)
limitNoNumber of positions to return
offsetNoPagination offset
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 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.

Purpose5/5

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.

Usage Guidelines4/5

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 StatsA
Read-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?'

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 StatsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3: the 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.

Purpose5/5

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.

Usage Guidelines4/5

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 BriefingA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource ('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.

Usage Guidelines4/5

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 LifecyclesA
Read-onlyIdempotent

Get a wallet's position lifecycle history — every open->close cycle reconstructed from on-chain fills, with entry/exit VWAP, peak size, hold duration, realized PnL, fees, fill count, and liquidation status. Richer than closed-positions: each row is a full position lifecycle. 90-day rolling window (closed within the last 90 days, plus open ones; the table's first day is not exposed by the API — see data_coverage); spot (@-prefixed) excluded by default. Use for deep position-level due diligence and timing analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol (e.g. BTC, ETH). For builder dex: prefix:COIN (e.g. xyz:SILVER).
limitNoNumber of lifecycles to return.
offsetNoPagination offset.
statusNoLifecycle status filter. Default 'closed'.closed
addressYesEthereum wallet address (0x...)
includeSpotNoInclude spot (@-prefixed) pairs. Default false (perps only).
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.
includeCensoredNoInclude censored/low-quality lifecycles. Default false.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantive non-obvious behavior: a 90-day rolling window (closed within 90 days plus open ones), an API limitation where the table's first day is not exposed, spot exclusion by default, and a pointer to data_coverage. This is real behavioral context beyond the structured fields.

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

Conciseness4/5

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

Front-loads the core purpose and returned fields, then appends scope caveats and a usage cue. Dense but each clause carries information; no filler sentences, though the single dense paragraph could be split for scannability.

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

Completeness4/5

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

With no output schema, the description compensates by listing the returned lifecycle fields, and annotations cover the safety profile. Coverage of pagination/ordering and the distinction from other lifecycle-focused siblings is lighter, but the definition is otherwise sufficient to call the tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already documented (coin prefix notation, status enum, includeSpot, includeCensored, toon format). The description only restates the spot-exclusion default, adding little beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Get a wallet's position lifecycle history') and enumerates the reconstructed fields (entry/exit VWAP, peak size, hold duration, realized PnL, fees). It explicitly differentiates from the sibling pulse_trader_closed_positions with 'Richer than closed-positions: each row is a full position lifecycle,' so an agent can route without opening the schema.

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

Usage Guidelines4/5

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

Gives a clear intended context ('Use for deep position-level due diligence and timing analysis') and implies a comparison against closed-positions. It does not explicitly state when NOT to use it or how to choose against near-neighbors like pulse_lifecycles_recent or pulse_trader_lifecycle_summary, so it stops short of full routing guidance.

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

pulse_trader_lifecycle_summaryTrader Lifecycle SummaryA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol (e.g. BTC, ETH). For builder dex: prefix:COIN.
addressYesEthereum wallet address (0x...)
includeSpotNoInclude spot (@-prefixed) pairs. Default false.
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.
includeCensoredNoInclude censored lifecycles. Default false.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource, '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.

Usage Guidelines4/5

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 PerformanceA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description uses a specific verb and resource ('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.

Usage Guidelines4/5

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 ProfileA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 StatsA
Read-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.'

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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 TradesA
Read-onlyIdempotent

Get recent trades for a specific wallet address. See exactly what a trader has been doing in the last minutes/hours — every buy, sell, size, price, and PnL. Essential for copy-trading and due diligence. Trade history is indexed from 2025-03-22 (pulse_global_stats.dataStartDate; see data_coverage for the current window).

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER)
limitNoNumber of trades to return
sinceNoTime window: e.g. '10m' (minutes), '1h' (hours), '1d' (days)1h
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A3.7/5.0
Behavior4/5

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

With annotations already declaring readOnly/idempotent/non-destructive, the description adds real behavioral value: it discloses the trade-history indexing start (2025-03-22), points to pulse_global_stats.dataStartDate and data_coverage for the current window, and frames results as activity 'in the last minutes/hours'. That coverage caveat is exactly the kind of context annotations cannot carry.

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

Conciseness4/5

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

Front-loads the core action in the first sentence, then adds purpose and coverage caveats in two compact sentences with no filler. The data-coverage sentence is slightly dense but earns its place by preventing misleading empty results.

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

Completeness4/5

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

No output schema exists, and the description compensates by listing the returned fields (buy/sell, size, price, PnL) and the indexing cutoff that governs completeness of results. For a read-only, single-required-param tool this covers the main gaps; a note on pagination/limit behavior would make it fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already defines address, coin, limit, since, and useToonFormat with formats and defaults. The description paraphrases the time-window behavior ('last minutes/hours') but adds no format semantics beyond the schema. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource ('Get recent trades') plus scope ('for a specific wallet address'), and the follow-up sentence enumerates what is returned (buy, sell, size, price, PnL). It is clearly distinguishable from global siblings like pulse_recent_trades by the wallet scoping, though no sibling is named explicitly, so it stops short of a 5.

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

Usage Guidelines3/5

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

Offers two use-case hints ('essential for copy-trading and due diligence') but never states when to prefer this over siblings such as pulse_recent_trades, pulse_biggest_trades, or pulse_trader_daily_stats, and lists no exclusions or prerequisites. Usage is implied rather than directed.

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

pulse_wallet_drawdown_curveWallet Drawdown CurveA
Read-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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of positions to return.
offsetNoPagination offset.
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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 BuildersA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoLookback window like '30m', '6h', '30d' (clamped to 90d).30d
addressYesEthereum wallet address (0x...)
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 14 tool updatesv0.12.0
    • Addedbook_levels
    • Addedbook_stop_map
    • Addedbook_summary
    • Addedbook_whales
    • Removedbuilder_heatmap
    • Addeddata_coverage
    • Changedhip4_outcomes1 field changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 25,
        +  "description": "Max outcomes to return, largest notionalUsdh first (default 25, max 200).",
        +  "maximum": 200,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedhip4_trader_outcomes2 fields changed
      • changedInput schema / properties / days / description
        Previous value: -"Look-back window in days. Default 30, max 365."New value: +"Look-back window in days. Default 30; the API clamps values above 90."
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 50,
        +  "description": "Max outcome rows to return, largest gross notional first (default 50, max 200).",
        +  "maximum": 200,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedlive_coin_risk_history1 field changed
      • addedInput schema / properties / include
        Added value: +{
        +  "description": "Sections to return. Default: every section except markDislocations. markDislocations, when included, is bucketed to 1h.",
        +  "items": {
        +    "enum": [
        +      "oiHistory",
        +      "longShortHistory",
        +      "cohortBiasHistory",
        +      "candleHistory",
        +      "markDislocations",
        +      "liquidations"
        +    ],
        +    "type": "string"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedlive_mark_dislocations2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 500,
        +  "description": "Max rows to return after bucketing (default 500). The newest rows are kept when the cap applies.",
        +  "maximum": 5000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / resolution
        Added value: +{
        +  "default": "5m",
        +  "description": "Bucket width. Each bucket keeps the minute with the largest |basisPct|. Default 5m; 1m returns the raw minute rows.",
        +  "enum": [
        +    "1m",
        +    "5m",
        +    "1h"
        +  ],
        +  "type": "string"
        +}
    • Changedpulse_cohort_bias_history3 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 100,
        +  "description": "Max rows to return, newest first (default 100, max 2000).",
        +  "maximum": 2000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / tier
        Added value: +{
        +  "description": "Keep only one tier's rows (either vocabulary). Combine with tierType for a single series.",
        +  "enum": [
        +    "apex",
        +    "sharps",
        +    "grinders",
        +    "scrapers",
        +    "crowd",
        +    "bleeders",
        +    "trapped",
        +    "blown_out",
        +    "heavyweights",
        +    "cruiserweights",
        +    "middleweights",
        +    "welterweights",
        +    "lightweights",
        +    "featherweights",
        +    "flyweights",
        +    "strawweights",
        +    "money_printer",
        +    "smart_money",
        +    "grinder",
        +    "humble_earner",
        +    "exit_liquidity",
        +    "semi_rekt",
        +    "full_rekt",
        +    "giga_rekt",
        +    "leviathan",
        +    "tidal_whale",
        +    "whale",
        +    "small_whale",
        +    "apex_predator",
        +    "dolphin",
        +    "fish",
        +    "shrimp"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / tierType
        Added value: +{
        +  "description": "Keep only PnL-tier or size-tier rows (applied by the connector; halves the row count).",
        +  "enum": [
        +    "pnl",
        +    "size"
        +  ],
        +  "type": "string"
        +}
    • Changedpulse_cohort_performance_daily3 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 100,
        +  "description": "Max rows to return, newest date first (default 100, max 2000).",
        +  "maximum": 2000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / tier
        Added value: +{
        +  "description": "Keep only one tier's rows (either vocabulary). Combine with tierType for a single series.",
        +  "enum": [
        +    "apex",
        +    "sharps",
        +    "grinders",
        +    "scrapers",
        +    "crowd",
        +    "bleeders",
        +    "trapped",
        +    "blown_out",
        +    "heavyweights",
        +    "cruiserweights",
        +    "middleweights",
        +    "welterweights",
        +    "lightweights",
        +    "featherweights",
        +    "flyweights",
        +    "strawweights",
        +    "money_printer",
        +    "smart_money",
        +    "grinder",
        +    "humble_earner",
        +    "exit_liquidity",
        +    "semi_rekt",
        +    "full_rekt",
        +    "giga_rekt",
        +    "leviathan",
        +    "tidal_whale",
        +    "whale",
        +    "small_whale",
        +    "apex_predator",
        +    "dolphin",
        +    "fish",
        +    "shrimp"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / tierType
        Added value: +{
        +  "description": "Keep only PnL-tier or size-tier rows (applied by the connector; halves the row count).",
        +  "enum": [
        +    "pnl",
        +    "size"
        +  ],
        +  "type": "string"
        +}
    • Changedpulse_lifecycle2 fields changed
      • addedInput schema / properties / fillsLimit
        Added value: +{
        +  "default": 100,
        +  "description": "Max fills to return in this page (default 100, max 1000).",
        +  "maximum": 1000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / fillsOffset
        Added value: +{
        +  "default": 0,
        +  "description": "Fills to skip, for paging (default 0).",
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Removedpulse_market_overview
  2. 10 tool updatesv0.11.1
    • Changedbuilder_cohorts1 field changed
      • changedInput schema / properties / builder / description
        Previous value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
    • Changedbuilder_fills1 field changed
      • changedInput schema / properties / builder / description
        Previous value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
    • Addedbuilder_heatmap
    • Addedbuilder_journey
    • Addedbuilder_lifecycle
    • Addedbuilder_orders
    • Changedbuilder_overlap1 field changed
      • changedInput schema / properties / builder / description
        Previous value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
    • Changedbuilder_profile1 field changed
      • changedInput schema / properties / builder / description
        Previous value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
    • Changedbuilder_retention1 field changed
      • changedInput schema / properties / builder / description
        Previous value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
    • Changedbuilder_traders1 field changed
      • changedInput schema / properties / builder / description
        Previous value: -"Builder address (0x...) — the fee-receiving address a frontend/bot/dex registers on Hyperliquid"New value: +"Builder address (0x...)"
  3. 8 tool updatesv0.11.0
    • Addedbuilder_cohorts
    • Addedbuilder_fills
    • Addedbuilder_leaderboard
    • Addedbuilder_overlap
    • Addedbuilder_profile
    • Addedbuilder_retention
    • Addedbuilder_traders
    • Addedtrader_builders
  4. 17 tool updatesv0.10.0
    • Changedlive_cohort_bias_history1 field changed
      • changedInput schema / properties / tier / enum
        Previous 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"
        +]
    • Addedpulse_active_traders
    • Changedpulse_cohort_history2 fields changed
      • changedInput schema / properties / tier / description
        Previous 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."
      • changedInput schema / properties / tier / enum
        Previous 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"
        +]
    • Changedpulse_cohort_positions2 fields changed
      • changedInput schema / properties / tier / description
        Previous 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."
      • changedInput schema / properties / tier / enum
        Previous 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"
        +]
    • Changedpulse_cohort_recent_alpha_concentration2 fields changed
      • changedInput schema / properties / tier / description
        Previous 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."
      • changedInput schema / properties / tier / enum
        Previous 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"
        +]
    • Changedpulse_cohort_recent_lifecycle_stats2 fields changed
      • changedInput schema / properties / tier / description
        Previous 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."
      • changedInput schema / properties / tier / enum
        Previous 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"
        +]
    • Changedpulse_cohort_recent_positions2 fields changed
      • changedInput schema / properties / tier / description
        Previous 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."
      • changedInput schema / properties / tier / enum
        Previous 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"
        +]
    • Changedpulse_cohort_recent_top_positions2 fields changed
      • changedInput schema / properties / tier / description
        Previous 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."
      • changedInput schema / properties / tier / enum
        Previous 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"
        +]
    • Changedpulse_cohort_recent_trades2 fields changed
      • changedInput schema / properties / tier / description
        Previous 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."
      • changedInput schema / properties / tier / enum
        Previous 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"
        +]
    • Changedpulse_cohort_trades2 fields changed
      • changedInput schema / properties / tier / description
        Previous 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."
      • changedInput schema / properties / tier / enum
        Previous 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"
        +]
    • Addedpulse_entity_leaderboard
    • Addedpulse_entity_profile
    • Addedpulse_exchange_oi
    • Addedpulse_exchange_positions
    • Addedpulse_exchange_volume
    • Addedpulse_my_plan
    • Addedpulse_pnl_leaders
  5. 28 tool updatesv0.8.0
    • Addedpulse_anti_survivors
    • Addedpulse_backstop_events
    • Addedpulse_capital_titans
    • Addedpulse_cohort_recent_alpha_concentration
    • Addedpulse_cohort_recent_lifecycle_stats
    • Addedpulse_cohort_recent_positions
    • Addedpulse_cohort_recent_top_positions
    • Addedpulse_cohort_recent_trades
    • Addedpulse_coin_alpha_map
    • Addedpulse_coin_kings
    • Addedpulse_compare
    • Addedpulse_hour_profitability
    • Addedpulse_lethal_coins
    • Addedpulse_lifecycle
    • Addedpulse_lifecycles_recent
    • Addedpulse_market_concentration
    • Addedpulse_max_pain_events
    • Addedpulse_newcomer_whales
    • Addedpulse_one_month_wonders
    • Addedpulse_perfect_exits
    • Addedpulse_persistent_winners
    • Addedpulse_style_distribution
    • Addedpulse_survivors
    • Addedpulse_top_liquidators
    • Addedpulse_trader_demo
    • Addedpulse_trader_lifecycle_summary
    • Addedpulse_trader_lifecycles
    • Addedpulse_wallet_drawdown_curve
  6. 12 tool updatesv0.7.0
    • Addedhip4_cross_product_overlap
    • Addedhip4_daily_volume
    • Addedhip4_most_active
    • Addedhip4_outcome
    • Addedhip4_outcome_recent_trades
    • Addedhip4_outcome_summary
    • Addedhip4_outcomes
    • Addedhip4_perp_position_context
    • Addedhip4_questions
    • Addedhip4_recent_settlements
    • Addedhip4_top_traders
    • Addedhip4_trader_outcomes
  7. 43 tool updatesv0.6.0
    • Addedlist_asset
    • Addedlist_assets
    • Addedlist_markets
    • Addedlive_cohort_bias
    • Addedlive_cohort_bias_history
    • Addedlive_coin_risk_history
    • Addedlive_coin_risk_snapshot
    • Addedlive_liquidation_heatmap
    • Addedlive_liquidation_summary
    • Addedlive_long_short_ratio
    • Addedlive_mark_dislocations
    • Addedlive_official_oi
    • Addedlive_oi_history
    • Addedlive_recent_liquidations
    • Addedlive_risk_overview
    • Addedmarket_historical_oi
    • Addedmarket_orderbook
    • Addedmarket_positions
    • Addedmarket_price
    • Addedmarket_recent_candles
    • Addedpulse_biggest_trades
    • Addedpulse_cohort_bias_history
    • Addedpulse_cohort_history
    • Addedpulse_cohort_performance_daily
    • Addedpulse_cohort_positions
    • Addedpulse_cohort_summary
    • Addedpulse_cohort_trades
    • Addedpulse_cross_market_asset
    • Addedpulse_global_stats
    • Addedpulse_hidden_gems
    • Addedpulse_leaderboard
    • Addedpulse_market_overview
    • Addedpulse_most_traded_coins
    • Addedpulse_recent_closed_positions
    • Addedpulse_recent_trades
    • Addedpulse_token_leaderboard
    • Addedpulse_trader_closed_position_stats
    • Addedpulse_trader_closed_positions
    • Addedpulse_trader_daily_stats
    • Addedpulse_trader_performance
    • Addedpulse_trader_profile
    • Addedpulse_trader_token_stats
    • Addedpulse_trader_trades

TDQS

A3.5/5.0

Scored across 106 tools

Disambiguation2/5

With 106 tools, many overlapping purposes exist: multiple leaderboards (pulse_leaderboard, pulse_pnl_leaders, pulse_hidden_gems, pulse_token_leaderboard, pulse_coin_kings), multiple trade feeds (pulse_recent_trades, pulse_trader_trades, pulse_cohort_trades, pulse_lifecycles_recent), and multiple OI/liquidation tools. Descriptions try to differentiate contexts, but the sheer volume and nuanced time windows make misselection likely.

Naming Consistency3/5

Names use domain prefixes (pulse_, live_, builder_, hip4_, book_, market_) and snake_case throughout, but there is no single verb_noun pattern and inconsistencies exist (list_assets/list_asset, pulse_trader_closed_positions vs. pulse_trader_closed_position_stats). The convention is mixed but still readable.

Tool Count1/5

106 tools is an extreme mismatch; far beyond the 3-15 typical range and even beyond the 50+ threshold considered extreme. While the domain is broad, the surface is massively over-scoped.

Completeness5/5

The surface appears complete for Hyperliquid analytics: markets, assets, order book depth, trader positions, PnL, cohorts, builders, HIP-4 outcomes, liquidations, and data coverage. No obvious domain gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    7
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Real-time crypto intelligence for AI agents. Technical analysis, liquidation heatmaps, sentiment, and funding rates for 50+ Hyperliquid perpetuals via x402 micropayments.
    15
    73 PyPI
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to interact with Hyperliquid perpetual futures exchange for market analysis, account management, and risk-managed trading.
    5
    1
    MIT