{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T16:22:38.318Z","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp","markdownUrl":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp.md","server":{"slug":"ironflowsh-hyperliquid","name":"Ironflow: Hyperliquid data","registryName":"io.github.ironflowsh/hyperliquid","description":"Hyperliquid data and liquidation alerts for AI agents: fills, candles, funding, wallet analytics.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"ironflowsh-mcp","type":"npm","identifier":"@ironflowsh/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp","version":"0.14.0","transport":"stdio","scoredAt":"2026-11-05T11:54:58.434Z"},"score":{"total":54,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":54},{"date":"2026-11-04","total":64},{"date":"2026-11-03","total":64}]},"categories":[{"name":"Supply Chain Security","score":13,"verdict":"unverified","reasons":["Malware scan not yet available for this package.","Known CVEs could not be checked: the version this server declares is not published in its registry.","No install/post-install scripts declared.","Dependency health could not be checked: the version this server declares is not published in its registry."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"vendor_not_cached"}},{"code":"cve.inconclusive","args":{"reason":"root_version_missing"}},{"code":"installscript.none","args":{}},{"code":"dephealth.inconclusive","args":{"reason":"root_version_missing"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to ironflowsh/mcp).","Clear OSI-approved license (MIT).","Actively maintained (last published 0 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"ironflowsh/mcp"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"0"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":67,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 7189 tokens (~159/item across 45 items; 45 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"159","items":"45","tools":"45","tokens":"7189","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":7,"verdict":"partial","reasons":["Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"2"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.","An AI judge read all 46 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_declared","args":{"pct":"100","annotated":"2","destructive":"2"}},{"code":"toolsafety.manipulation_clean","args":{"units":"46","judged":"46"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["Malware scan not yet available for this package.","Known CVEs could not be checked: the version this server declares is not published in its registry.","Dependency health could not be checked: the version this server declares is not published in its registry."],"malware":[],"components":[{"slug":"mcp","type":"remote","identifier":"https://mcp.ironflow.sh/mcp","withdrawn":false,"score":66,"current":false,"url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/mcp","markdownUrl":"https://verifymcp.io/servers/ironflowsh-hyperliquid/mcp.md"},{"slug":"ironflowsh-mcp","type":"npm","identifier":"@ironflowsh/mcp","withdrawn":false,"score":54,"current":true,"url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp","markdownUrl":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@ironflowsh/mcp"},{"label":"Version","value":"0.14.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"describe_data","title":"Describe SQL tables","description":"Returns the SQL tables of Ironflow's Hyperliquid data (every fill and trade, per-market hourly volume and liquidation totals, per-wallet daily totals, wallet behaviour labels, funding rates and per-wallet funding payments, mark and oracle prices, open interest, liquidations, builder-code fills, transfers, vault flows), their columns, how far back each goes, query tips, worked examples and your own limits.","inputs":[],"outputs":[{"name":"dialect","type":null,"required":false,"description":"SQL dialect and database name"},{"name":"examples","type":"array","required":false,"description":"Worked examples"},{"name":"limits","type":null,"required":false,"description":"Your tier's limits: history_days, max_execution_seconds, max_rows, budget_seconds_per_hour"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"tables","type":"array","required":false,"description":"Queryable tables"},{"name":"tiers","type":"array","required":false,"description":"Every tier's limits"},{"name":"tips","type":"array","required":false,"description":"Query tips"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":90},{"name":"run_query","title":"Run SQL query","description":"Run one read-only ClickHouse SELECT over Ironflow's Hyperliquid tables (hl.fills, hl.trades, hl.wallet_fills, hl.wallet_daily, hl.wallet_behavior, hl.market_hourly, hl.funding, hl.funding_payments, hl.mark_prices, hl.oracle_prices, hl.open_interest, hl.liquidations, hl.builder_fills, hl.transfers, hl.vault_operations). For volume, taker flow or liquidation totals per market over hours to months read hl.market_hourly, not hl.fills; call describe_data for columns. Aggregate in SQL: results are capped (1,000 rows keyless). Keyless: last 24 hours, 5 s per query, 60 query seconds per hour per IP; a free key from https://ironflow.sh/key gives 30 days of history.","inputs":[{"name":"max_rows","type":"number","required":false,"description":"Most rows to return (default 200, capped by your tier)"},{"name":"sql","type":"string","required":true,"description":"One ClickHouse SELECT (or WITH ... SELECT) over hl.* tables, without a FORMAT clause"}],"outputs":[{"name":"budget_remaining_seconds","type":null,"required":false,"description":"Query seconds left this hour"},{"name":"column_types","type":"array","required":false,"description":"ClickHouse types in row order"},{"name":"columns","type":"array","required":false,"description":"Column names in row order"},{"name":"limits","type":null,"required":false,"description":"Your tier's limits"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"row_count","type":null,"required":false,"description":"Rows returned"},{"name":"rows","type":"array","required":false,"description":"Rows as positional arrays"},{"name":"stats","type":null,"required":false,"description":"elapsed_ms, rows_read, bytes_read"},{"name":"truncated","type":null,"required":false,"description":"true when more rows existed than were returned"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":225},{"name":"get_wallet_behavior","title":"Wallet behavior labels","description":"How Hyperliquid wallets trade, from their last 30 days: labels (market_maker, high_frequency, whale, directional, consistent_winner, big_loser, revenge_sizing, often_liquidated, hip3_trader, spot_trader, prediction_trader) and the numbers behind them (maker share, buy/sell imbalance, fills per day, green-day share, profit factor, liquidations). Look up specific addresses, or list wallets with one label.","inputs":[{"name":"addresses","type":"string","required":false,"description":"Comma-separated wallet addresses (up to 50). Omit to list wallets instead."},{"name":"label","type":"string","required":false,"description":"Only wallets carrying this label"},{"name":"limit","type":"number","required":false,"description":"Wallets to return (default 20, max 100)"},{"name":"min_volume_usd","type":"number","required":false,"description":"Only wallets with at least this 30-day volume"},{"name":"sort_by","type":"string","required":false,"description":"Sort order when listing (default volume)"}],"outputs":[{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"wallets","type":"array","required":false,"description":"Wallets"},{"name":"window_days","type":null,"required":false,"description":"Days the features cover"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":196},{"name":"get_price","title":"Market price","description":"Latest mark price of one Hyperliquid market as a single number: native perps, HIP-3 builder perps (e.g. xyz:NVDA-PERP) and spot. The quickest answer to 'what is X trading at'. For the oracle price and funding use get_mark_prices; for price history use get_candles; to compare many markets at once use get_markets_snapshot.","inputs":[{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"}],"outputs":[{"name":"market","type":null,"required":false,"description":"Display symbol, e.g. \"BTC-PERP\" or \"xyz:NVDA-PERP\""},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"price","type":null,"required":false,"description":"Price in USD"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":131},{"name":"get_recent_trades","title":"Recent trades","description":"Latest tick-level trades on a Hyperliquid market from our own nodes: price, size, side and block time. Covers native perps, HIP-3 builder markets, HIP-4 outcomes and spot.","inputs":[{"name":"limit","type":"number","required":false,"description":"Number of trades to return (1-100, default 20)"},{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Trades, newest first"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"pagination","type":"object","required":false,"description":"Cursor pagination"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":114},{"name":"get_candles","title":"Candles (OHLCV)","description":"OHLCV candles for one Hyperliquid market, built from every trade: open, high, low, close, volume and trade count per candle, oldest first. Returns the latest 24 candles by default (up to 500), at 1m to 1d intervals. Use it for price history, ranges and charts. For only the current price use get_price; for individual trades use get_recent_trades.","inputs":[{"name":"interval","type":"string","required":false,"description":"Candle interval (1m, 5m, 15m, 1h, 4h, 1d). Default: 1h"},{"name":"limit","type":"number","required":false,"description":"Number of candles to return (1-500, default 24)"},{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"OHLCV candles"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"pagination","type":"object","required":false,"description":"Cursor pagination"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":196},{"name":"get_funding_rates","title":"Funding rate history","description":"Hourly funding rate history for a Hyperliquid perp, including HIP-3 builder perps. A positive rate means longs pay shorts.","inputs":[{"name":"limit","type":"number","required":false,"description":"Number of funding rate entries (1-100, default 10)"},{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Hourly funding rates"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"pagination","type":"object","required":false,"description":"Cursor pagination"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":100},{"name":"get_open_interest","title":"Open interest","description":"Latest open interest of one Hyperliquid perp in units of the base asset (BTC for BTC-PERP), with its 24-hour traded volume in USD and the time of the reading. Multiply by get_price for open interest in USD. To compare open interest across markets use get_markets_snapshot; for its history use run_query (see describe_data).","inputs":[{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Open interest samples"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"pagination","type":"object","required":false,"description":"Cursor pagination"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":122},{"name":"get_open_interest_changes","title":"Open interest movers","description":"Hyperliquid perps ranked by how their open interest moved over the last 1h, 4h, 24h or 7d: open interest at the start and now (in coins), the change in USD at the latest mark and in percent. Sorted by the size of the USD change by default, or by percent. Filter to one HIP-3 dex (xyz) or to native perps only. Markets with less than $100k of open interest at both ends are left out unless you lower min_oi_usd. Use it for 'where is money flowing in or out'. For one market's latest open interest use get_open_interest.","inputs":[{"name":"dex","type":"string","required":false,"description":"Optional: a HIP-3 dex such as xyz, or native for validator-run perps"},{"name":"limit","type":"number","required":false,"description":"Number of markets (1-200, default 25)"},{"name":"min_oi_usd","type":"number","required":false,"description":"Leave out markets below this open interest in USD (default 100000)"},{"name":"sort","type":"string","required":false,"description":"Rank by USD change (default) or percent change"},{"name":"window","type":"string","required":false,"description":"Lookback window (default 24h)"}],"outputs":[{"name":"count","type":null,"required":false,"description":"Markets returned"},{"name":"data","type":"array","required":false,"description":"Markets"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"sort","type":null,"required":false,"description":"usd or pct"},{"name":"window","type":null,"required":false,"description":"Lookback window: 1h, 4h, 24h or 7d"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":245},{"name":"get_outcome_markets","title":"HIP-4 outcome markets overview","description":"Hyperliquid HIP-4 outcome markets (prediction markets on sports, central bank decisions, IPOs and daily BTC price contracts) over the last 4 hours, 1 day or 1 week: total volume, fills, wallets and active markets, plus the most traded outcomes with their last price (the implied probability, 0 to 1) and last-24-hour volume. Each outcome has a Yes and a No side whose prices sum to 1. For one outcome's trades or candles pass its symbol to get_recent_trades or get_candles; settled outcomes stay queryable. For per-wallet outcome activity use run_query on hl.wallet_daily with market_class = 'prediction'.","inputs":[{"name":"limit","type":"number","required":false,"description":"Number of outcomes to return, most traded first (1-200, default 20)"},{"name":"window","type":"string","required":false,"description":"Lookback window for the totals (default 1d)"}],"outputs":[{"name":"computed_at","type":null,"required":false,"description":"When the summary was computed, Unix seconds"},{"name":"fills_total","type":null,"required":false,"description":"Fills over the window"},{"name":"markets_active","type":null,"required":false,"description":"Outcome markets listed now"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"notional_total","type":null,"required":false,"description":"Volume in USD over the window"},{"name":"top_markets","type":"array","required":false,"description":"Most traded outcomes, highest 24h volume first"},{"name":"wallets_total","type":null,"required":false,"description":"Wallets that traded over the window"},{"name":"window_hours","type":null,"required":false,"description":"Window of the totals, in hours"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":193},{"name":"get_premium","title":"Mark against oracle premium","description":"A Hyperliquid perp's mark price against its oracle price over time, with the premium in basis points ((mark / oracle - 1) x 10,000) per bucket and a summary (latest, mean, min, max). On HIP-3 stock, index and commodity perps such as xyz:NVDA-PERP, xyz:GOLD-PERP or xyz:SP500-PERP the oracle follows the underlying, so this shows how far the perp trades from what it tracks, weekends included. Default 1h buckets over the last 7 days. For funding payments use get_funding_rates.","inputs":[{"name":"days","type":"number","required":false,"description":"How many days back (default 7; limited by your key's history window)"},{"name":"interval","type":"string","required":false,"description":"Bucket size (default 1h)"},{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Buckets, oldest first"},{"name":"interval","type":null,"required":false,"description":"Bucket size"},{"name":"market","type":null,"required":false,"description":"Display symbol, e.g. \"BTC-PERP\" or \"xyz:NVDA-PERP\""},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"summary","type":"object","required":false,"description":"Premium over the window, in basis points"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":212},{"name":"get_liquidations","title":"Liquidations","description":"Liquidations on a Hyperliquid perp, read from our own nodes: price, size, side and the liquidated wallet. Hyperliquid's public API has no liquidation feed.","inputs":[{"name":"limit","type":"number","required":false,"description":"Number of liquidation events (1-100, default 20)"},{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Liquidations"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"pagination","type":"object","required":false,"description":"Cursor pagination"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":108},{"name":"create_liquidation_alert","title":"Create liquidation alert","description":"Have Ironflow post Hyperliquid liquidations to the user's Discord channel, Slack channel, Telegram chat or HTTPS webhook as they happen (within seconds), filtered by market, side, size and wallet. It keeps running after the conversation: use it when the user wants to be told about liquidations, not just to see them now. Needs an API key (free key: 1 alert; Explorer 5; Builder 20). Give url (a Discord channel webhook from channel settings, Integrations, Webhooks, Copy Webhook URL; a Slack incoming webhook; or any public https URL) or telegram_chat (then tell the user to add the bot named in the result's setup to that chat). A plain webhook gets signed JSON, and its signing_secret appears only in this result, so pass it on. Then call test_liquidation_alert to check that it arrives.","inputs":[{"name":"address","type":"string","required":false,"description":"Only this wallet's liquidations (0x...)"},{"name":"markets","type":"string","required":false,"description":"Comma-separated markets, e.g. BTC,ETH-PERP,xyz:NVDA (Hyperliquid names work); omit for every market"},{"name":"min_usd","type":"number","required":false,"description":"Smallest liquidation to report, in USD (default 0; 100000 keeps a channel readable)"},{"name":"name","type":"string","required":false,"description":"Label shown in each message, e.g. BTC whales"},{"name":"side","type":"string","required":false,"description":"Which positions: long = longs liquidated (default any)"},{"name":"telegram_chat","type":"string","required":false,"description":"A Telegram chat instead of url: @channel or group name, or a numeric chat id (-100...)"},{"name":"url","type":"string","required":false,"description":"Where to post: https://discord.com/api/webhooks/..., https://hooks.slack.com/services/... or a public https URL (or use telegram_chat)"}],"outputs":[{"name":"address","type":null,"required":false,"description":"Only this wallet, when set"},{"name":"created_at","type":null,"required":false,"description":"Creation time, RFC 3339"},{"name":"destination","type":null,"required":false,"description":"Host it posts to, without the secret part of the URL"},{"name":"failures","type":null,"required":false,"description":"Failed deliveries in a row"},{"name":"id","type":null,"required":false,"description":"Alert id (UUID)"},{"name":"last_error","type":null,"required":false,"description":"The destination's last error"},{"name":"last_sent_at","type":null,"required":false,"description":"Last delivery, RFC 3339; null before the first"},{"name":"markets","type":null,"required":false,"description":"Markets watched; empty means every market"},{"name":"min_usd","type":null,"required":false,"description":"Smallest liquidation reported, USD"},{"name":"name","type":null,"required":false,"description":"Label shown in each message"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"sent_count","type":null,"required":false,"description":"Liquidations delivered so far"},{"name":"setup","type":null,"required":false,"description":"What to do before the first message arrives (Telegram: the bot to add to the chat)"},{"name":"side","type":null,"required":false,"description":"any, long (longs liquidated) or short"},{"name":"signing_secret","type":null,"required":false,"description":"Webhooks only: HMAC key for the X-Ironflow-Signature header, shown only here"},{"name":"status","type":null,"required":false,"description":"active or disabled (after 20 failed deliveries in a row)"},{"name":"type","type":null,"required":false,"description":"webhook, discord, slack or telegram"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":371},{"name":"list_liquidation_alerts","title":"List liquidation alerts","description":"The Hyperliquid liquidation alerts on this API key's account: where each posts (host only), its filter, whether it is active, failed deliveries in a row with the last error, liquidations sent so far, and how many alerts the tier allows. An alert is disabled after 20 failed deliveries in a row; test_liquidation_alert re-enables it once the destination works again.","inputs":[],"outputs":[{"name":"alerts","type":"array","required":false,"description":"Alerts"},{"name":"limit","type":null,"required":false,"description":"Alerts this tier allows"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":92},{"name":"test_liquidation_alert","title":"Test liquidation alert","description":"Send a sample Hyperliquid liquidation, marked as a test, to an alert's destination now and report whether it arrived (delivered true or false, with the destination's answer). A delivered test switches a disabled alert back on. One test per alert every 10 seconds.","inputs":[{"name":"id","type":"string","required":true,"description":"Alert id from create_liquidation_alert or list_liquidation_alerts"}],"outputs":[{"name":"delivered","type":null,"required":false,"description":"Whether the destination accepted the test message"},{"name":"error","type":null,"required":false,"description":"The destination's answer when it was not delivered"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"status","type":null,"required":false,"description":"The alert's status afterwards"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":89},{"name":"delete_liquidation_alert","title":"Delete liquidation alert","description":"Stop and remove one Hyperliquid liquidation alert from this API key's account; nothing more is sent to its destination.","inputs":[{"name":"id","type":"string","required":true,"description":"Alert id from list_liquidation_alerts"}],"outputs":[{"name":"deleted","type":null,"required":false,"description":"true"},{"name":"id","type":null,"required":false,"description":"The deleted alert's id"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":51},{"name":"get_auto_deleveraging","title":"Auto-deleveraging fills","description":"Hyperliquid auto-deleveraging (ADL) fills, newest first, across all markets or one: profitable positions Hyperliquid closed to cover a liquidation its backstop could not absorb. Per fill: wallet, market, side, price, size, notional, realized PnL, trade id (shared with the liquidated side) and transaction hash. Recorded from 2026-08-01; the default window is the last 7 days. For the liquidated side use get_liquidations.","inputs":[{"name":"days","type":"number","required":false,"description":"How many days back (default 7)"},{"name":"limit","type":"number","required":false,"description":"Number of fills (1-1000, default 100)"},{"name":"market","type":"string","required":false,"description":"Optional market filter: BTC-PERP or a Hyperliquid name (BTC, xyz:NVDA)"}],"outputs":[{"name":"count","type":null,"required":false,"description":"Fills returned"},{"name":"data","type":"array","required":false,"description":"ADL fills"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"recorded_from","type":null,"required":false,"description":"First moment recorded, Unix milliseconds"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":177},{"name":"get_liquidation_summary","title":"Liquidation summary","description":"Liquidations on Hyperliquid over a trailing window, totalled across every market or the ones named: count, wallets, notional, longs vs shorts liquidated, the top markets and the largest single liquidation with its price. Use it for 'who got liquidated in the last hour?' or 'how much was liquidated today?'. For the individual liquidations use get_liquidations; for liquidation prices still ahead use get_liquidation_levels. Windows from 15m to 24h without a key, 7d with one. Totals are computed by the API over every liquidation, not sampled.","inputs":[{"name":"market","type":"string","required":false,"description":"Optional: one market or a comma list (BTC-PERP,ETH-PERP); Hyperliquid names work (BTC, xyz:NVDA)"},{"name":"minutes","type":"number","required":false,"description":"Older form of window, rounded up to the next one (90 becomes 4h)"},{"name":"window","type":"string","required":false,"description":"Trailing window. Default 1h"}],"outputs":[{"name":"by_market","type":"array","required":false,"description":"Top markets by liquidated notional"},{"name":"complete","type":null,"required":false,"description":"Always true: totals cover every liquidation in the window"},{"name":"count","type":null,"required":false,"description":"Number of liquidations"},{"name":"from","type":null,"required":false,"description":"Window start, Unix milliseconds"},{"name":"largest","type":"object","required":false,"description":"Largest single liquidation, or null when there were none"},{"name":"longs_liquidated_usd","type":null,"required":false,"description":"Notional of liquidated longs in USD"},{"name":"market","type":null,"required":false,"description":"Market filter, or null for all markets"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"notional_usd","type":null,"required":false,"description":"Liquidated notional in USD"},{"name":"shorts_liquidated_usd","type":null,"required":false,"description":"Notional of liquidated shorts in USD"},{"name":"to","type":null,"required":false,"description":"Window end, Unix milliseconds"},{"name":"wallets","type":null,"required":false,"description":"Distinct wallets liquidated"},{"name":"window","type":null,"required":false,"description":"Trailing window, e.g. 1h"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":211},{"name":"get_fills","title":"Wallet fills","description":"Every fill for one Hyperliquid wallet, optionally for one market, from indexed history: price, size, side, fee and realized PnL. Hyperliquid's own userFills endpoints stop at the 10,000 most recent fills.","inputs":[{"name":"address","type":"string","required":true,"description":"Wallet address (e.g. 0x...)"},{"name":"limit","type":"number","required":false,"description":"Number of fills (1-100, default 20)"},{"name":"market","type":"string","required":false,"description":"Optional market filter: BTC-PERP or a Hyperliquid name (BTC, xyz:NVDA)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Fills for one wallet, newest first"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"pagination","type":"object","required":false,"description":"Cursor pagination"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":121},{"name":"get_mark_prices","title":"Mark and oracle price","description":"Latest mark price, oracle price and current hourly funding rate of one Hyperliquid perp, with the time of the reading. The funding rate is a fraction per hour (0.0000125 = 0.00125%); positive means longs pay shorts. Use it when you need the oracle price or funding next to the mark, for example for basis or premium. For only the price use get_price, for funding history get_funding_rates, and for many markets at once get_markets_snapshot.","inputs":[{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Mark price samples"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"pagination","type":"object","required":false,"description":"Cursor pagination"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":153},{"name":"get_vault_operations","title":"Vault deposits and withdrawals","description":"Deposits into and withdrawals from one Hyperliquid vault or one depositor. Pass vault, address, or both; at least one is required (HLP is 0xdfc24b077bc1425ad1dea75bcb6f8158e10df303).","inputs":[{"name":"address","type":"string","required":false,"description":"Depositor address (vault or address is required)"},{"name":"limit","type":"number","required":false,"description":"Number of events (1-100, default 20)"},{"name":"vault","type":"string","required":false,"description":"Vault address (vault or address is required)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Vault deposits and withdrawals"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"pagination","type":"object","required":false,"description":"Cursor pagination"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":117},{"name":"get_liquidation_levels","title":"Liquidation levels","description":"Liquidated notional on a Hyperliquid perp bucketed by price: where longs and shorts were wiped out. Needs an API key (a free key works, https://ironflow.sh/key); keyless calls return 403.","inputs":[{"name":"bucket_size","type":"string","required":false,"description":"Price bucket size (1, 5, 10, 50, 100, 500, 1000, 5000). Default: 100"},{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Price buckets"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":141},{"name":"get_vault_leaderboard","title":"Vault leaderboard","description":"Hyperliquid vaults ranked by net deposits (deposits minus withdrawals) over the last 7 days, with depositor counts. Keyless calls see the last 24 hours; a free key from https://ironflow.sh/key gives the full 7 days.","inputs":[{"name":"limit","type":"number","required":false,"description":"Number of vaults (default 10, max 1000)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Vaults"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"window_days","type":null,"required":false,"description":"Days covered (keyless: 1); absent when served by the Builder endpoint"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":87},{"name":"get_funding_stats","title":"Funding statistics","description":"Funding statistics per time bucket for a Hyperliquid perp: average, minimum, maximum and annualized rate.","inputs":[{"name":"interval","type":"string","required":false,"description":"Time interval (1h, 4h, 8h, 1d, 7d). Default: 1d"},{"name":"limit","type":"number","required":false,"description":"Number of data points (default 7)"},{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Buckets"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":123},{"name":"get_user_state","title":"Wallet positions","description":"Open positions and unrealized PnL for a Hyperliquid wallet right now, across native and HIP-3 perps. Use it for questions like 'is this wallet long or short?'","inputs":[{"name":"address","type":"string","required":true,"description":"0x-prefixed 20-byte hex address"}],"outputs":[{"name":"address","type":null,"required":false,"description":"Wallet address (0x…)"},{"name":"as_of_ts","type":null,"required":false,"description":"Snapshot time, Unix milliseconds"},{"name":"asset_positions","type":"array","required":false,"description":"Open positions"},{"name":"margin_summary","type":"object","required":false,"description":"Account totals"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":66},{"name":"get_positions_at","title":"Wallet positions at a past time","description":"Exact perp positions one Hyperliquid wallet held at a past moment, up to 90 days back: market, side, signed size, mark price and notional at that moment, plus today's size and how many fills it made since. Built from Hyperliquid's live positions minus the wallet's fills after that moment, so sizes are exact across native and HIP-3 perps. Needs a free API key; how far back you can go follows the key's history window. Use it for questions like 'what was this wallet holding before the crash'. For positions right now use get_user_state; for trades in between use get_fills.","inputs":[{"name":"address","type":"string","required":true,"description":"0x-prefixed 20-byte hex address"},{"name":"at","type":"string","required":true,"description":"The past moment: ISO 8601 (2026-11-01T12:00:00Z), unix seconds or unix milliseconds"}],"outputs":[{"name":"address","type":null,"required":false,"description":"Wallet address (0x…)"},{"name":"at","type":null,"required":false,"description":"The moment, Unix milliseconds"},{"name":"count","type":null,"required":false,"description":"Positions returned"},{"name":"method","type":null,"required":false,"description":"How the sizes were rebuilt"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"positions","type":"array","required":false,"description":"Positions, largest notional first"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":191},{"name":"get_user_funding","title":"Wallet funding payments","description":"Funding a Hyperliquid wallet paid or received, per market per bucket: Hyperliquid's own ledger, every hourly payment back to September 2025 (Hyperliquid's API returns only daily totals that far back). Positive means received, negative means paid. bucket=1d gives daily totals, 1h the hourly payments.","inputs":[{"name":"address","type":"string","required":true,"description":"0x-prefixed 20-byte hex address"},{"name":"bucket","type":"string","required":false,"description":"Aggregation bucket; default 1d"},{"name":"from","type":"string","required":false,"description":"Window start: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z)"},{"name":"limit","type":"number","required":false,"description":"Most recent rows to return (default 200)"},{"name":"market","type":"string","required":false,"description":"Optional market filter: BTC-PERP or a Hyperliquid name (BTC, xyz:NVDA)"},{"name":"to","type":"string","required":false,"description":"Window end: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z)"}],"outputs":[{"name":"address","type":null,"required":false,"description":"Wallet address (0x…)"},{"name":"bucket","type":null,"required":false,"description":"Bucket size"},{"name":"data","type":"array","required":false,"description":"Buckets"},{"name":"from","type":null,"required":false,"description":"Window start, Unix milliseconds"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"returned","type":null,"required":false,"description":"Rows in data, most recent first"},{"name":"to","type":null,"required":false,"description":"Window end, Unix milliseconds"},{"name":"total_rows","type":null,"required":false,"description":"Rows in the window before the limit"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":221},{"name":"get_user_maker_taker","title":"Wallet maker/taker split","description":"Maker vs taker breakdown of a Hyperliquid wallet's fills per market: volume, fees and rebates. A high maker share with negative maker fees marks a market maker.","inputs":[{"name":"address","type":"string","required":true,"description":"0x-prefixed 20-byte hex address"},{"name":"from","type":"string","required":false,"description":"Window start: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z)"},{"name":"market","type":"string","required":false,"description":"Optional market filter: BTC-PERP or a Hyperliquid name (BTC, xyz:NVDA)"},{"name":"to","type":"string","required":false,"description":"Window end: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z)"}],"outputs":[{"name":"address","type":null,"required":false,"description":"Wallet address (0x…)"},{"name":"data","type":"array","required":false,"description":"Per market"},{"name":"from","type":null,"required":false,"description":"Window start, Unix milliseconds"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"to","type":null,"required":false,"description":"Window end, Unix milliseconds"},{"name":"total","type":"object","required":false,"description":"All markets"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":159},{"name":"get_user_ledger","title":"Wallet ledger","description":"Vault deposits, withdrawals and transfers for a Hyperliquid wallet. Positive amounts go into the account. Account deposits and withdrawals are recorded only up to 2026-06-06.","inputs":[{"name":"address","type":"string","required":true,"description":"0x-prefixed 20-byte hex address"},{"name":"event_types","type":"string","required":false,"description":"Comma-separated type filter (deposit,withdrawal,vault_deposit,vault_withdraw,vault_transfer_in,vault_transfer_out)"},{"name":"from","type":"string","required":false,"description":"Window start: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z)"},{"name":"limit","type":"number","required":false,"description":"Max entries, default 1000, cap 10000"},{"name":"to","type":"string","required":false,"description":"Window end: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z)"}],"outputs":[{"name":"address","type":null,"required":false,"description":"Wallet address (0x…)"},{"name":"data","type":"array","required":false,"description":"Ledger entries"},{"name":"from","type":null,"required":false,"description":"Window start, Unix milliseconds"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"to","type":null,"required":false,"description":"Window end, Unix milliseconds"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":185},{"name":"get_pnl_leaderboard","title":"PnL leaderboard","description":"Every Hyperliquid wallet ranked by realized PnL, biggest losses or volume over a window. Wallets with fewer than 5 fills in the window are left out.","inputs":[{"name":"from","type":"string","required":false,"description":"Window start: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z). Default 30 days ago"},{"name":"limit","type":"number","required":false,"description":"Number of rows, max 200, default 50"},{"name":"sort_by","type":"string","required":false,"description":"Ranking metric"},{"name":"to","type":"string","required":false,"description":"Window end: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z). Default now"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Wallets"},{"name":"from","type":null,"required":false,"description":"Window start, Unix milliseconds"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"sort_by","type":null,"required":false,"description":"Ranking metric"},{"name":"to","type":null,"required":false,"description":"Window end, Unix milliseconds"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":152},{"name":"get_market_top_wallets","title":"Top wallets in a market","description":"Top wallets on one Hyperliquid market by volume or realized PnL, up to 200 rows.","inputs":[{"name":"from","type":"string","required":false,"description":"Window start: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z). Default 24 hours ago"},{"name":"limit","type":"number","required":false,"description":"Number of rows, max 200, default 25"},{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"},{"name":"sort_by","type":"string","required":false,"description":"Ranking metric"},{"name":"to","type":"string","required":false,"description":"Window end: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z). Default now"}],"outputs":[{"name":"data","type":"array","required":false,"description":"Wallets"},{"name":"from","type":null,"required":false,"description":"Window start, Unix milliseconds"},{"name":"market","type":null,"required":false,"description":"Display symbol, e.g. \"BTC-PERP\" or \"xyz:NVDA-PERP\""},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"sort_by","type":null,"required":false,"description":"Ranking metric"},{"name":"to","type":null,"required":false,"description":"Window end, Unix milliseconds"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":180},{"name":"get_markets_snapshot","title":"Markets snapshot","description":"Active Hyperliquid markets ranked in one call: mark price, 24h change, 24h volume, open interest and current hourly funding. Sort by abs_funding for the most extreme funding, abs_change_24h for the biggest movers, or volume (default). Use min_volume_usd to skip illiquid markets. Returns the top 25 unless limit is set.","inputs":[{"name":"issuer","type":"string","required":false,"description":"HIP-3 builder code (e.g. 'xyz'). Omit to include every issuer."},{"name":"limit","type":"number","required":false,"description":"Rows to return (1-200, default 25)"},{"name":"market_class","type":"string","required":false,"description":"Filter to one class"},{"name":"min_volume_usd","type":"number","required":false,"description":"Skip markets with less 24h volume than this (USD)"},{"name":"order","type":"string","required":false,"description":"desc (default) or asc"},{"name":"sort_by","type":"string","required":false,"description":"Ranking key (default volume). funding_rate is hourly; positive means longs pay shorts."}],"outputs":[{"name":"data","type":"array","required":false,"description":"Ranked markets"},{"name":"matched","type":null,"required":false,"description":"Markets past the volume floor"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"order","type":null,"required":false,"description":"desc or asc"},{"name":"returned","type":null,"required":false,"description":"Rows in data"},{"name":"sort_by","type":null,"required":false,"description":"Ranking key used"},{"name":"total_markets","type":null,"required":false,"description":"Active markets before filtering"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":201},{"name":"get_user_summary","title":"Wallet summary","description":"Totals for one Hyperliquid wallet over a time range (default the last 24 hours): fill count, volume in USD, realized PnL, fees, wins, losses, win rate and maker versus taker share, plus its current account state (open positions and margin). Use it for questions like 'how much did this wallet trade or make this week'. For a scored record with profit factor, drawdown and a per-market breakdown use get_trader_profile; for PnL over time use get_user_pnl_series.","inputs":[{"name":"address","type":"string","required":true,"description":"0x-prefixed 20-byte hex address"},{"name":"from","type":"string","required":false,"description":"Window start: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z). Default 24 hours ago"},{"name":"to","type":"string","required":false,"description":"Window end: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z). Default now"}],"outputs":[{"name":"address","type":null,"required":false,"description":"Wallet address (0x…)"},{"name":"from","type":null,"required":false,"description":"Window start, Unix milliseconds"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"state","type":"object","required":false,"description":"Open positions right now"},{"name":"to","type":null,"required":false,"description":"Window end, Unix milliseconds"},{"name":"window","type":"object","required":false,"description":"Window totals"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":212},{"name":"get_wallet_labels","title":"Wallet labels","description":"Labels for notable Hyperliquid wallets: top whales by 24h volume, top traders by 30-day realized PnL, vaults and vault leaders. Pass addresses to check specific wallets; without them it lists the whales and smart money.","inputs":[{"name":"addresses","type":"string","required":false,"description":"Comma-separated wallet addresses to look up"},{"name":"smart_top_n","type":"number","required":false,"description":"Top N smart-money wallets to include (max 500, default 100)"},{"name":"whale_top_n","type":"number","required":false,"description":"Top N whales to include (max 500, default 100)"}],"outputs":[{"name":"counts","type":null,"required":false,"description":"Wallets per label kind"},{"name":"generated_at","type":null,"required":false,"description":"Unix milliseconds"},{"name":"labels","type":"object","required":false,"description":"Address to its labels"},{"name":"note","type":null,"required":false,"description":"What the labels map includes"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"source","type":null,"required":false,"description":"Venue, always hyperliquid"},{"name":"ttl_seconds","type":null,"required":false,"description":"Cache lifetime"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":120},{"name":"get_user_pnl_series","title":"Wallet PnL curve","description":"Realized PnL of one Hyperliquid wallet over time: buckets with realized PnL and fees paid in each, by default daily over the last 30 days. Add the buckets up for a running PnL curve. Realized only: unrealized PnL on open positions is in get_user_state. For totals over a range use get_user_summary.","inputs":[{"name":"address","type":"string","required":true,"description":"0x-prefixed 20-byte hex address"},{"name":"bucket_ms","type":"number","required":false,"description":"Bucket size in milliseconds: 3600000 for hourly, 86400000 for daily (default)"},{"name":"from","type":"string","required":false,"description":"Window start: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z). Default 30 days ago"},{"name":"to","type":"string","required":false,"description":"Window end: Unix ms or seconds, or ISO 8601 (2026-10-01T00:00:00Z). Default now"}],"outputs":[{"name":"address","type":null,"required":false,"description":"Wallet address (0x…)"},{"name":"bucket","type":null,"required":false,"description":"Bucket size"},{"name":"data","type":"array","required":false,"description":"Buckets"},{"name":"from","type":null,"required":false,"description":"Window start, Unix milliseconds"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"to","type":null,"required":false,"description":"Window end, Unix milliseconds"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":209},{"name":"get_top_traders","title":"Top traders","description":"Hyperliquid traders ranked across all markets by results over 7, 30 or 90 days: win rate, profit factor, realized PnL, max drawdown and best markets. sort=top ranks by realized PnL, lowrisk by smallest max drawdown, new by most recently first seen.","inputs":[{"name":"limit","type":"number","required":false,"description":"Number of traders (1-50, default 20)"},{"name":"sort","type":"string","required":false,"description":"Ranking. Default top"},{"name":"window","type":"string","required":false,"description":"Lookback window. Default 30d"}],"outputs":[{"name":"aggregate","type":"object","required":false,"description":"Totals"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"sort","type":null,"required":false,"description":"Ranking used"},{"name":"traders","type":"array","required":false,"description":"Traders"},{"name":"window","type":null,"required":false,"description":"Lookback window, e.g. \"30d\""}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":118},{"name":"get_market_leaders","title":"Market leaders","description":"The best traders on one Hyperliquid market, ranked by profit factor then win rate, among wallets with at least 5 closed trades there.","inputs":[{"name":"limit","type":"number","required":false,"description":"Number of traders (1-50, default 20)"},{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"},{"name":"window","type":"string","required":false,"description":"Lookback window. Default 30d"}],"outputs":[{"name":"market","type":null,"required":false,"description":"Display symbol, e.g. \"BTC-PERP\" or \"xyz:NVDA-PERP\""},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"traders","type":"array","required":false,"description":"Traders"},{"name":"window","type":null,"required":false,"description":"Lookback window, e.g. \"30d\""}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":114},{"name":"get_early_movers","title":"Early movers","description":"Wallets whose large orders (at least $10k) on one Hyperliquid market tended to come before price moved their way within 30 minutes, over the last 7 or 30 days. Per wallet: the number of scored orders, their total notional, a lead score (notional-weighted average 30-minute move in the order's direction, in basis points), a hit rate (share of orders followed by a move their way), the last order time and the share of its large orders cancelled without a fill. Needs at least 5 scored orders per wallet; the response states the formulas. Use it to find wallets worth watching on one market, then check them with get_trader_profile or get_user_state. Past activity does not predict future results.","inputs":[{"name":"limit","type":"number","required":false,"description":"Number of wallets (1-25, default 10)"},{"name":"market","type":"string","required":true,"description":"Market: BTC-PERP, xyz:NVDA-PERP, HYPE/USDC, or a Hyperliquid name (BTC, @107, xyz:NVDA)"},{"name":"window","type":"string","required":false,"description":"Lookback window. Default 30d"}],"outputs":[{"name":"formula","type":null,"required":false,"description":"How the lead score is computed"},{"name":"market","type":null,"required":false,"description":"Display symbol, e.g. \"BTC-PERP\" or \"xyz:NVDA-PERP\""},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"signals","type":"array","required":false,"description":"Wallets"},{"name":"window","type":null,"required":false,"description":"Lookback window, e.g. \"30d\""}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":242},{"name":"get_trader_profile","title":"Trader profile","description":"How good and how risky one Hyperliquid trader is over 7, 30 or 90 days, rebuilt from its fills: overall win rate, profit factor, trade count, realized PnL and max drawdown; the same numbers per market; its liquidations; and its trades from open to close with direction, timing and peak size. Use it to vet a wallet before following it. For plain totals over any time range use get_user_summary; for positions open right now use get_user_state; for style labels such as market_maker use get_wallet_behavior. A 90d window on a very active wallet can take several seconds.","inputs":[{"name":"address","type":"string","required":true,"description":"0x-prefixed 20-byte hex address"},{"name":"window","type":"string","required":false,"description":"Lookback window. Default 30d"}],"outputs":[{"name":"address","type":null,"required":false,"description":"Wallet address (0x…)"},{"name":"liquidation_count","type":null,"required":false,"description":"Liquidations in the window"},{"name":"markets","type":"array","required":false,"description":"Best markets, ranked"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"overall","type":"object","required":false,"description":"Headline stats"},{"name":"trades","type":null,"required":false,"description":"Recent round-trip trades"},{"name":"window","type":null,"required":false,"description":"Lookback window, e.g. \"30d\""}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":173},{"name":"list_cohorts","title":"List cohorts","description":"List available address cohorts: six predefined groups (top_pnl_30d, high_volume_30d, whale_fills, net_withdrawers_7d, liquidation_prone, vault_whales) plus any custom cohorts the caller has created","inputs":[],"outputs":[{"name":"data","type":"array","required":false,"description":"Cohorts"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":61},{"name":"get_cohort_addresses","title":"Cohort addresses","description":"Wallet addresses in one named cohort: up to 100, each with the value the cohort ranks by (realized PnL in USD for top_pnl_30d, volume in USD for high_volume_30d), and fetched_at, when the cohort was last computed. Call list_cohorts first for the names and what each one selects. Feed the addresses to get_user_summary, get_trader_profile or get_wallet_behavior to look at each wallet.","inputs":[{"name":"name","type":"string","required":true,"description":"Cohort name from list_cohorts: top_pnl_30d, high_volume_30d, whale_fills, net_withdrawers_7d, liquidation_prone, vault_whales, or a custom cohort you created"}],"outputs":[{"name":"addresses","type":"array","required":false,"description":"Wallets"},{"name":"fetched_at","type":null,"required":false,"description":"Unix milliseconds"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":159},{"name":"get_status","title":"API status","description":"Ironflow service status right now: overall state, data freshness per venue and component health.","inputs":[],"outputs":[{"name":"components","type":null,"required":false,"description":"data_pipeline, rest_api and streaming health"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"platform","type":null,"required":false,"description":"Event and market counts"},{"name":"status","type":null,"required":false,"description":"operational, degraded or down"},{"name":"timestamp","type":null,"required":false,"description":"Unix milliseconds"},{"name":"uptime","type":null,"required":false,"description":"Time since the last incident"},{"name":"venues","type":null,"required":false,"description":"Freshness per venue"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":26},{"name":"get_status_metrics","title":"API performance metrics","description":"Ironflow performance over rolling windows: API latency and error rate, ingestion lag and synthetic probe timings.","inputs":[],"outputs":[{"name":"api","type":null,"required":false,"description":"Latency and error rate"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"pipeline","type":null,"required":false,"description":"Ingestion latency and throughput"},{"name":"synthetic","type":null,"required":false,"description":"Synthetic probe latencies"},{"name":"timestamp","type":null,"required":false,"description":"Unix milliseconds"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":29},{"name":"get_status_history","title":"API uptime history","description":"Ironflow's own uptime over the last 24 hours (default) or 7 days: points over the period, each with the service status and how fresh the data was in seconds, plus the overall uptime percent. Use it to check whether a gap or odd value in other results came from an Ironflow outage. For the status right now use get_status; for API latency and error rates use get_status_metrics.","inputs":[{"name":"period","type":"string","required":false,"description":"Lookback window. '24h' (default) or '7d'."}],"outputs":[{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"period","type":null,"required":false,"description":"24h or 7d"},{"name":"points","type":"array","required":false,"description":"Hourly buckets"},{"name":"uptime_percent","type":null,"required":false,"description":"Share of operational hours"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":115},{"name":"list_markets","title":"List markets","description":"Find how a Hyperliquid market is named: perps (native and HIP-3), spot and live HIP-4 outcomes, with symbol, class, issuer, base asset and Hyperliquid coin. Search with q (q=nvda finds xyz:NVDA-PERP and the other NVDA perps). Pages of up to 100 rows; pass pagination.next_cursor as cursor for the next page.","inputs":[{"name":"cursor","type":"string","required":false,"description":"pagination.next_cursor from the previous page, with the same filters"},{"name":"include_inactive","type":"boolean","required":false,"description":"Also return closed markets (delisted, settled HIP-4 outcomes), which carry active_to_ms. Default false."},{"name":"issuer","type":"string","required":false,"description":"HIP-3 issuer code (e.g. 'xyz'). '' returns native markets only. Omit for every issuer."},{"name":"limit","type":"number","required":false,"description":"Rows per page (default 100, max 100)"},{"name":"market_class","type":"string","required":false,"description":"Only this class. 'prediction' is HIP-4 outcomes. Omit for all."},{"name":"q","type":"string","required":false,"description":"Case-insensitive search over symbol, base asset, Hyperliquid coin and issuer"},{"name":"source","type":"string","required":false,"description":"Venue. Default 'hyperliquid'."}],"outputs":[{"name":"data","type":"array","required":false,"description":"Markets"},{"name":"matched","type":null,"required":false,"description":"Markets matching the filters and search, across all pages"},{"name":"notice","type":null,"required":false,"description":"Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key"},{"name":"pagination","type":"object","required":false,"description":"Cursor pagination"},{"name":"returned","type":null,"required":false,"description":"Rows in data"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":253}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T11:54:58.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-11-03","recent":[{"id":"chg_01a1ab8f-ec1a-7e2c-88b0-2d92eee9b9ea","kind":"check.unverifiable","summary":"Dependency health (0.85 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab8f-ec1a-7e2c-88b0-2d92eee9b9ea"},{"id":"chg_01a1ab8f-ec1b-7b56-9143-45a591c34aad","kind":"package.version_changed","summary":"Package version (0.12.0 → 0.14.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab8f-ec1b-7b56-9143-45a591c34aad"},{"id":"chg_01a1ab8f-ec1c-70f1-a92f-585d311f7348","kind":"score.total_changed","summary":"Trust score (75 → 54)","materiality":"functional","direction":"regression","scoreDelta":-21,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab8f-ec1c-70f1-a92f-585d311f7348"},{"id":"chg_01a1ab8f-ec18-7aed-8440-fd43df4eed18","kind":"check.unverifiable","summary":"Known CVEs (fail → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab8f-ec18-7aed-8440-fd43df4eed18"},{"id":"chg_01a1ab8f-ec19-76b6-8c5c-950990d76df5","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab8f-ec19-76b6-8c5c-950990d76df5"},{"id":"chg_01a1ab8f-ec1a-790f-9d44-c7e206c879bd","kind":"check.measure","summary":"Schema quality (6169 → 7189)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab8f-ec1a-790f-9d44-c7e206c879bd"},{"id":"chg_01a1ab8f-ec1b-7605-95c9-621192008c29","kind":"check.verdict","summary":"Destructive annotations (pass → 100)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab8f-ec1b-7605-95c9-621192008c29"},{"id":"chg_01a1ab24-6bfd-7ba6-b982-3ccfddf90a3b","kind":"check.verdict","summary":"Provenance (fail → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab24-6bfd-7ba6-b982-3ccfddf90a3b"},{"id":"chg_01a1ab24-6bfe-7d6a-83a0-80d551e03758","kind":"provenance.repo_changed","summary":"The attested source repository moved (ironflowsh/mcp)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab24-6bfe-7d6a-83a0-80d551e03758"},{"id":"chg_01a1ab24-6bff-73e7-bde3-ad623f10c566","kind":"package.version_changed","summary":"Package version (0.12.0 → 0.13.2)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab24-6bff-73e7-bde3-ad623f10c566"},{"id":"chg_01a1ab24-6bff-7a33-8d94-652cbd53a39f","kind":"score.total_changed","summary":"Trust score (65 → 75)","materiality":"functional","direction":"improvement","scoreDelta":10,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1ab24-6bff-7a33-8d94-652cbd53a39f"},{"id":"chg_01a1a984-e6e8-7065-8bf5-c210921c5f45","kind":"score.total_changed","summary":"Trust score (64 → 65)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1a984-e6e8-7065-8bf5-c210921c5f45"},{"id":"chg_01a1a62f-8991-772d-840f-9e336af7ffd8","kind":"score.total_changed","summary":"Trust score (33 → 64)","materiality":"functional","direction":"improvement","scoreDelta":31,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1a62f-8991-772d-840f-9e336af7ffd8"},{"id":"chg_01a1a62f-898f-7676-9631-94d10b90a0c8","kind":"check.measure","summary":"Schema quality (125 → 154)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1a62f-898f-7676-9631-94d10b90a0c8"},{"id":"chg_01a1a62f-8990-7a97-836f-6b2c097b9ed2","kind":"check.measure","summary":"Schema quality (good → excellent)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1a62f-8990-7a97-836f-6b2c097b9ed2"},{"id":"chg_01a1a61a-c558-79df-9feb-e27e27247199","kind":"package.version_changed","summary":"Package version (0.11.2 → 0.12.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1a61a-c558-79df-9feb-e27e27247199"},{"id":"chg_01a1a61a-c558-7413-af36-6ada03e7e0c4","kind":"check.appeared","summary":"First check of Schema quality (unverified)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1a61a-c558-7413-af36-6ada03e7e0c4"},{"id":"chg_01a1a61a-c558-7eb6-beb1-9b3ecd2962fd","kind":"score.total_changed","summary":"Trust score (64 → 33)","materiality":"functional","direction":"regression","scoreDelta":-31,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1a61a-c558-7eb6-beb1-9b3ecd2962fd"},{"id":"chg_01a1a61a-c557-78af-8a46-bf81c725a65b","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1a61a-c557-78af-8a46-bf81c725a65b"},{"id":"chg_01a1a61a-c556-7a19-b259-19d75ae3dde1","kind":"check.reason","summary":"Stability (Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp#chg-chg_01a1a61a-c556-7a19-b259-19d75ae3dde1"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp","markdown":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp.md","changelogJson":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/ironflowsh-hyperliquid/ironflowsh-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@ironflowsh/mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/@ironflowsh/mcp"},{"label":"Repository","href":"https://github.com/ironflowsh/mcp"}]}}