Skip to main content
Glama
734,550 tools. Updated 2026-11-02 06:41

"Hyper" matching MCP tools:

  • <summary>Discover companies from recent news via Google News keyword search. A find-companies News-mode discovery source, used alongside `search_news_events`, `tavily_search`, and `exa_search_news` — the News-mode skill owns the routing (which signals fan out here). Its edge is Google's local and trade-press index: hyper-local expansion stories, plant incidents within hours of publication, and small-market executive moves the other sources' indexes miss. Returns raw articles, not company rows — extract the company from each article's title/snippet the same way as `tavily_search` results. Compose KEYWORD-style queries — the terms a journalist's headline would contain, e.g. 'appoints new chief marketing officer' or 'breaks ground manufacturing facility'. Google matches keywords, not meaning: full-sentence semantic phrasing ("A company that recently...") returns ZERO results. Geographic scoping via keywords is brittle (a location term matches any article containing the word, wherever the company is) — prefer scoping by event keywords and filtering location downstream. One query per signal, all in one call (the tool fans them out in parallel; one tool call is one LLM round). Expect the same story to arrive several times from different outlets — Google clusters dilute a page's effective yield to ~5–7 distinct companies. Dedup is on exact URL here; cross-outlet same-story dedup happens downstream at `record_search_results`. Articles are recency-bounded server-side by Google's coarse day/week/month/year buckets, using the smallest bucket covering `lookback_days` (default 30) — a bucket can exceed the window, so also check each row's `published_at` when the window matters. A news scan passes the window from its trigger prompt. Costs 0.05 Sliq credits per query that returns without error; a failed query is free. Companies you record from its articles are not charged. Soft-fails on insufficient credits: the charge is capped at the remaining balance.</summary> <returns> <description>Dict with articles array and count. Each article row is `{title, url, source, snippet, date, published_at, query}` — `source` is the publisher name, `date` is Google's relative publish string ("2 days ago"), `published_at` is a coarse UTC ISO estimate derived from it (None when unparseable), and `query` names the originating query. Rows are deduped by URL across queries. If every query failed with an upstream error and nothing landed, also `google_news_available: False` plus a human-readable `error` — a source outage, NOT a genuinely empty feed. Partial failure (some queries errored, others returned) stays silent and reports only the articles. On insufficient Sliq credits the call is refused before running — it raises `InsufficientCreditsError` instead.</description> </returns>
    ConnectorOAuth
  • The LARGEST RESTING ORDERS ("walls") in the order book of ONE Hyperliquid market WITH THEIR OWNERS and their place in the queue — "who is behind the big bid at 75k", "biggest walls near the price", "is that wall one account". The public book shows sizes only. NOT pending stop-loss / take-profit orders → use hyperliquid_stop_map. NOT who posted and pulled orders over a time window → use hyperliquid_book_makers. Read from the newest complete snapshot of the exchange state (taken about every 12 minutes). group_by = order (default): one row per resting limit order — Top_Owner is its owner, Price_Level its limit price, Queue_Position its place in the queue at that price (1 = first to fill), with Order_Type, Tif (Gtc / Alo / Ioc), Reduce_Only, Placed_Time, Oid and Signer (the API wallet that placed it, when not the account itself). group_by = level: one row per price level and side (bucket_pct 0 = exact prices; above 0 = buckets of about that percent of the mid, Bucket_Width wide, rounded to 1, 2 or 5 x a power of ten) — Orders, Owners, and the account with the most Usd there (Top_Owner, Top_Owner_Usd, Top_Owner_Share_Pct). Size is in base units, Usd = Size x price, Distance_Pct from Mid_Price (the middle of the best bid and ask). Only orders within range_pct of Mid_Price are counted (default 5 %); side buy / sell narrows it; min_usd drops small rows. Returns up to limit rows (default 50, at most 500), largest Usd first. Each row: Snapshot_Time, Market, Mid_Price, Price_Level, Bucket_Width, Distance_Pct, Side, Orders, Size, Usd, Owners, Top_Owner, Top_Owner_Usd, Top_Owner_Share_Pct, Queue_Position, Order_Type, Tif, Reduce_Only, Placed_Time, Oid, Signer.
    ConnectorOAuth
  • WHO PROVIDES THE LIQUIDITY on ONE Hyperliquid market — the accounts behind the resting orders of the book, ranked by the USD they posted, with how many orders they placed and pulled. The public order book is anonymous; this is the named version. Use for market-maker discovery, "who is quoting X", spoofing suspicion (posted ≈ pulled with few fills), liquidity concentration. NOT executed trades (hyperliquid_recent_trades), NOT order rejections (hyperliquid_order_flow). One row per account: Orders_Posted, Orders_Pulled, Orders_Updated, Distinct_Orders, Posted_Usd (sum of price x size of the orders it placed), Buy_Orders / Sell_Orders, Fills (how many of its orders traded in the window, from the trade tape). Book events are kept for about 7 days and are the densest stream on the exchange — hours up to 24 (default 1); a busy market for 24 hours is a long query.
    ConnectorOAuth
  • ACCOUNTS CONTROLLED BY THE SAME OPERATOR as a given Hyperliquid account — linked through the API wallets (agents) that sign for them, transitively: two accounts that share a signer, or are connected through a chain of shared signers, belong to one cluster. Use for sybil / farm detection, wash-trading suspicion, "does this whale have other wallets", and to expand a wallet before summing its PnL. NOT labels from the address directory (labels_for_addresses). On-chain source — recovered from the signatures of the account's own actions. Returns the account's cluster, one row per member account. Trader is the account you asked about and Is_Self = 1 marks its own row, listed first; Signers are the API wallets observed signing for the member Account. Returns up to limit rows (default 100, at most 500); Cluster_Size always counts the whole cluster. A cluster of size 1 means no other account is linked. The graph accumulates from live activity, so an account that has not acted recently may not be linked yet. Each row: Trader, Cluster_Id, Cluster_Size, Account, Is_Self, Signers.
    ConnectorOAuth
  • CURRENT price of ONE Hyperliquid market with the SOURCE it came from — the number to use for "what is X trading at", USD valuation of a position, or a sanity check of a quoted price. NOT a series (hyperliquid_candles), NOT a market list (hyperliquid_markets). Hyperliquid publishes no single price feed for every market, so the tool reads up to three and returns the FRESHEST as Price, with Price_Source and Price_Time (when that source was observed; within the same minute mark wins over funding, funding over last_trade): - mark — the exchange's mark price. Available for deployer (HIP-3) markets only, and republished even for a market nobody trades any more — check Stale. - funding — implied from the last hourly funding settlement (|amount| / (|position| x rate)). Available for every perpetual that had funding; within a fraction of a percent of the mark on liquid markets, at most one hour old, so it wins only when the market has not traded since. - last_trade — the close of the newest 1-minute bar. Available wherever the market traded; the only source for spot and outcome markets. Outcome markets read 0..1. Every row also carries Mark_Price, Funding_Implied_Price and Last_Trade_Price for a cross-check, Last_Trade_Time and Last_Trade_Age_Hours. Stale = 1 when the market has not traded for more than 24 hours: its price (often a deployer's frozen mark) can be far from where the asset trades on its live markets — use a row with Stale = 0 instead. An outcome (prediction) market also carries Headline (the market's name), Outcome (the answer) and Outcome_Side (the side's name), read from the newest state snapshot; NULL for every other market. Its answers and odds: hyperliquid_prediction_market. market is the exact market id from hyperliquid_markets (BTC, xyz:NFLX, @107, #<n>) or a ticker — a ticker that names several markets returns one row per market: markets that traded in the last 24 hours first, then native perpetual, spot, outcome, HIP-3. For a token on Ethereum, Solana or another chain use token_price / currency_price — this tool prices Hyperliquid markets only.
    ConnectorOAuth
  • Check whether a 0x address on HyperEVM is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. Example: address=0xb88339CB7199b77E23DB6E890353E22632Ba630f. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A fast, secure MCP server that extends its capabilities through WebAssembly plugins. Enables plugins written in any language to be distributed via OCI registries and run across cloud to edge.
    881
    Apache 2.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    A configurable MCP server wrapper for Cursor that eliminates tool count limits when using the Model Context Protocol.
    11 npm
    10
    GPL 3.0

Matching MCP Connectors

  • Agentic broker for any industry + agent shop: list, find, get introduced. 7% fee only on deals.

  • Which cellular IoT modules work on which networks: 465 networks, 172 countries, device verdicts

  • Estimate the gas a transaction would use on HyperEVM (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and HYPE. Give to, plus value in HYPE and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use hyperevm_gas. A transaction that would revert is 422 with the reason, uncharged. Example: to=0x000000000000000000000000000000000000dEaD. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
    ConnectorNo auth
  • Check whether a 0x address on HyperEVM is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. Example: address=0xb88339CB7199b77E23DB6E890353E22632Ba630f. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
    ConnectorNo auth
  • Estimate the gas a transaction would use on HyperEVM (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and HYPE. Give to, plus value in HYPE and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use hyperevm_gas. A transaction that would revert is 422 with the reason, uncharged. Example: to=0x000000000000000000000000000000000000dEaD. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
    ConnectorNo auth
  • LONGS versus SHORTS of ONE Hyperliquid perpetual from the full position snapshots — how many accounts are on each side, their size, USD value, unrealized PnL, leverage and margin mode, and the CROWD against the WHALES, now and as a history over the last days. For "is the crowd long", "are whales short", "who is under water", "how did positioning change this week". NOT the funding rate or the cross-market table → use hyperliquid_open_interest. NOT the individual positions → use hyperliquid_largest_positions. Every ~12 minutes the exchange's whole state is captured; one row per complete snapshot, newest first. hours = 0 (default) returns the newest snapshot only, hours up to 168 the history (kept 7 days, from 2026-10-27). Per side: Accounts, Size (base units, both sides equal on a perpetual — every long is matched by a short), Value_Usd at the mark price, Unrealized_Pnl_Usd, Avg_Leverage (mean over accounts), Cross_Pct (share of accounts on cross margin). Long_Accounts_Pct is the crowd's lean. Whales are positions worth at least whale_usd (default 1,000,000): Whale_Long_Value_Pct is the share of whale value that is long, Crowd_Long_Accounts_Pct the share of the other accounts that are long — the two diverge when the whales and the crowd disagree. market is the exact perpetual id (BTC, xyz:NFLX), case-insensitive. Returns up to limit snapshots (default 100, at most 1000), newest first. Each row: Snapshot_Time, Block_Number, Market, Long_Accounts, Short_Accounts, Long_Accounts_Pct, Long_Size, Short_Size, Long_Value_Usd, Short_Value_Usd, Long_Unrealized_Pnl_Usd, Short_Unrealized_Pnl_Usd, Long_Avg_Leverage, Short_Avg_Leverage, Long_Cross_Pct, Short_Cross_Pct, Whale_Long_Accounts, Whale_Short_Accounts, Whale_Long_Value_Usd, Whale_Short_Value_Usd, Whale_Long_Value_Pct, Crowd_Long_Accounts_Pct.
    ConnectorOAuth
  • HOLDERS of ONE SIDE of a Hyperliquid prediction market (HIP-4) with their average entry price — "who is betting on Yes", "the biggest bettors on this team", "at what price did they buy". NOT the odds of the market → use hyperliquid_prediction_market. NOT a ranking of markets → use hyperliquid_prediction_markets. Read from the newest complete snapshot of the exchange state (taken about every 12 minutes). One row per account holding the side: Contracts held (each pays 1 USDC if the side wins), On_Orders (part of it locked in open sell orders), Entry_Cost_Usd and Avg_Entry_Price (= Entry_Cost_Usd / Contracts, 0..1), Price (mid of the best quotes, else the last trade) with Value_Usd = Contracts x Price and Unrealized_Pnl_Usd = Value_Usd - Entry_Cost_Usd, Share_Pct of all contracts held. Holders and Total_Contracts repeat the side's totals on every row. The issuer's own system address (which carries the supply as a negative balance) is not a holder and is left out. market is one side id (#<n>) from hyperliquid_prediction_market — the other side of the same answer is a different market. Returns up to limit holders (default 50, at most 500), largest Contracts first. Each row: Snapshot_Time, Market, Headline, Outcome, Side_Title, Trader, Contracts, On_Orders, Entry_Cost_Usd, Avg_Entry_Price, Price, Value_Usd, Unrealized_Pnl_Usd, Share_Pct, Holders, Total_Contracts.
    ConnectorOAuth
  • TOP Hyperliquid PREDICTION MARKETS (HIP-4 outcome markets) by traded volume over a window — "what are people betting on", "most active prediction markets", "find the market about X". NOT the answers and odds of one market → use hyperliquid_prediction_market. NOT who holds a side → use hyperliquid_prediction_holders. One row per market by its name (Headline). Market_Type is single (one yes/no market, Question_Id 0) or question (several answers, each a yes/no market of its own, Question_Id above 0). Market is an id to pass to hyperliquid_prediction_market: a single market's first side, or for a question the first side of its most traded answer. Volume_Usd and Fills count each fill once (taker side) and only trades between accounts: turning USDC into a pair of sides and back, and the payout at settlement, are not trades and are left out. Traders counts both sides; Outcomes_Traded is how many answers traded. Names are recorded on trades from 2026-10-30 08:24 UTC only: earlier trades are left out, so a window reaching before that time counts only the named part. query matches the Headline, case-insensitive substring. hours up to 720 (default 24). Returns up to limit markets (default 30, at most 200), largest Volume_Usd first (or by sort). Each row: Headline, Market_Type, Question_Id, Market, Outcomes_Traded, Volume_Usd, Fills, Traders, Last_Trade_Time.
    ConnectorOAuth
  • Hyperliquid: perps + spot trading, account state, orders, TWAP, leverage, withdrawals, account abstraction, and websocket data. Single-tool dispatch on `action`. Pass only the params listed below for each action; everything else is ignored. CHAIN MODEL — read this before describing deposits/withdrawals to a user: Hyperliquid is its OWN L1 trading venue. It is NOT "Hyperliquid on Arbitrum" and there is no "USDC on Hyperliquid (Arbitrum)" ticker. The bridge is the only link to Arbitrum: - FUND: send USDC on Arbitrum → your Hyperliquid deposit address (the address returned by get_deposit_address). That address lives on Arbitrum; Hyperliquid's L1 validators co-sign and credit the funds to your Hyperliquid account. - EXIT: action='withdraw_to_arbitrum' burns Hyperliquid USDC and the validators co-sign a payout to the SAME EOA on Arbitrum (flat $1 fee, ~5 min). Hyperliquid only accepts USDC, not USDT or USDC.e. Funding-from-INR routing is therefore: onramp INR → USDC on Polygon/BSC (Onramp.money supports those for USDC), bridge USDC → Arbitrum via Relay, then deposit USDC on Arbitrum to the Hyperliquid deposit address. Never tell the user to onramp to "USDC on Hyperliquid" or "USDC on Arbitrum (Hyperliquid)" — those phrases are wrong. PUBLIC DATA (no auth): get_all_mids — {}: map of asset symbol → mid price. get_market_metas — { kind?: 'all'|'perp'|'spot' (default 'all'), dex? }: 'all' returns asset contexts (funding rate, OI, mark/mid/oracle px, 24h vol, prevDayPx); 'perp' returns the perp universe (asset indices, name, szDecimals, maxLeverage, marginTableId, isDelisted) — call this before placing orders to look up indices and szDecimals; 'spot' returns spot universes/pairs and contexts (midPx, markPx, supplies, day volumes). get_perp_categories — {}: returns [[symbol, category], ...] for every HIP-3 (dex-prefixed) perp. Categories: 'crypto', 'stocks', 'commodities', 'indices', 'fx', 'preipo'. Symbols are dex-prefixed (e.g. 'xyz:NVDA', 'vntl:SPACEX', 'km:GOLD', 'flx:BTC', 'para:OTHERS'). Use for discovery — "list HIP-3 stock perps", "what FX HIP-3 perps exist", "show commodities", "what pre-IPO perps are listed" — without walking the whole metas universe. To place an order on one of these symbols, look it up in get_market_metas kind='perp' to get the asset index and szDecimals. get_l2_book — { coin }: L2 orderbook (bids/asks with px, sz, n). get_token_details — { tokenId }: spot token details (full hex hash from spot universe — e.g. "0xc1fb593aeffbeb02f85e0308e9956a90", not a simple number). get_candle_snapshot — { coin, interval, startTime, endTime? }: OHLCV candles. Intervals: 1m,3m,5m,15m,30m,1h,2h,4h,8h,12h,1d,3d,1w,1M. For HIP-3 spot prefix coin like "xyz:XYZ100". ACCOUNT (auth). Every user-scoped read below — get_account_summary, get_open_orders, get_historical_orders, get_order_status, get_user_fills, get_user_funding_history, get_twap_fills, get_user_abstraction, get_rate_limit — accepts an OPTIONAL `address` (0x-prefixed). When set, the call returns that address's data instead of the caller's. Omit it for the caller's own data. Use for watchlists / copy-trading / "show me what wallet X is doing" queries. Note: get_deposit_address is caller-only by design (depositing on someone else's behalf doesn't make sense). get_deposit_address — {}: returns the user's Hyperliquid deposit address. That address LIVES ON ARBITRUM — to fund Hyperliquid the user sends USDC on Arbitrum (not Polygon, not Ethereum, not USDT) to this address, and Hyperliquid validators credit their L1 account within ~minutes. get_account_summary — { view?: 'perp'|'all' (default 'perp') }: 'perp' returns the unified snapshot — clearinghouseState across the native dex AND every HIP-3 dex (xyz, flx, vntl, hyna, km, abcd, cash, para, …) with each dex's marginSummary/withdrawable/assetPositions, plus spotClearinghouseState (token balances) and userAbstraction in one response. So one call gets perp positions on every dex + spot — do NOT loop per-dex, and there is no separate 'spot' view (read `spotClearinghouseState` from the same response). 'all' is different: it returns the time-series portfolio (equity curve over windows), not a current snapshot. get_batch_portfolio_states — { users: string[] }: portfolio snapshot for ANY list of Hyperliquid addresses — NOT the caller's. Always against ALL_DEXES (native + every HIP-3 dex + spot per address). Use when the user wants to track/compare other traders ("watch wallet X", "compare these 3 addresses", leaderboard, copy-trading dashboard). One round-trip; fans out across dexes server-side. Do NOT loop get_account_summary; do NOT pass the caller's own address (use get_account_summary for that). `users` must be a non-empty array. Response shape: `{ successful_states: [[address, { clearinghouseState: { native, xyz, flx, … per dex }, spotClearinghouseState: { balances: [...] }, userAbstraction }], …], failed_wallets: string[] }` — successful_states is an array of [address, portfolio] tuples (NOT a dict), so iterate with `entry[0] = address, entry[1] = portfolio`. Check failed_wallets for any address that couldn't be fetched. get_rate_limit — {}: current API rate-limit window. ORDERS (auth): get_open_orders — { verbose? }: open orders (verbose=true adds origSz, triggerPx, triggerCondition, cloid, reduceOnly). get_historical_orders — {}: filled/cancelled/rejected orders with statusMsg, filledSz, avgFillPx. get_order_status — { oid }: status of a specific order. ⚠ REQUEST-SHAPE WARNING (most common MCP failure mode) — the request body uses Hyperliquid's SINGLE-LETTER field names. The human-readable shape (`coin` / `is_buy` / `sz` / `limit_px` / `order_type` / `reduce_only`) only appears in GET responses; the REQUEST side REJECTS those names. Sending them produces a confusing 500 ("Cannot read properties of undefined (reading 'limit')") because the validator reads `order.t.limit.tif`. ❌ WRONG (crashes): { "orders": [{ "coin": "xyz:NVDA", "is_buy": false, "sz": 0.052, "limit_px": 384.96, "order_type": { "limit": { "tif": "FrontendMarket" } }, "reduce_only": false }], "grouping": "na" } ✅ RIGHT: { "orders": [{ "a": 110012, "b": false, "s": "0.052", "p": "384.96", "t": { "limit": { "tif": "FrontendMarket" } }, "r": false, "szDecimals": 4 }], "grouping": "na" } ASSET INDEX (`a`) — compute, do NOT pass a coin symbol: • Main-DEX perps: a = index_in_meta (BTC=0, ETH=1, …; get from get_market_metas kind='perp') • HIP-3 perps: a = 100000 + perp_dex_index * 10000 + index_in_meta (xyz:NVDA: perp_dex_index=1, index_in_meta=12 → a=110012) • Spot pairs: a = 10000 + spotInfo.index (PURR/USDC: spotInfo.index=0 → a=10000; from get_market_metas kind='spot') • HIP-4 outcomes: a = 100_000_000 + (10 * outcome + side) (outcome=35 / side=Yes(1) → encoding 351 → a=100000351 — EIGHT zeros after the 1, NOT five — easy to miscount) Reference: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/asset-ids place_order — { orders: [{ a, b, p, s, r, t, c?, szDecimals }], grouping?: 'na'|'normalTpsl'|'positionTpsl' }: a = numeric asset index (see formula above). b = true(buy)/false(sell). p = price STRING ("65000"). s = size STRING in base-asset units. r = reduceOnly bool. c = optional cloid. szDecimals = size precision from get_market_metas — STRONGLY RECOMMENDED: when provided, the backend lot-rounds price/size to HL's rules before signing (matches the canonical form HL recovers the signer from). When omitted, the backend strips trailing zeros from the raw string; for whole-number sizes that's fine, but fractional sizes that don't already match HL's lot rules will sign at the rounded value, not what you intended. Pass szDecimals whenever you've read it from market metas. t = order type, EXACTLY ONE branch: • { "limit": { "tif": "Gtc" | "Ioc" | "Alo" | "FrontendMarket" } } — Gtc=resting, Ioc=cross-book (buy-now), Alo=post-only, FrontendMarket=stock-perp default for HIP-3 • { "trigger": { "isMarket": bool, "triggerPx": "string-or-number", "tpsl": "tp" | "sl" } } grouping = "na" (default) | "normalTpsl" (group TP/SL with primary) | "positionTpsl" (attach TP/SL to existing position). On "insufficient" errors the response carries `insufficientCollateral: [{ requiredAsset, dex, context, message }]` — the collateral asset is NOT always the same: native perps = USDC, HIP-4 outcomes = USDC, HIP-3 perps use the dex's `collateralToken` (per dex `meta`, usually USDC, occasionally USDH for a few dexes). Relay requiredAsset + message verbatim — if a HIP-3 dex asks for USDH, swap USDC → USDH on Hyperliquid spot (see "USDH SWAP" below) before retrying. HIP-4 outcome trades just need USDC. cancel_order — { cancels: [{ a, o }] }: a=numeric asset index (same formula), o=order id. modify_order — { oid, order: { a, b, p, s, r, t, c?, szDecimals } }: same shape as place_order order. USDH SWAP (USDC → USDH) — only for HIP-3 dexes whose collateralToken is USDH (NOT needed for HIP-4 outcomes, which use USDC): 1. get_market_metas kind='spot' → find the universe entry whose tokens reference USDH (commonly name 'USDH/USDC') → note its `index` AND the pair's szDecimals. 2. Compute a = 10000 + spotInfo.index. 3. place_order with { a, b: true, p: <USDH price ≈ "1.00">, s: <USDC amount as a decimal STRING, rounded to szDecimals>, r: false, t: { "limit": { "tif": "Ioc" } }, szDecimals }. Ioc fills immediately at or better than the limit. 4. Confirm: get_account_summary → look for coin='USDH' in spotClearinghouseState.balances. Same flow for any spot swap (USDC→HYPE, USDC→PURR, …) — only the pair differs. PRE-ORDER CHECKLIST (run BEFORE every place_order — especially HIP-3 / HIP-4): 1. get_account_summary to read `unifiedFreeUSDC = clearinghouseState.withdrawable + spotClearinghouseState.balances.USDC.total` and `userAbstraction`. 2. If userAbstraction ∈ {"default", "disabled"} AND clearinghouseState.withdrawable > 0, call set_user_abstraction { abstraction: "u" } first (one-shot, idempotent — surface as a notice, not a confirmation prompt). 3. HIP-3 perp: check the dex's collateralToken. If USDH and user has no USDH balance → run USDH SWAP first. 4. HIP-4 outcome: settles in USDC — same unifiedFreeUSDC check as native perps. No USDH, no swap. 5. Pull szDecimals from get_market_metas — required in the order payload for signature recovery. TWAP (auth): get_twap_fills — {}: per-slice executions. place_twap_order — { a, b, s, m, r?, t?, szDecimals? }: a=asset index, b=true/false, s=total size, m=duration minutes, r=reduceOnly, t=randomize-timing boolean (NOT the order-type object), szDecimals=optional size precision from get_market_metas (when passed the backend lot-rounds s). terminate_twap_order — { twapId, asset }. FILLS / FUNDING (auth): get_user_fills — { startTime?, endTime?, aggregateByTime? }: pass startTime to filter by time range; otherwise returns latest. get_user_funding_history — {}: funding payments (fundingRate, usdc amount, timestamp, position size). LEVERAGE / MARGIN (auth): update_leverage — { asset, leverage, isCross? }. update_isolated_margin — { asset, amount, isBuy }: positive amount adds, negative removes. WITHDRAWAL (auth): withdraw_to_arbitrum — { amount }: USDC to caller's own EVM address on Arbitrum (flat $1 fee, ~5 min finality). ACCOUNT ABSTRACTION (auth): get_user_abstraction — {}: returns 'unifiedAccount' | 'portfolioMargin' | 'disabled' | 'default' | 'dexAbstraction'. set_user_abstraction — { abstraction: 'u' }: switches to unifiedAccount (only supported mode; one-shot per wallet). WEBSOCKET: set_all_dexs_asset_ctxs_subscription — { subscribe }: toggle live allDexsAssetCtxs stream. get_all_dexs_asset_ctxs — {}: latest cached snapshot. Returns array indexed by asset position from get_market_metas — call that to map indices to names. get_ws_status — {}: { connected: boolean }. OUTCOMES (HIP-4 — Hyperliquid's prediction-market-style binary outcomes): Each outcome has two sides (No=0, Yes=1). Outcomes are grouped under questions; a question carries a fallbackOutcome plus a list of namedOutcomes. Collateral: HIP-4 outcomes settle in **USDC** — same as native perps. split/merge/negate burn or mint USDC, and buying/selling outcome share tokens via place_order debits/credits USDC. No USDH and no spot swap is needed (this changed — HIP-4 used to require USDH; it no longer does). On "insufficient" errors the response carries `insufficientCollateral: { requiredAsset: 'USDC', ... }` — relay that to the user. Asset-ID encoding (used by place_order, modify_order, cancel_order for outcome tokens): encoding = 10 * outcome + side (side ∈ {0, 1}) spot coin: "#<encoding>" token name: "+<encoding>" asset ID: 100_000_000 + encoding Example: outcome=1, side=1 (Yes) → encoding 11 → spot "#11" → asset ID 100000011. Actions: get_outcome_meta — {} (no auth): returns BOTH the raw upstream payload AND a partitioned, metadata-enriched presentation view — • outcomes / questions — raw arrays from HL (backward-compat). • binaryMarkets — standalone Yes/No outcomes NOT grouped under any question. Simple "Will X happen?" bets. Each carries { outcome, name, description, sideSpecs, metadata }. Trade via place_order with the outcome's asset ID; resolve via split / merge. • questionMarkets — questions that group N named outcomes sharing one quote pool, resolving mutually exclusively. Each entry expands { question, name, description, metadata, fallbackOutcome, fallbackOutcomeDetail, namedOutcomes, namedOutcomeDetails (each with its own metadata), settledNamedOutcomes, settledNamedOutcomeDetails } so you can render the question's children without re-joining. Resolve via merge_question / negate_outcome. • counts — { binary, question, totalOutcomes, totalQuestions }. ⚠ DISPLAY NAMES ARE RECYCLED — every BTC daily market is named "Recurring", every named outcome inside one is "Recurring Named Outcome", the fallback is "Recurring Fallback". DO NOT use `name` alone to render — it tells the user nothing. The real semantics live in `metadata` (parsed from the description's "key:value|key:value" form): • Binary: `metadata.class === 'priceBinary'` with { underlying, expiry: "YYYYMMDD-HHmm" UTC, targetPrice, period } → render as "Will <underlying> hit $<targetPrice> by <expiry formatted>? (<period>)". • Question: `metadata.class === 'priceBucket'` with { underlying, expiry, priceThresholds: "T1,T2,…", period }. The named outcomes have `metadata.index = "0"|"1"|…` which maps to bucket ranges defined by the parent's thresholds: index=0 → <underlying> < T1 index=k → T_k ≤ <underlying> < T_{k+1} index=N (last) → <underlying> ≥ T_N fallback (metadata.tag = "other") → settlement source unavailable / other • Other classes may exist (sports, elections, etc.) — surface metadata.class verbatim and any keys you recognize; fall back to raw `description` if nothing parses. Always present binaryMarkets and questionMarkets as TWO DISTINCT SECTIONS so a Yes/No bet isn't confused with a one-of-N question. Don't dump the flat outcomes array; route through the partitioned view. split_outcome — { outcome, outcomeAmount }: burn outcomeAmount quote tokens, mint outcomeAmount Yes + outcomeAmount No shares. outcomeAmount is a decimal string (e.g. "123.0"). merge_outcome — { outcome, outcomeAmount? }: burn outcomeAmount Yes + outcomeAmount No → mint outcomeAmount quote. Omit outcomeAmount (or pass null) for max. merge_question — { question, outcomeAmount? }: burn outcomeAmount Yes shares of every named outcome of the question → mint outcomeAmount quote. Omit/null for max. negate_outcome — { question, outcome, outcomeAmount }: burn outcomeAmount No shares of one outcome → mint outcomeAmount Yes shares of every OTHER outcome of the same question.
    ConnectorOAuth
  • The LARGEST OPEN POSITIONS on a Hyperliquid perpetual (or across the exchange) with entry price, leverage, margin mode, unrealized PnL and funding since open — "who holds the biggest BTC shorts", "whales under water", "largest leveraged longs". NOT the long / short totals → use hyperliquid_market_positioning. NOT one account's whole book → use hyperliquid_trader_portfolio. Read from the newest complete snapshot of the exchange state (taken about every 12 minutes), so every account's position is there, not only the ones that traded. One row per position: Trader, Market, Side, Size (signed: negative = short), Entry_Price, Mark_Price, Value_Usd (at the mark), Unrealized_Pnl_Usd, Return_On_Margin_Pct (= Unrealized_Pnl_Usd / Margin_Used_Usd), Leverage, Is_Cross (1 cross margin, 0 isolated), Margin_Used_Usd, Funding_Since_Open_Usd and Funding_All_Time_Usd (signed: + received, - paid), Is_Vault with Vault_Name when the account is a vault. market empty = every perpetual of the exchange; side long / short narrows it; min_usd drops small positions. Returns up to limit positions (default 50, at most 500), largest Value_Usd first. Each row: Snapshot_Time, Trader, Market, Side, Size, Entry_Price, Mark_Price, Value_Usd, Unrealized_Pnl_Usd, Return_On_Margin_Pct, Leverage, Is_Cross, Margin_Used_Usd, Funding_Since_Open_Usd, Funding_All_Time_Usd, Is_Vault, Vault_Name.
    ConnectorOAuth
  • ANSWERS, SIDES and current ODDS of ONE Hyperliquid prediction market (HIP-4) — "what are the odds that X", "who is the favourite", the order book of each answer. NOT a ranking of markets → use hyperliquid_prediction_markets. NOT who holds a side → use hyperliquid_prediction_holders. Read from the newest complete snapshot of the exchange state (taken about every 12 minutes). One row per side: a single market has one answer with two sides; a question has several answers (Outcome), each with two sides, plus a fallback answer (Is_Fallback = 1, usually "Other") that resolves when no listed answer does. Market is the side's own id (#<n>), Side 0 or 1, Side_Title its name — Yes / No, Over / Under or team codes, never assume Yes / No. Prices are 0..1 and read as a probability: Best_Bid, Best_Ask, Mid_Price (both quotes present), Last_Price, and Probability_Pct = Mid_Price, else Last_Price, x 100. A side that has never traded can show a Last_Price of 0.5 with no orders — check Book_Orders and Volume_24h_Usd before reading it as odds. Holders and Contracts (outstanding contracts of the side) come from the same snapshot; Volume_24h_Usd counts each trade once (taker side), leaving out the turning of USDC into a pair of sides and back and the settlement payout. market is one side id from hyperliquid_prediction_markets (#<n>; any side of any answer expands to the whole question) or a name substring (every market whose Headline contains it). Returns up to limit sides (default 100, at most 500), by Headline, answer and Side. Each row: Snapshot_Time, Headline, Question_Id, Is_Settled, Outcome_Id, Outcome, Is_Fallback, Market, Side, Side_Title, Best_Bid, Best_Ask, Mid_Price, Last_Price, Probability_Pct, Book_Orders, Holders, Contracts, Volume_24h_Usd.
    ConnectorOAuth
  • Get Hyperliquid perpetual futures trader leaderboard with performance metrics. Returns: Trader performance rankings as markdown. Columns returned: - **Address** / **Label**: trader wallet, and its Nansen label if any - **Total PnL** (USD): realized + unrealized over the date range - **Realized PnL** (USD): net, from positions closed in the range. Being a net total it shows no per-trade outcome, so no win rate can be derived from it or any other column here - **Unrealized PnL** (USD): on positions still open, at the current mark price - **ROI** (%): Total PnL / (traded notional + open notional) — PnL per dollar traded, not return on capital - **Volume** (USD): traded notional; both fills of a position count - **Trades**: number of fills - **Account Value** (USD): only available for the top 500K traders This is an overview of top traders and their headline stats. For a trader's open positions, call `address_portfolio` with `mode='hyperliquid'`. **Sorting**: total_pnl, realized_pnl_usd, unrealized_pnl_usd, roi, volume_usd, total_trades, account_value **Filtering** (from/to): totalPnl (USD), accountValue (USD), roi (a fractional ratio, not the percent shown — pass 0.1 for "10% or better", not 10) Example: ``` { "date": {"from": "7D_AGO", "to": "NOW"}, "accountValue": {"from": 100000, "to": 1000000}, "totalPnl": {"from": 10000}, "order_by": "total_pnl", "orderByDirection": "DESC" } ``` Rank by traded volume instead: `"order_by": "volume_usd"` Notes: - Hyperliquid perpetual futures only - Dates use UTC calendar boundaries, not rolling timestamps. Calendar end dates retain the next-day API boundary. - Null/empty means data is not available — do not read it as zero
    ConnectorNo auth
  • Get Hyperliquid perpetual futures trader leaderboard with performance metrics. Returns: Trader performance rankings as markdown. Columns returned: - **Address** / **Label**: trader wallet, and its Nansen label if any - **Total PnL** (USD): realized + unrealized over the date range - **Realized PnL** (USD): net, from positions closed in the range. Being a net total it shows no per-trade outcome, so no win rate can be derived from it or any other column here - **Unrealized PnL** (USD): on positions still open, at the current mark price - **ROI** (%): Total PnL / (traded notional + open notional) — PnL per dollar traded, not return on capital - **Volume** (USD): traded notional; both fills of a position count - **Trades**: number of fills - **Account Value** (USD): only available for the top 500K traders This is an overview of top traders and their headline stats. For a trader's open positions, call `address_portfolio` with `mode='hyperliquid'`. **Sorting**: total_pnl, realized_pnl_usd, unrealized_pnl_usd, roi, volume_usd, total_trades, account_value **Filtering** (from/to): totalPnl (USD), accountValue (USD), roi (a fractional ratio, not the percent shown — pass 0.1 for "10% or better", not 10) Example: ``` { "date": {"from": "7D_AGO", "to": "NOW"}, "accountValue": {"from": 100000, "to": 1000000}, "totalPnl": {"from": 10000}, "order_by": "total_pnl", "orderByDirection": "DESC" } ``` Rank by traded volume instead: `"order_by": "volume_usd"` Notes: - Hyperliquid perpetual futures only - Dates use UTC calendar boundaries, not rolling timestamps. Calendar end dates retain the next-day API boundary. - Null/empty means data is not available — do not read it as zero
    ConnectorNo auth
  • ACTIONS the exchange REJECTED — leverage changes, margin top-ups, transfers, referral and scheduled-cancel settings, agent approvals — with the exchange's own reason text. These never reach any trade or order feed: a rejected updateLeverage or updateIsolatedMargin simply vanishes elsewhere. Use for "why can't this account change leverage", bot diagnostics beyond order placement, abuse patterns (referral self-referrals, scheduled-cancel limits). NOT rejected ORDERS — those are hyperliquid_order_flow (status codes like iocCancelRejected, badAloPxRejected). On-chain source — reconstructed from the signed actions in the blocks. trader set: one row per rejected action of that account, newest first — Time, Action_Type, Reason, Signer (the API wallet that signed, if different), Tx. trader empty: totals per Action_Type — Rejections, Accounts, Top_Reasons. Order placements and cancellations are excluded here on purpose (they are order rejections). Kept for about 7 days — hours up to 168 (default 24).
    ConnectorOAuth
  • REVENUE and flow of the ECOSYSTEM around Hyperliquid — the BUILDERS (front-ends, bots and apps that route orders and take a builder fee) and the HIP-3 DEPLOYERS (the third-party venues that list their own perpetual markets, prefixed like xyz:NFLX, and take a deployer fee). Use for "which apps drive Hyperliquid volume", "how much does builder X earn", "biggest HIP-3 venues", ecosystem and competitive analysis. NOT trader rankings (hyperliquid_top_traders), NOT markets (hyperliquid_markets). group_by = builder (default): one row per builder address — Fills, Traders, Volume_Usd, Builder_Fee_Usd, Markets. group_by = deployer: one row per HIP-3 venue (Deployer = the market-id prefix) — Markets, Fills, Traders, Volume_Usd, Deployer_Fee_Usd. Volume counts each fill once (taker side). Fees are what the builder / deployer received, in USDC. window_hours up to 720.
    ConnectorOAuth
  • OHLCV candle SERIES for ONE Hyperliquid market — for charts, volatility, "how did X move today". NOT a single current price (hyperliquid_price). Bars of 1, 5, 15 or 60 minutes, built from every fill on the exchange (taker side, so volume is not doubled). Volume is in base units of the market (BTC for BTC); Volume_Usd = sum of bar volume x close, an approximation. market is the exact market id from hyperliquid_markets (BTC, xyz:NFLX, @107, #<n>). interval = 1m | 5m | 15m | 1h. Bars are returned newest first, up to limit, ending at before_time (empty = now) — pass the oldest Time of a page as before_time to page back. History reaches back about three weeks; a bar with no fills is simply absent (no zero-fill).
    ConnectorOAuth
  • HOURLY funding-rate and open-interest HISTORY of ONE Hyperliquid perpetual — for "how has BTC funding moved this week", cost-of-carry, crowding over time. NOT the cross-market snapshot (hyperliquid_open_interest), NOT a price series (hyperliquid_candles). One row per hourly settlement: Funding_Rate (per hour, signed: positive = longs pay), Funding_Apr_Pct, Open_Interest (one side, base units), Long_Positions / Short_Positions, Long_Accounts_Pct (share of accounts that are long), Funding_Paid_Usd (gross paid by the paying side; zero-sum across accounts), Payers / Receivers, Implied_Price. Newest first. Spot and outcome markets have no funding.
    ConnectorOAuth