Skip to main content
Tools served on Main come first. Tools marked with other surfaces only are not available on Main. See the changelog for how this catalog changed.

analyze_market

Analyzing the market Available on: Main, Grok and ?profile=all, Computer, Computer support mode Bring Liquid’s powerful market intelligence into the conversation: real-time prices, funding, and proprietary positioning insights in one place. PRIMARY TOOL for any question about a specific tradeable asset on Liquid. Use this whenever the user asks about an asset’s price, outlook, positioning, sentiment, what an asset is doing, how traders are positioned, or wants analysis on a particular market. Liquid covers equities (TSLA, AAPL, NVDA), commodities (GOLD, SILVER, CL for WTI crude, BRENT for Brent crude), indices (SP500), crypto (BTC, ETH, SOL), and more. If the result requires an asset choice, ask the user which candidate they mean and retry with its exact symbol. Returns real-time Liquid price, funding, OI, and positioning data, including the smart-money (profitable traders) vs losing-crowd long/short split when available. Do NOT use search_markets when the user asks about a specific known asset — use analyze_market instead. After presenting the analysis, offer in your own reply to turn it into a trade (a paper trade when paper trading is active; otherwise mention they can paper trade risk-free with $10k simulated funds, or deposit and trade for real). Do NOT call suggest_trade until the user says yes.
  • symbol (string, required): Asset symbol for positioning data. Use the Liquid market symbol directly, e.g. BTC, ETH, HYPE, GOLD.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

get_positioning_pulse

Checking positioning pulse Available on: Main, Grok and ?profile=all, Computer, Computer support mode Uncover crowded trades and contrasting trader views with a market-wide cohort-bias snapshot across Liquid markets with positioning data coverage. Returns the most one-sided assets split into long-heavy and short-heavy buckets, with notional, position count, and the smart-money vs losing-crowd split (profitable vs unprofitable pnl cohorts) — a wide gap where winners fade the crowd is the strongest contrarian signal. Use in the /markets flow BEFORE market_picks to ground picks in actual positioning, or when the user asks ‘what’s crowded?’, ‘what are traders long/short?’, or wants a contrarian setup. Do NOT call for single-asset queries — use analyze_market instead.
  • limit (integer, optional; minimum 1; maximum 20): Max rows per bucket (long-heavy and short-heavy).
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

market_picks

Picking markets Available on: Main, Grok and ?profile=all, Computer, Computer support mode Bring market catalysts to life with 5 news-driven trade picks (at least 1; fewer only when fewer catalysts qualify) as interactive cards. ONLY call this as the final step of the /markets command flow, after calling get_news(), search_markets(), and get_positioning_pulse(). Do NOT call for single-asset queries — use analyze_market instead. Each pick: asset, direction, news catalyst, reasoning — weight reasoning with the positioning pulse (contrarian vs. crowded) and the unusual-activity section from get_news. After presenting the picks, ask in your own reply which pick the user would like to trade (paper trade when paper trading is active; otherwise mention they can paper trade risk-free with $10k simulated funds, or deposit and trade for real). Do NOT call suggest_trade until the user chooses one.
  • picks (array, required; minItems 1; maxItems 5): 1 to 5 trade picks
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

analyze_markets_batch

Comparing markets Available on: Main, Grok and ?profile=all, Computer, Computer support mode Put 2–10 markets side-by-side for a rich comparison of price, funding, and positioning. Use when the user asks about more than one asset at once (e.g. ‘how are BTC, ETH, and SOL looking?’, ‘compare gold to oil’, ‘show me my watchlist’). Returns a short text summary plus a multi-market widget. For deep single-asset analysis still use analyze_market. Inputs on Main and Grok and ?profile=all:
  • symbols (array, required; minItems 2; maxItems 10): Between 2 and 10 asset symbols (e.g. [‘BTC’,‘ETH’,‘SOL’]).
  • thesis (string, optional): One-sentence framing for why these markets are being compared together (e.g. ‘risk-on basket ahead of CPI’, ‘pre-earnings watchlist’). Renders prominently in the widget — supply when there’s a coherent reason these assets are grouped.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer and Computer support mode:
  • symbols (array, required; minItems 2; maxItems 10): Between 2 and 10 asset symbols (e.g. [‘BTC’,‘ETH’,‘SOL’]).
  • thesis (string, optional): One-sentence framing for why these markets are being compared together (e.g. ‘risk-on basket ahead of CPI’, ‘pre-earnings watchlist’).
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

suggest_trade

Suggesting a trade Available on: Main, Grok and ?profile=all, Computer Bring a data-backed trade idea straight into a clear, interactive confirmation widget. When your analysis concludes with a specific directional trade (asset + side + size), call this tool to render a confirmation card instead of writing the parameters in prose or a markdown table. Only call when you have a concrete, data-backed trade recommendation — always call analyze_market first to gather data. Requires: asset, side, leverage, orderType, size, reasoning. TP/SL optional. For limit orders you may set timeInForce (gtc default, ioc, or alo/post-only). The user must press Confirm to execute — a suggestion is NOT an execution. Do NOT call on purely informational queries. ‘No trade’ is a valid position. PREREQUISITE: call get_portfolio first to check available_balance. size is notional exposure, NOT collateral — the required collateral is size / leverage. Refuse to suggest only if available_balance is less than size / leverage (the required collateral); e.g. a $600 order at 3x needs $200 collateral and is valid on a $300 account. Tell the user they need to fund their account first via the deposit flow.
  • asset (string, required): Liquid asset identifier. Examples: BTC, ETH, GOLD.
  • leverage (number, required; exclusiveMinimum 0): Proposed leverage
  • orderType (string, required; one of "market", "limit"): Order type
  • reasoning (string, required): Brief 1-sentence explanation
  • side (string, required; one of "long", "short"): Trade direction
  • size (number, required; exclusiveMinimum 0): Order size as a USD notional dollar amount (collateral × leverage) — NOT a quantity of coins/contracts. E.g. 250 means $250 of exposure, not 250 units. Minimum $10 collateral × leverage. Always pass this as notional at your requested leverage, even when sizeBasis is ‘margin’ (e.g. $300 margin at 3x leverage is size=900, not size=300) — sizeBasis never converts this value for you. (e.g. $50 at 5x, $100 at 10x).
  • limitPrice (number, optional; exclusiveMinimum 0): Limit price (required if orderType is limit)
  • markPrice (number, optional; exclusiveMinimum 0): Current mark price from market_data
  • sizeBasis (string, optional; one of "margin", "notional"): size must already be the notional dollar amount computed at requestedLeverage regardless of this field — sizeBasis does NOT convert a margin/collateral number into notional for you (compute notional yourself as margin × requestedLeverage before calling). This only controls what gets preserved if the venue ends up using a different leverage than requestedLeverage (e.g. inheriting an existing position’s leverage, or a leverage cap): ‘notional’ keeps size’s dollar exposure fixed and recomputes margin; ‘margin’ keeps the margin implied by size/requestedLeverage fixed and recomputes notional at the new leverage. Defaults to notional.
  • stopLoss (number, optional; exclusiveMinimum 0): Stop loss price
  • takeProfit (number, optional; exclusiveMinimum 0): Take profit price
  • timeInForce (string, optional; one of "gtc", "ioc", "alo"): Time-in-force for limit orders: ‘gtc’ rests on the book until filled or cancelled (default), ‘ioc’ fills whatever is immediately available and cancels the remainder, ‘alo’ is post-only / add-liquidity-only (rejected instead of taking liquidity). Ignored for market orders.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

suggest_order

Suggesting a paper order Available on: Main, Grok and ?profile=all, Computer Prepare a paper-only order review link in Liquid after checking market and account context. This tool never places an order and cannot choose live mode. Paper trading mode must already be active for your wallet. Review the prefilled order in Liquid and confirm paper mode before placing it. Size is notional USD; sizeBasis preserves the user’s intended collateral or notional when leverage changes.
  • asset (string, required): Liquid asset identifier. Examples: BTC, ETH, GOLD.
  • leverage (number, required; exclusiveMinimum 0): Proposed leverage
  • orderType (string, required; one of "market", "limit"): Order type
  • reasoning (string, required): Brief 1-sentence explanation
  • side (string, required; one of "long", "short"): Trade direction
  • size (number, required; exclusiveMinimum 0): Order size as a USD notional dollar amount (collateral × leverage) — NOT a quantity of coins/contracts. E.g. 250 means $250 of exposure, not 250 units. Minimum $10 collateral × leverage. Always pass this as notional at your requested leverage, even when sizeBasis is ‘margin’ (e.g. $300 margin at 3x leverage is size=900, not size=300) — sizeBasis never converts this value for you. (e.g. $50 at 5x, $100 at 10x).
  • limitPrice (number, optional; exclusiveMinimum 0): Limit price (required if orderType is limit)
  • markPrice (number, optional; exclusiveMinimum 0): Current mark price from market_data
  • sizeBasis (string, optional; one of "margin", "notional"): size must already be the notional dollar amount computed at requestedLeverage regardless of this field — sizeBasis does NOT convert a margin/collateral number into notional for you (compute notional yourself as margin × requestedLeverage before calling). This only controls what gets preserved if the venue ends up using a different leverage than requestedLeverage (e.g. inheriting an existing position’s leverage, or a leverage cap): ‘notional’ keeps size’s dollar exposure fixed and recomputes margin; ‘margin’ keeps the margin implied by size/requestedLeverage fixed and recomputes notional at the new leverage. Defaults to notional.
  • stopLoss (number, optional; exclusiveMinimum 0): Stop loss price
  • takeProfit (number, optional; exclusiveMinimum 0): Take profit price
  • timeInForce (string, optional; one of "gtc", "ioc", "alo"): Time-in-force for limit orders: ‘gtc’ rests on the book until filled or cancelled (default), ‘ioc’ fills whatever is immediately available and cancels the remainder, ‘alo’ is post-only / add-liquidity-only (rejected instead of taking liquidity). Ignored for market orders.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true

execute_order

Executing your order Available on: Main, Grok and ?profile=all, Computer, Computer support mode Execute a previously suggested order after user confirmation. This is called by the order confirmation widget — do not call directly. Confirmed by the user; call with confirmed=true after explicit approval. Inputs on Main:
  • side (string, required; one of "buy", "sell")
  • symbol (string, required): Asset symbol, e.g. BTC, ETH, xyz:GOLD
  • aiAttribution (object, optional)
  • confirmed (boolean, optional): Must be true to execute. Missing or false is rejected as an error — this tool has no preview mode; use suggest_trade for that.
  • executionMode (string, optional; one of "paper", "live"): Trading mode of the reviewed confirmation. Copy it unchanged from the proposal; missing or changed mode requires a new proposal.
  • idempotencyKey (string, optional; minLength 1; maxLength 128): Optional. Set by the confirmation widget once per card so a retried Confirm click (after a network/timeout error where the order may already have executed) is rejected as a duplicate instead of placing a second order. Do not set this directly.
  • leverage (number, optional; exclusiveMinimum 0): Leverage multiplier (e.g. 5). Required unless reduceOnly is true — a reduce-only order does not change leverage.
  • maxSlippageBps (integer, optional; minimum 1; maximum 500): Optional max slippage in basis points (1-500) for market orders. The order is sent as an immediate-or-cancel limit at the current mid plus or minus this many bps; anything that cannot fill within it is cancelled. If it only partly fills, attached TP/SL is not placed; set it with execute_tpsl.
  • price (number, optional; exclusiveMinimum 0): Limit price. Required when type is ‘limit’.
  • quantity (number, optional; exclusiveMinimum 0): Exact order quantity in base-asset units (e.g. 0.25 BTC) — an alternative to size. On a limit order the placed quantity is exact; on a market order it is converted at the current price. When both size and quantity are present, quantity takes precedence.
  • reasoning (string, optional): One-sentence rationale for this order
  • reduceOnly (boolean, optional): When true the order can only reduce or close an existing position — it can never open or increase one. Use for partial take-profit exits, e.g. side=sell, type=limit, price=<target>, quantity=<coins to close>, reduceOnly=true. Cannot be combined with tp or sl.
  • requestedLeverage (number, optional; exclusiveMinimum 0)
  • size (number, optional; exclusiveMinimum 0): Order size as a USD notional dollar amount (collateral × leverage) — NOT a quantity of coins/contracts. E.g. 250 means $250 of exposure, not 250 units. Minimum $10 collateral × leverage. Always pass this as notional at your requested leverage, even when sizeBasis is ‘margin’ (e.g. $300 margin at 3x leverage is size=900, not size=300) — sizeBasis never converts this value for you. Required unless quantity is provided.
  • sl (number, optional; exclusiveMinimum 0): Stop-loss trigger price
  • timeInForce (string, optional; one of "gtc", "ioc", "alo"): Time-in-force for limit orders: ‘gtc’ rests on the book until filled or cancelled (default), ‘ioc’ fills whatever is immediately available and cancels the remainder, ‘alo’ is post-only / add-liquidity-only (rejected instead of taking liquidity). Ignored for market orders.
  • tp (number, optional; exclusiveMinimum 0): Take-profit trigger price
  • type (string, optional; one of "market", "limit")
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Grok and ?profile=all:
  • side (string, required; one of "buy", "sell")
  • symbol (string, required): Asset symbol, e.g. BTC, ETH, xyz:GOLD
  • aiAttribution (object, optional)
  • confirmed (boolean, optional): Must be true to execute. Missing or false is rejected as an error — this tool has no preview mode; use suggest_trade for that.
  • executionMode (string, optional; one of "paper", "live"): Trading mode of the reviewed confirmation. Copy it unchanged from the proposal; missing or changed mode requires a new proposal.
  • idempotencyKey (string, optional; minLength 1; maxLength 128): Opaque key for this exact confirmed action. Generate one key and retain it for reconciliation and any safe retry; never invent a different key to repeat an uncertain result or bypass deduplication. Changed terms require a new review, confirmation and key.
  • leverage (number, optional; exclusiveMinimum 0): Leverage multiplier (e.g. 5). Required unless reduceOnly is true — a reduce-only order does not change leverage.
  • maxSlippageBps (integer, optional; minimum 1; maximum 500): Optional max slippage in basis points (1-500) for market orders. The order is sent as an immediate-or-cancel limit at the current mid plus or minus this many bps; anything that cannot fill within it is cancelled. If it only partly fills, attached TP/SL is not placed; set it with execute_tpsl.
  • price (number, optional; exclusiveMinimum 0): Limit price. Required when type is ‘limit’.
  • quantity (number, optional; exclusiveMinimum 0): Exact order quantity in base-asset units (e.g. 0.25 BTC) — an alternative to size. On a limit order the placed quantity is exact; on a market order it is converted at the current price. When both size and quantity are present, quantity takes precedence.
  • reasoning (string, optional): One-sentence rationale for this order
  • reduceOnly (boolean, optional): When true the order can only reduce or close an existing position — it can never open or increase one. Use for partial take-profit exits, e.g. side=sell, type=limit, price=<target>, quantity=<coins to close>, reduceOnly=true. Cannot be combined with tp or sl.
  • requestedLeverage (number, optional; exclusiveMinimum 0)
  • size (number, optional; exclusiveMinimum 0): Order size as a USD notional dollar amount (collateral × leverage) — NOT a quantity of coins/contracts. E.g. 250 means $250 of exposure, not 250 units. Minimum $10 collateral × leverage. Always pass this as notional at your requested leverage, even when sizeBasis is ‘margin’ (e.g. $300 margin at 3x leverage is size=900, not size=300) — sizeBasis never converts this value for you. Required unless quantity is provided.
  • sl (number, optional; exclusiveMinimum 0): Stop-loss trigger price
  • timeInForce (string, optional; one of "gtc", "ioc", "alo"): Time-in-force for limit orders: ‘gtc’ rests on the book until filled or cancelled (default), ‘ioc’ fills whatever is immediately available and cancels the remainder, ‘alo’ is post-only / add-liquidity-only (rejected instead of taking liquidity). Ignored for market orders.
  • tp (number, optional; exclusiveMinimum 0): Take-profit trigger price
  • type (string, optional; one of "market", "limit")
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer:
  • side (string, required; one of "buy", "sell"): buy opens/increases a long; sell opens/increases a short.
  • symbol (string, required): Liquid asset identifier. Examples: BTC, ETH, GOLD.
  • idempotencyKey (string, optional; minLength 1; maxLength 128): Opaque key for this exact confirmed action. Generate one key and retain it for reconciliation and any safe retry; never invent a different key to repeat an uncertain result or bypass deduplication. Changed terms require a new review, confirmation and key.
  • leverage (number, optional): Leverage multiplier for the order. Required unless reduceOnly — a reduce-only order never changes leverage.
  • price (number, optional): Limit price. Required when type=limit.
  • quantity (number, optional): Exact order quantity in coin units (e.g. 0.25 BTC) — an alternative to size. On a limit order the placed quantity is exact; on a market order it converts at the current price. When both are present quantity wins.
  • reduceOnly (boolean, optional): When true the order can only reduce or close an existing position — it can never open or increase one. Cannot be combined with tp or sl.
  • requestedLeverage (number, optional): Must equal leverage when present; execution never silently changes approved leverage.
  • size (number, optional): Notional size in USD (= collateral × leverage). Required unless quantity is provided.
  • sl (number, optional): Optional stop-loss trigger price. Cannot be combined with reduceOnly — set position protection with execute_tpsl.
  • tp (number, optional): Optional take-profit trigger price. Cannot be combined with reduceOnly — set position protection with execute_tpsl.
  • type (string, optional; one of "market", "limit"): Order type. Defaults to market.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer support mode:
  • leverage (number, required): Leverage multiplier for the order.
  • side (string, required; one of "buy", "sell"): buy opens/increases a long; sell opens/increases a short.
  • size (number, required): Notional size in USD (= collateral × leverage).
  • symbol (string, required): Liquid asset identifier. Examples: BTC, ETH, GOLD.
  • price (number, optional): Limit price. Required when type=limit.
  • requestedLeverage (number, optional): Must equal leverage when present; execution never silently changes approved leverage.
  • sl (number, optional): Optional stop-loss trigger price.
  • tp (number, optional): Optional take-profit trigger price.
  • type (string, optional; one of "market", "limit"): Order type. Defaults to market.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false Example call:

modify_position

Modifying your position Available on: Main, Grok and ?profile=all, Computer Fine-tune an existing position with clear take-profit and stop-loss controls — add, modify, or remove TP/SL levels. Use when the user wants to set, change, or remove stop loss or take profit on an open position. Do NOT use this to close a position — there is no direct close tool. To close a position, call get_portfolio and let the user press the Close button on the portfolio widget. Call get_portfolio first to get current position details (side, size, liquidation price). Renders a confirmation widget — the user must press Confirm to execute.
  • action (string, required; one of "add_tpsl", "modify_tpsl", "remove_tpsl"): Position modification action (synonyms like ‘add’, ‘update’, ‘remove’ are accepted).
  • asset (string, required): Coin field from market_data or portfolio
  • positionSide (string, required; one of "long", "short"): Direction of existing position
  • positionSize (number, required): Asset quantity in the position
  • reasoning (string, required): Brief 1-sentence explanation
  • currentPrice (number, optional): Current mark price
  • liquidationPrice (number, optional): Liquidation price from portfolio
  • removeSL (boolean, optional): True to remove SL (action=remove_tpsl)
  • removeTP (boolean, optional): True to remove TP (action=remove_tpsl)
  • sizeBasis (string, optional; one of "margin", "notional"): The quantity the user named: margin/collateral or notional exposure. Size is always submitted as notional; margin preserves size/requested leverage if leverage changes. Defaults to notional.
  • stopLoss (number, optional): Stop loss price
  • takeProfit (number, optional): Take profit price
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true

execute_tpsl

Setting take-profit / stop-loss Available on: Main, Grok and ?profile=all, Computer, Computer support mode Confirmed by the user; call with confirmed=true after explicit approval. Inputs on Main and Grok and ?profile=all:
  • action (string, optional)
  • asset (string, optional)
  • confirmed (boolean, optional): Must be true to apply. Missing or false is rejected as an error — this tool has no preview mode; use modify_position for that.
  • executionMode (string, optional; one of "paper", "live"): Trading mode of the reviewed confirmation. Copy it unchanged from the proposal; missing or changed mode requires a new proposal.
  • positionSide (string, optional; one of "long", "short")
  • reasoning (string, optional)
  • removeSL (boolean, optional)
  • removeTP (boolean, optional)
  • sl (number, optional)
  • symbol (string, optional)
  • tp (number, optional)
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer and Computer support mode:
  • symbol (string, required): Liquid asset identifier. Examples: BTC, ETH, GOLD.
  • action (string, optional)
  • asset (string, optional)
  • positionSide (string, optional; one of "long", "short")
  • reasoning (string, optional)
  • removeSL (boolean, optional): True cancels the position’s stop-loss trigger orders. Cannot be combined with sl.
  • removeTP (boolean, optional): True cancels the position’s take-profit trigger orders. Cannot be combined with tp.
  • sl (number, optional): Stop-loss trigger price.
  • tp (number, optional): Take-profit trigger price.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false Example call:

close_position

Closing your position Available on: Main, Grok and ?profile=all, Computer, Computer support mode To close or reduce a position, call get_portfolio — the portfolio widget has Reduce and Close controls. Confirmed by the user; call with confirmed=true after explicit approval. Inputs on Main and Grok and ?profile=all:
  • symbol (string, required): Market symbol, e.g. BTC-PERP
  • aiAttribution (object, optional)
  • confirmed (boolean, optional): True to execute. Omit or false to preview.
  • percent (number, optional; maximum 100; exclusiveMinimum 0): Partial close as a percentage of the current position size (0-100], resolved server-side against the live position size and the venue’s lot precision. 100 closes the whole position.
  • reasoning (string, optional)
  • size (number, optional; exclusiveMinimum 0): Partial close size in coin units (omit for full close)
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer and Computer support mode:
  • symbol (string, required): Liquid asset identifier. Examples: BTC, ETH, GOLD.
  • size (number, optional; exclusiveMinimum 0): Partial close size in coin units (omit for full close)
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false Example call:

close_positions_batch

Closing positions Available on: Main, Grok and ?profile=all, Computer Close one, some, or all currently open positions through a selectable confirmation widget. Call with confirmed=false or omit confirmed to preview the open positions that can be closed. Only call with confirmed=true after the user explicitly confirms which positions to close. Omitting symbols and closes on confirmed=true closes every open position in full; passing symbols closes only those selected positions in full. To close specific positions — including partial closes — pass closes with an optional per-position size (coin units) or percent; the preview reconciles every open position (included/excluded, requested vs resolved quantity after venue rounding, expected remainder). This uses the same Liquid close-position execution flow as the per-position close widget for each selected position.
  • aiAttribution (object, optional)
  • closes (array, optional; minItems 1): Per-position close requests with optional partial sizing. When provided, only the listed positions are closed and symbols is ignored; must contain at least one entry. Positions not listed are excluded and enumerated as such in the preview.
  • confirmed (boolean, optional): True to execute. Omit or false to preview.
  • symbols (array, optional): Internal: symbols selected in the confirmation widget. Omit or empty to close every open position. Ignored when closes is provided.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false Example call:

suggest_trades_batch

Suggesting a basket trade Available on: Main, Grok and ?profile=all, Computer Bring a multi-trade idea together: propose 2–8 related trades as one easy-to-review basket with a single Place-all button. Use ONLY when the user explicitly asks for multiple trades at once (e.g. ‘long BTC and short ETH’, ‘open my pairs trade’, ‘execute the basket’). For a single trade always use suggest_trade. PREREQUISITE: call get_portfolio first and verify available_balance covers the SUM of each trade’s required collateral (size / leverage per trade), NOT the sum of notionals. Each trade is validated independently — invalid trades are rejected with a clear reason. The user MUST press Place all to execute. A suggestion is NOT an execution.
  • thesis (string, required): One-sentence basket-level thesis (why these trades together)
  • trades (array, required; minItems 2; maxItems 8): Between 2 and 8 trades to propose as a basket.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

execute_orders_batch

Placing basket orders Available on: Main, Grok and ?profile=all, Computer, Computer support mode Executes a list of orders sequentially, collecting per-order results. Confirmed by the user; call with confirmed=true after explicit approval. Inputs on Main:
  • orders (array, required; minItems 1; maxItems 8)
  • confirmed (boolean, optional): Must be true to execute. Missing or false is rejected as an error — this tool has no preview mode; use suggest_trades_batch for that.
  • executionMode (string, optional; one of "paper", "live"): Trading mode of the reviewed confirmation. Copy it unchanged from the proposal; missing or changed mode requires a new proposal.
  • idempotencyKey (string, optional; minLength 1; maxLength 128): Optional. Set by the confirmation widget once per basket card so a retried Place All click (after a network/timeout error where some legs may already have executed) is rejected leg by leg as a duplicate instead of resubmitting them. Do not set this directly.
  • thesis (string, optional): Basket-level thesis from the confirmation widget. Used only for attribution metadata.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Grok and ?profile=all:
  • orders (array, required; minItems 1; maxItems 8)
  • confirmed (boolean, optional): Must be true to execute. Missing or false is rejected as an error — this tool has no preview mode; use suggest_trades_batch for that.
  • executionMode (string, optional; one of "paper", "live"): Trading mode of the reviewed confirmation. Copy it unchanged from the proposal; missing or changed mode requires a new proposal.
  • idempotencyKey (string, optional; minLength 1; maxLength 128): Opaque key for this exact confirmed action. Generate one key and retain it for reconciliation and any safe retry; never invent a different key to repeat an uncertain result or bypass deduplication. Changed terms require a new review, confirmation and key.
  • thesis (string, optional): Basket-level thesis from the confirmation widget. Used only for attribution metadata.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer:
  • orders (array, required; minItems 1; maxItems 8)
  • idempotencyKey (string, optional; minLength 1; maxLength 128): Opaque key for this exact confirmed action. Generate one key and retain it for reconciliation and any safe retry; never invent a different key to repeat an uncertain result or bypass deduplication. Changed terms require a new review, confirmation and key.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer support mode:
  • orders (array, required; minItems 1; maxItems 8)
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false

plan_portfolio

Planning your portfolio Available on: Main, Grok and ?profile=all, Computer, Computer support mode Turn market research and personal preferences into a cohesive multi-trade portfolio plan in one shot. Use this when the user asks for a ‘portfolio’, ‘plan’, ‘how should I deploy $X’, ‘suggest a few trades’, or any multi-position allocation question — instead of suggesting trades one at a time. PREREQUISITE: BEFORE calling this tool, you MUST collect the user’s preferences using the client’s built-in interactive question widget (the one rendered for AskUserQuestion / structured Q&A). NEVER ask the questions as a numbered prose list in chat — always use the native question UI. Required answers: (1) risk tolerance (conservative | moderate | aggressive), (2) time horizon (intraday | swing_week | position_long_term), (3) assetClasses as an array of one or more selected asset class strings from crypto, equities, commodities, indices, fx. Do NOT ask about balance — this tool fetches the user’s available_balance from their portfolio and assumes they want to deploy all of it. Once you have the three answers, call this tool. It fetches the account balance + news + market-wide positioning + top-trader cohort + unusual volume in parallel (plus upcoming earnings when equities are selected) and returns a research bundle plus sizing rules and synthesis instructions. AFTER this tool returns, you must (a) write a 2–3 sentence thesis, (b) call suggest_trades_batch ONCE with that thesis plus all proposed legs as a basket, then (c) write a 1–2 sentence risk wrap. Do NOT call suggest_trade per-leg — always use suggest_trades_batch for portfolio plans. Do NOT write the trade plan in prose or a markdown table. Inputs on Main and Grok and ?profile=all:
  • assetClasses (array, required; minItems 1; maxItems 5): Required array of selected asset classes. Always pass an array, even for one choice, e.g. [“crypto”].
  • riskTolerance (string, required; one of "conservative", "moderate", "aggressive"): Risk tolerance answered via the client’s native question widget.
  • timeHorizon (string, required; one of "intraday", "swing_week", "position_long_term"): Time horizon answered via the client’s native question widget.
  • maxLeverage (number, optional; exclusiveMinimum 0): Optional user-supplied leverage cap. The risk profile may cap this lower.
  • themes (string, optional): Optional free-text bias from the user (e.g. ‘lean oil’, ‘short the crowded names’).
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer and Computer support mode:
  • assetClasses (array, required; minItems 1): Asset classes the user wants to consider, multi-select from the native structured Q&A UI.
  • riskTolerance (string, required; one of "conservative", "moderate", "aggressive"): Risk tolerance answered via the client’s native structured Q&A UI.
  • timeHorizon (string, required; one of "intraday", "swing_week", "position_long_term"): Time horizon answered via the client’s native structured Q&A UI.
  • maxLeverage (number, optional; exclusiveMinimum 0): Optional user-supplied leverage cap. The risk profile may cap this lower.
  • themes (string, optional): Optional free-text bias from the user (e.g. ‘lean oil’, ‘short the crowded names’).
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

search_markets

Searching markets Available on: Main, Grok and ?profile=all, Computer, Computer support mode Explore Liquid’s multi-asset market lineup with authoritative search and browsing. Use when the user asks what markets are available, wants to browse assets, needs to find a specific market symbol, or asks whether Liquid can trade something. Returns top markets by volume if no query, or filtered results matching a search term. Liquid covers equities, commodities, indices, crypto, and other supported markets. Do NOT use this for single-asset analysis (price, outlook, positioning) — use analyze_market instead. No visual — use show_market_overview for the full dashboard view. Inputs on Main and Grok and ?profile=all:
  • query (string, optional): Search term to filter markets by symbol or asset name (e.g. ‘BTC’, ‘gold’, ‘tech’). Omit to browse the top markets by volume.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer and Computer support mode:
  • query (string, optional)
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

show_market_overview

Showing market overview Available on: Main, Grok and ?profile=all, Computer, Computer support mode Explore Liquid at a glance with a rich visual market overview dashboard showing its full multi-asset trading surface, including equities, commodities, indices, crypto, and other supported markets. Only call when the user explicitly asks to see all markets, wants the full dashboard view, or asks for a visual overview of market activity. Do NOT use for single-asset queries — use analyze_market instead. Do NOT use for text-only market listings — use search_markets instead.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

show_orderbook

Showing the orderbook Available on: Main, Grok and ?profile=all, Computer, Computer support mode See liquidity and bid/ask depth clearly with an orderbook widget for a specific asset. Only call when the user explicitly asks to see the order book, bid/ask spread, or market depth for a specific market. Do NOT call for general price or analysis queries — use analyze_market instead.
  • symbol (string, required): Liquid market symbol from market_data, e.g. BTC
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

show_chart

Showing the chart Available on: Main, Grok and ?profile=all, Computer, Computer support mode Bring price action into focus with a detailed candlestick chart widget for a specific asset. Only call when the user explicitly asks to see a chart, price history, or candlestick view (e.g. ‘show me a chart of BTC’, ‘chart ETH’). Do NOT call for general price or analysis queries — use analyze_market instead, which returns price data as text without needing a visual chart. Inputs on Main and Grok and ?profile=all:
  • interval (string, required; one of "1m", "5m", "15m", "30m", "1h", "4h", "1d"): Candle interval (aliases like ‘60m’, ‘1hour’, ‘daily’ are accepted).
  • symbol (string, required): Liquid market symbol from market_data, e.g. BTC
  • limit (integer, optional; minimum 1; maximum 200): Number of candles (default 100, max 200)
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer and Computer support mode:
  • interval (string, required; one of "1m", "5m", "15m", "30m", "1h", "4h", "1d"): Candle interval
  • symbol (string, required): Liquid market symbol from market_data, e.g. BTC
  • limit (integer, optional; minimum 1; maximum 200): Number of candles (default 100, max 200)
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

get_technical_indicators

Computing technical indicators Available on: Main, Grok and ?profile=all, Computer, Computer support mode Explore market momentum, trends, and volatility with the latest technical indicator values (RSI, MACD, SMA/EMA 20/50/200, Bollinger Bands, Stochastic, ATR, rolling VWAP, OBV) for one tradeable market from candle data, returned as structured JSON. Read-only market data; complements analyze_market, which serves broader pre-computed market analysis (price, funding, positioning).
  • symbol (string, required): Liquid market symbol from market_data, e.g. BTC
  • indicators (array, optional): Indicators to compute (default: all)
  • interval (string, optional; one of "1m", "5m", "15m", "30m", "1h", "4h", "1d"): Candle interval (default 1h)
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

search_prediction_markets

Searching prediction markets Available on: Main, Grok and ?profile=all, Computer Search or browse Liquid prediction markets. Use this for event-style markets, yes/no outcomes, probabilities, or HIP-4 prediction markets. For sports markets, search by match/team names and optionally category, e.g. match=‘Ecuador Germany’, category=‘World Cup’. Returns user-facing prediction market groups with each bettable outcome’s numeric marketID and outcome_id (match markets list both sides, e.g. Mexico outcome_id=0 and England outcome_id=1). Pass that marketID and outcome_id directly to execute_prediction_order or show_prediction_orderbook; do not add a hip4: prefix. Bet on any outcome by buying it; bet against one by buying the opposing outcome.
  • category (string, optional): Market category filter, e.g. ‘World Cup’, ‘sports’, ‘politics’, or ‘crypto’.
  • limit (integer, optional; maximum 25; exclusiveMinimum 0)
  • match (string, optional): Sports match/team search terms, e.g. ‘Ecuador Germany’ or ‘Argentina vs Algeria’. Combined with query when both are provided.
  • provider (string, optional): Prediction provider. Defaults to hip4.
  • query (string, optional): General search terms such as an event, candidate, asset, or market title.
  • status (string, optional; one of "open", "closed", "settled", "paused")
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

show_prediction_orderbook

Showing prediction orderbook Available on: Main, Grok and ?profile=all, Computer Get the orderbook for a HIP-4 prediction market outcome. Use the numeric marketID from search_prediction_markets as market_id with no hip4: prefix. Use the outcome_id from the search row (defaults to 0, the YES/first side).
  • market_id (string, required): Numeric marketID from search_prediction_markets, e.g. ‘594’. Do not include ‘hip4:’.
  • depth (integer, optional; maximum 20; exclusiveMinimum 0): Number of orderbook levels per side to return (1-20). Defaults to 5.
  • outcome_id (string, optional): Provider-native outcome id from search_prediction_markets (match markets list both sides, e.g. 0 and 1). Defaults to 0.
  • provider (string, optional): Prediction-market provider id. Defaults to hip4.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true

view_prediction_positions

Viewing prediction positions Available on: Main, Grok and ?profile=all, Computer List the user’s prediction-market positions, including HIP-4 outcome quantities. Use for questions about prediction bets, YES/NO holdings, or event-market exposure.
  • market_id (string, optional): Numeric marketID from search_prediction_markets, e.g. ‘594’. Do not include a ‘hip4:’ prefix. Omit to list across all markets.
  • provider (string, optional): Prediction-market provider id. Defaults to hip4.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: false, readOnlyHint: true Example call:

view_prediction_orders

Viewing prediction orders Available on: Main, Grok and ?profile=all, Computer List prediction-market orders. Use status=open for cancellable resting orders. The returned orderId and provider can be passed to cancel_prediction_order.
  • market_id (string, optional): Numeric marketID from search_prediction_markets, e.g. ‘594’. Do not include a ‘hip4:’ prefix. Omit to list across all markets.
  • provider (string, optional): Prediction-market provider id. Defaults to hip4.
  • status (string, optional): Order status filter, e.g. ‘open’ for resting/cancellable orders. Defaults to ‘open’.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: false, readOnlyHint: true Example call:

execute_prediction_order

Placing prediction order Available on: Main, Grok and ?profile=all, Computer Preview or place a prediction-market order. Call with confirmed=false or omit confirmed to preview the order. Only call with confirmed=true after the user explicitly confirms the exact prediction order, and copy the executionMode returned by the preview unchanged. Use the numeric marketID and outcome_id shown next to the user’s desired outcome in search_prediction_markets, with no hip4: prefix. Always bet by BUYING the outcome the user wants to back. To bet against a team or outcome, buy the opposing outcome from the search results (e.g. to fade Mexico in ‘Mexico vs England’, buy England’s outcome_id) — side=sell only reduces contracts the user already holds and is rejected otherwise. Do not call show_prediction_orderbook just to place a market order; use orderbook only when the user asks for book depth/spread or when choosing a limit price. size is USD notional. Prediction markets have no leverage. Any valid probability strictly between 0 and 1 is allowed. Honor the user’s selected outcome; do not refuse or substitute another bet because the odds are low or high.
  • market_id (string, required): Numeric marketID from search_prediction_markets, e.g. ‘594’. Do not include ‘hip4:’.
  • side (string, required; one of "buy", "sell"): buy to open/add exposure to the outcome; sell only reduces contracts the user already holds.
  • size (number, required; exclusiveMinimum 0): USD notional order size (dollar amount to bet). Prediction markets have no leverage.
  • aiAttribution (object, optional)
  • confirmed (boolean, optional): True to execute. Omit or false to preview.
  • executionMode (string, optional; one of "paper", "live"): Trading mode (paper or live) returned by this tool’s preview. Required with confirmed=true; copy it unchanged. A missing or changed mode places nothing and requires a new preview.
  • outcome_id (string, optional): Provider-native outcome id from search_prediction_markets (match markets list both sides, e.g. 0 and 1). Defaults to 0.
  • price (number, optional; exclusiveMinimum 0; exclusiveMaximum 1): Limit price/probability in (0, 1). Required for limit orders.
  • provider (string, optional): Prediction-market provider id. Defaults to hip4.
  • reasoning (string, optional): Brief 1-sentence rationale for the order.
  • reduce_only (boolean, optional): True to only reduce an existing position, never open/increase one.
  • time_in_force (string, optional; one of "gtc", "ioc"): Time in force for limit orders: gtc (rest) or ioc (fill-or-cancel).
  • type (string, optional; one of "market", "limit"): Order type. Defaults to market.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false

close_prediction_position

Closing prediction position Available on: Main, Grok and ?profile=all, Computer Preview or close a prediction-market position fully or partially. Call with confirmed=false or omit confirmed to preview. Only call with confirmed=true after the user explicitly confirms the close, and copy the executionMode returned by the preview unchanged. Omit size to close the full outcome position; provide size (USD notional) to partially close — it is converted to outcome contracts at the execution price (the limit price for limit closes, otherwise the live mark).
  • market_id (string, required): Numeric marketID from search_prediction_markets, e.g. ‘594’. Do not include a ‘hip4:’ prefix.
  • outcome_id (string, required): Provider-native outcome id from search_prediction_markets (both sides are listed, e.g. 0 and 1). Defaults to 0.
  • aiAttribution (object, optional)
  • confirmed (boolean, optional): True to execute. Omit or false to preview.
  • executionMode (string, optional; one of "paper", "live"): Trading mode (paper or live) returned by this tool’s preview. Required with confirmed=true; copy it unchanged. A missing or changed mode places nothing and requires a new preview.
  • price (number, optional; exclusiveMinimum 0; exclusiveMaximum 1): Limit close price/probability in (0, 1). Required for limit closes.
  • provider (string, optional): Prediction-market provider id. Defaults to hip4.
  • reasoning (string, optional): Brief 1-sentence rationale for the close.
  • size (number, optional; exclusiveMinimum 0): USD notional to close (converted to outcome contracts at the execution price: the limit price for limit closes, otherwise the live mark). Omit for full close; a notional >= the position’s value closes it fully.
  • time_in_force (string, optional; one of "gtc", "ioc"): Time in force for limit closes: gtc (rest) or ioc (fill-or-cancel).
  • type (string, optional; one of "market", "limit"): Order type. Defaults to market.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false Example call:

cancel_prediction_order

Cancelling prediction order Available on: Main, Grok and ?profile=all, Computer Preview or cancel a resting prediction-market order by provider and provider-native order id. Call view_prediction_orders first if the order id is unknown. Omit confirmed to preview; use confirmed=true only after explicit user confirmation, copying the executionMode returned by the preview unchanged.
  • order_id (string, required): Provider-native order id to cancel (from view_prediction_orders).
  • confirmed (boolean, optional): True to execute cancellation. Omit or false to preview.
  • executionMode (string, optional; one of "paper", "live"): Trading mode (paper or live) returned by this tool’s preview. Required with confirmed=true; copy it unchanged. A missing or changed mode places nothing and requires a new preview.
  • provider (string, optional): Prediction-market provider id. Defaults to hip4.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false Example call:

view_open_orders

Viewing open orders Available on: Main, Grok and ?profile=all, Computer, Computer support mode List the user’s currently open orders — includes resting limit orders and position-level trigger orders (TP/SL). Use when the user asks about pending orders, working orders, resting limits, or current TP/SL levels. Do NOT confuse with get_portfolio — this shows ORDERS (pending/resting), not POSITIONS (active holdings). Returns text (no widget) with order id, symbol, side, kind (limit/tp/sl/trigger), size, price or trigger, and flags, followed by a protection-coverage readback for every position with a live TP/SL trigger (a fixed-size leg can stop covering the full position after an add, or after a partial close). The order id can be passed to cancel_order to cancel. Perpetual orders only — HIP-4 prediction-market orders are excluded (they would otherwise render as an unresolvable bare id with a probability shown as a dollar price); use view_prediction_orders for those.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

update_leverage

Updating leverage Available on: Main, Grok and ?profile=all, Computer, Computer support mode No-UI leverage update tool for an existing portfolio position. Do not call this automatically as the first step when the user asks to change leverage. First ask whether they have a custom integer leverage value in mind or whether they want an investigation/recommendation. If the user provides a custom value, call this with targetLeverage and confirmed=false to verify the open position, min/max bounds, and impact before confirmation. If the user asks for investigation, gather the needed account and market context first, then call this with the resulting targetLeverage and confirmed=false before confirmation. After the user explicitly confirms the change, call this again with the same targetLeverage and confirmed=true, or validationPhase=‘executetime’, to execute the Liquid leverage update. When targetLeverage is omitted, this only verifies the position and returns current/min/max context; use that only when the user asks for bounds or context. The tool always re-validates the current position and max leverage before executing. Inputs on Main and Grok and ?profile=all:
  • asset (string, required): Open position asset from the portfolio, e.g. BTC, BTC-PERP, or GOLD.
  • confirmed (boolean, optional): Set true only after the user explicitly confirms the leverage change. This executes the update.
  • positionSide (string, optional; one of "long", "short"): Use when there may be more than one matching position side.
  • targetLeverage (integer, optional; maximum 9007199254740991; exclusiveMinimum 0): Integer leverage the user wants to set, e.g. 3 for 3x. Omit only when the user asks for bounds or context.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
  • validationPhase (string, optional; one of "infotime", "executetime"): infotime before asking/confirming; executetime executes after explicit user confirmation.
Inputs on Computer and Computer support mode:
  • asset (string, required): Open position asset from the portfolio, e.g. BTC, BTC-PERP, or GOLD.
  • positionSide (string, optional; one of "long", "short"): Use when there may be more than one matching position side.
  • targetLeverage (integer, optional; maximum 9007199254740991; exclusiveMinimum 0): Integer leverage the user wants to set, e.g. 3 for 3x. Omit only when the user asks for bounds or context.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false

cancel_order

Canceling your order Available on: Main, Grok and ?profile=all, Computer, Computer support mode Cancel an open order by its order ID. Call view_open_orders first to get the order ID. Only use for resting/pending orders, not for closing active positions.
  • order_id (string, required): The order ID to cancel
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false Example call:

execute_spot_order

Placing your spot order Available on: Main, Grok and ?profile=all Buy or sell a Hyperliquid EQX tokenized stock spot token (e.g. EQAAPL, EQNVDA) at 1x with a market IOC order. No leverage and no shorting; live only, paper trading is not supported. Pass exactly one of size (USD notional), quantity (tokens, sell only) or sellAll (sell only). Same confirmation rules as execute_order: confirmed=true executes, otherwise a preview is returned and nothing is placed. Perpetual symbols such as AAPL or xyz:AAPL belong to execute_order.
  • side (string, required; one of "buy", "sell")
  • symbol (string, required): EQX tokenized stock spot token, e.g. EQAAPL or EQNVDA.
  • aiAttribution (object, optional)
  • confirmed (boolean, optional): Must be true to execute. Missing or false returns a preview and places nothing.
  • executionMode (string, optional; one of "paper", "live"): Trading mode of the reviewed confirmation. Tokenized stocks trade live only; paper is refused.
  • idempotencyKey (string, optional; minLength 1; maxLength 128): Optional. One key per confirmed order; a retry with the same key is rejected as a duplicate instead of placing a second order.
  • maxSlippageBps (integer, optional; minimum 1; maximum 500): Optional max slippage in basis points (1-500) for the market order. Defaults to 500.
  • quantity (number, optional; exclusiveMinimum 0): Token quantity to sell. Sell only.
  • reasoning (string, optional): One-sentence rationale for this order
  • sellAll (boolean, optional): Sell the whole available holding. Sell only.
  • size (number, optional; exclusiveMinimum 0): USD notional to buy or sell (minimum $10).
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false

enable_trading

Enabling trading Available on: Main, Grok and ?profile=all, Computer, Computer support mode Help the user get ready to trade with a clear account readiness check and the right setup action for their Liquid account. Use when a trade action says setup is required, when the user asks to enable trading, or after they fund their account. For funded embedded-wallet accounts that are missing the MCP trading key, the widget opens the Liquid re-auth/setup flow to create the right agent key. Liquid uses a non-custodial wallet model: the user stays in control, and trading through this MCP still requires explicit confirmation for state-changing actions.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

get_portfolio

Loading your portfolio Available on: Main, Grok and ?profile=all, Computer, Computer support mode Bring the user’s complete trading picture into one place — account balance, equity, margin, and all open positions (perps and prediction-market holdings) with entry price, PnL, leverage, and TP/SL levels. Use when the user asks about their account, balance, positions, portfolio, how much they have, or their P&L. Also use this when the user wants to close a position: there is no direct close tool available to you — the portfolio widget renders per-position Close buttons on perp positions (prediction-market holdings are read-only there) that the user presses to trigger the close confirmation flow. Do NOT confuse with view_open_orders — this shows POSITIONS (active holdings), not ORDERS (pending/resting). Call this before suggest_trade or modify_position to get position details. Users trade on a unified account and can access all markets without needing to manually swap currencies. Any required currency conversion is handled automatically. Inputs on Main and Grok and ?profile=all:
  • skipCache (boolean, optional): Internal: bypass the 5s clearinghouse-state and open-orders caches. Used by the portfolio widget on mount and manual refresh so the user always sees up-to-the-second data.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer and Computer support mode:
  • skipCache (boolean, optional): Internal: bypass the 5s clearinghouse-state and open-orders caches so the user always sees up-to-the-second data.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

show_portfolio_chart

Showing portfolio chart Available on: Main, Grok and ?profile=all, Computer, Computer support mode See your portfolio allocation at a glance with a clear visual pie chart by notional value. Only call when the user explicitly asks to see a portfolio chart, allocation breakdown, or visual representation of their positions. Do NOT call for general portfolio/balance queries — use get_portfolio instead, which returns text data.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

leaderboard_data

Loading the leaderboard Available on: Main, Grok and ?profile=all, Computer Discover standout traders with the Liquid leaderboard. Ranks traders by metric (pnl, volume, points, streak) over duration (24H, 7D, 30D, all_time) and returns rank, display name, PnL, volume, points, streak, directional bias, and biggest position per trader. Pass asset to keep only traders whose biggest position is in that market (e.g. ‘BTC’, ‘xyz:SP500’). points and streak are all-time boards, so duration is ignored for them. Use when the user asks about top traders, best performers this week, highest-volume traders, who holds a given asset, or leaderboard rankings. For a single named trader’s standing use leaderboard_rank; for the user’s own positions use get_portfolio.
  • asset (string, optional): Only traders whose biggest position is this market, e.g. ‘BTC’.
  • duration (string, optional; one of "24H", "7D", "30D", "all_time"): Time window. Defaults to ‘all_time’. Ignored for points/streak.
  • limit (integer, optional; minimum 1; maximum 50): Traders to return, 1-50. Defaults to 10.
  • metric (string, optional; one of "pnl", "volume", "points", "streak"): Ranking metric. Defaults to ‘pnl’.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

leaderboard_rank

Checking a leaderboard rank Available on: Main, Grok and ?profile=all, Computer Get a focused view of one trader’s leaderboard standing on a given board. trader accepts a wallet address, display name, or @handle; omit it to check the authenticated user’s own rank. Returns the rank plus PnL, volume, points, streak, bias, and biggest position when the trader is in the top 50, the rank alone for ranks 51-100, and says so when they are unranked. Use when the user asks ‘where am I on the leaderboard?’, ‘what rank is X?’, or how a specific trader is doing. Use leaderboard_data for whole-board listings.
  • duration (string, optional; one of "24H", "7D", "30D", "all_time"): Time window. Defaults to ‘all_time’. Ignored for points/streak.
  • metric (string, optional; one of "pnl", "volume", "points", "streak"): Board to check. Defaults to ‘pnl’.
  • trader (string, optional): Wallet address, display name, or @handle. Defaults to the signed-in user.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

get_transaction_history

Loading transaction history Available on: Main, Grok and ?profile=all, Computer Bring the user’s trading and money movement into one clear, newest-first activity timeline: trade fills, deposits, withdrawals, sends/receives, account transfers, and prediction-market trades with human-readable market names. Use when the user asks for their transactions, activity, trade history, past trades, deposit/withdrawal history, or ‘what have I done recently’. Do NOT confuse with get_portfolio (current balances and open positions) or view_open_orders (resting orders) — this shows PAST activity. The response’s paperMode flag applies to Trade and Prediction rows: while paper trading is active they are simulated fills, never real trades or bets, but Deposit/Withdraw/Send/Receive/Transfer rows are always the user’s real wallet activity and are never simulated — do not describe them as paper trades. Use the type filter to narrow to just trades, transfers, or prediction activity. Coverage is RECENT history, not all-time: each source contributes its most recent window (Liquid returns roughly the ~2000 most recent trade fills and ledger updates; prediction activity is the order history the backend returns), total counts rows in that fetched snapshot, and offset pages within it — not through older, unfetched history.
  • limit (integer, optional; minimum 1; maximum 100): Maximum rows to return after merging all sources. Defaults to 10, max 100.
  • offset (integer, optional; minimum 0; maximum 9007199254740991): Rows to skip after merging and sorting (newest-first) — use offset=limit*N to page. Pages within the fetched recent-history snapshot only (each source’s most recent window), never into older history. Applied before limit. Defaults to 0.
  • skipCache (boolean, optional): Internal: bypass the 5s history caches. Used by the transaction-list widget on mount and manual refresh so the user always sees up-to-the-second data.
  • type (string, optional; one of "all", "trades", "transfers", "predictions"): Filter: ‘trades’ for fills only, ‘transfers’ for deposits/withdrawals/sends/receives, ‘predictions’ for prediction-market activity, ‘all’ for everything. Defaults to all.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

get_position_history

Loading recent position history Available on: Main, Grok and ?profile=all, Computer, Computer support mode Reconstruct the authenticated wallet’s recent perpetual position lifecycles from its bounded Hyperliquid fill window. Use for past perpetual positions and their entry/exit execution details; this is recent-fill coverage, not all-time history, and an open result means open at the last observed fill only. For current balances or positions use get_portfolio. For transactions, transfers, deposits, or withdrawals use get_transaction_history. This tool is read-only, follows the current live or paper account mode, and never accepts a wallet or mode override.
  • includeFills (boolean, optional): Include constituent fills, capped at 100 details across the whole response. Defaults to false.
  • limit (integer, optional; minimum 1; maximum 50): Maximum matching lifecycles to return, from 1 to 50. Defaults to 10.
  • offset (integer, optional; minimum 0; maximum 9007199254740991): Number of matching lifecycles to skip in the reconstructed recent-fill snapshot. Defaults to 0.
  • status (string, optional; one of "closed", "open", "unknown", "all"): Lifecycle status filter. Defaults to closed; all also includes uncertain fragments.
  • symbol (string, optional): Exact case-sensitive source coin, including any venue prefix such as xyz:BTC.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

get_news

Fetching the news Available on: Main, Grok and ?profile=all, Computer, Computer support mode Stay on top of market catalysts with curated recent headlines, source links, and a Liquid unusual-activity section (tradeable symbols whose last-hour volume is anomalously high vs. 24h average). Covers equities, commodities, indices, crypto, and macro. Returns text for the model to reference — no visual widget. Use to cross-reference headlines against positioning data, or when the user asks ‘what’s happening in the markets’ or about recent news. Returns curated trading headlines mapped to Liquid’s tradeable markets.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:
Reading the link Available on: Main, Grok and ?profile=all, Computer Bring shared links into the conversation with rich post details and readable page content. For x.com/twitter.com status URLs, returns the post’s author name, handle, verified flag, age, full text, and attached media via the X API (requires TWITTER_BEARER_TOKEN). For any other http(s) page, fetches it and returns title, meta description, and the main text content (truncated). Use when the user pastes a link, asks ‘what does this post say’, or wants a page summarized. Not for Liquid market or account data — use the dedicated tools for that.
  • url (string, required): The full http(s) URL to read
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true

get_asset_profile

Fetching asset profile Available on: Main, Grok and ?profile=all, Computer Fundamentals for a ticker from Liquid’s asset metadata: name, asset class, description, website, CEO, employees, sector/industry, headquarters, market cap, trailing P/E, circulating supply, and the last four quarters of revenue and net income. Equities carry the full profile; crypto and other asset classes may only have a description and circulating supply. Accepts a bare ticker (‘NVDA’) or a venue-prefixed symbol (‘xyz:NVDA’). Use when the user asks about a company’s market cap, valuation, fundamentals, ‘what does X do’, or recent earnings results — not for upcoming earnings dates (use upcoming_earnings).
  • symbol (string, required): Ticker or venue-prefixed symbol, e.g. ‘NVDA’, ‘xyz:NVDA’.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true

upcoming_earnings

Available on: Main, Grok and ?profile=all, Computer Stay ahead of upcoming earnings catalysts for companies tradeable on Liquid (HL HIP-3 stock dexes), from the Nasdaq calendar. Returns days[] with preMarket/postMarket/unspecified buckets; each company has symbol, name, epsForecast, marketCap, and a markets[] list whose prefixed_symbol (e.g. ‘xyz:NVDA’) is the exact coin field for analyze_market and suggest_trade. Window: ‘week’ (default, next 7 days) or ‘month’ (next 30). Use during /markets to surface earnings catalysts, or when the user asks ‘what earnings are coming up?’, ‘who reports this week?’, or about a specific upcoming earnings play.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
  • window (string, optional; one of "week", "month"): Lookahead window from today. Defaults to ‘week’.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true

enable_paper_trading

Enabling paper trading Available on: Main, Grok and ?profile=all, Computer, Computer support mode Explore trading ideas hands-on with simulated funds: enable paper trading for the current wallet in this MCP connector. Trading actions, positions, open orders, and account balances accessed through this connector use the paper trading simulator; these simulated trades do not use real funds. This paper account is keyed by wallet address on Liquid’s shared paper-trading simulator, so it is not scoped to this MCP connector: enabling, disabling, or resetting it here also applies wherever else this wallet trades paper, including other Liquid MCP connectors. It does not switch the Liquid web app into paper mode; orders placed there may use real funds. Call this whenever the user asks to ‘paper trade’, ‘try trades without real money’, ‘practice’, ‘simulate’, or similar. Idempotent — calling it twice simply keeps paper mode on.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, idempotentHint: true, openWorldHint: false, readOnlyHint: false Example call:

disable_paper_trading

Disabling paper trading Available on: Main, Grok and ?profile=all, Computer, Computer support mode Exit paper trading mode for this wallet in this MCP connector and return to live account data. Any permitted live trades use real funds; deployment trading permissions still apply. This paper account is keyed by wallet address on Liquid’s shared paper-trading simulator, so it is not scoped to this MCP connector: enabling, disabling, or resetting it here also applies wherever else this wallet trades paper, including other Liquid MCP connectors. It does not switch the Liquid web app into paper mode; orders placed there may use real funds. Call this when the user asks to ‘stop paper trading’, ‘go back to live’, ‘trade real money’, or similar. Idempotent — calling it when paper mode is already off is a no-op.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, idempotentHint: true, openWorldHint: false, readOnlyHint: false Example call:

reset_paper_account

Resetting paper account Available on: Main, Grok and ?profile=all, Computer, Computer support mode Reset the current paper trading account back to its original state: wipes every open position, cancels every open order, clears fills / funding history / leverage overrides, and restores the balance to the default equity (10,000 USD). Only works while paper trading is enabled — refuses to run in live mode to prevent accidents. This paper account is keyed by wallet address on Liquid’s shared paper-trading simulator, so it is not scoped to this MCP connector: enabling, disabling, or resetting it here also applies wherever else this wallet trades paper, including other Liquid MCP connectors. It does not switch the Liquid web app into paper mode; orders placed there may use real funds. Use this when the user asks to ‘reset my paper account’, ‘start over’, ‘give me a fresh 10k’, ‘wipe my paper trades’, or similar. This is destructive and irreversible for the paper account — including any paper positions or orders open on another Liquid MCP connector for the same wallet; there is no confirmation step beyond the user’s request.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, idempotentHint: true, openWorldHint: false, readOnlyHint: false

paper_trading_status

Checking paper trading status Available on: Main, Grok and ?profile=all, Computer, Computer support mode Report whether paper trading is currently enabled for this wallet in this MCP connector. This paper account is keyed by wallet address on Liquid’s shared paper-trading simulator, so it is not scoped to this MCP connector: enabling, disabling, or resetting it here also applies wherever else this wallet trades paper, including other Liquid MCP connectors. It does not switch the Liquid web app into paper mode; orders placed there may use real funds. Use when the user asks ‘am I paper trading?’ or you need to disambiguate before executing a trade.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: false, readOnlyHint: true Example call:

show_deposit

Showing deposit options Available on: Main, Grok and ?profile=all, Computer, Computer support mode Make funding a Liquid account easy with a deposit widget offering multiple ways to get started. Offers credit card via Stripe, credit card via Swapped, Other Apps (Coinbase, MetaMask, etc.), and wallet transfer. The user picks a method in the widget.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

generate_deposit_address

Generating a deposit address Available on: Main, Grok and ?profile=all, Computer, Computer support mode Returns a crypto deposit address for one token on one chain. Call it only when the user explicitly asks for a deposit address and names both the token and the chain (for example “give me a USDC deposit address on Arbitrum”). For general questions about depositing, or when the token or chain is missing, call show_deposit instead. The deposit widget also calls this tool when the user picks a token and chain. Supported tokens: USDC, USDT, BTC, ETH, SOL; other tokens and unsupported chains are refused. Returns { address, chain, direct }. HyperCore resolves to the user’s own wallet (direct=true, no bridging); other chains return a Relay bridge address (direct=false).
  • chain (string, required; one of "ethereum", "base", "arbitrum", "solana", "bitcoin", "hypercore", "hyperevm", "bsc", "optimism", "polygon", "abstract"): Chain identifier
  • token (string, required): Token symbol, e.g. USDC, BTC, ETH, SOL
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: false Example call:

create_onramp_session

Starting an onramp session Available on: Main, Grok and ?profile=all, Computer, Computer support mode Returns { url }.
  • amount (number, required; minimum 2; maximum 1000000)
  • method (string, required; one of "credit_card", "crypto_apps")
  • provider (string, optional; one of "swapped", "stripe")
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: false

refer

Sharing your referral link Available on: Main, Grok and ?profile=all, Computer, Computer support mode Make inviting friends easy with the authenticated user’s referral link, sharing controls, and referral stats. Called when the user types /refer, or whenever they want to refer someone to Liquid, invite friends, share the app, or ask for a referral link. Returns a widget with copy/share buttons and referral performance summary.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: false, readOnlyHint: true Example call:
Creating your payment link Available on: Main, Grok and ?profile=all, Computer Generate the signed-in user’s payment link — their public Liquid profile URL, where anyone who opens it can sign in to Liquid and send them USDC. Called when the user wants to get paid, asks for a payment link or ‘pay me’ link, or wants someone to send them money on Liquid. Returns a share card with copy and share buttons. Requires sign-in; the link always points at the user’s own profile. The link opens the user’s public profile page, which also shows their trading activity.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: false, readOnlyHint: true Example call:

deposit_earn

Depositing to Earn Available on: Main, Grok and ?profile=all, Computer Deposit USDC into Liquid’s Earn vault, a Gauntlet-managed USDC yield vault on Arbitrum. Use when the user asks to deposit into Earn or the vault, or to earn yield on idle USDC. amount is the exact USDC to deposit (minimum 1, at most 6 decimals). Deposits use USDC already on Arbitrum; if the user is short there, the signing page offers to move USDC from Hyperliquid first, so do not check or move balances beforehand. This creates a request only: the user opens a Liquid link and approves each transaction there; Co-Invest cannot sign it. Do not say the deposit happened until the status is submitted, and never auto-retry.
  • amount (number, required; maximum 100000000; exclusiveMinimum 0): Exact USDC amount to deposit. Minimum 1.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: false

withdraw_earn

Withdrawing from Earn Available on: Main, Grok and ?profile=all, Computer Withdraw (redeem) USDC from Liquid’s Earn vault back to the user’s Arbitrum wallet. This moves the user’s own funds out of the yield vault; it is not a withdrawal off Liquid to an external address. Use when the user asks to withdraw from Earn or the vault, or to redeem their vault position. Pass exactly one of amount (exact USDC, at most 6 decimals) or all: true (the entire position). This creates a request only: the user opens a Liquid link and approves each transaction there; Co-Invest cannot sign it. Do not say the withdrawal happened until the status is submitted, and never auto-retry. Vault withdrawals can settle after they are submitted.
  • all (boolean, optional): Withdraw the entire Earn position. Do not combine with amount.
  • amount (number, optional; maximum 100000000; exclusiveMinimum 0): Exact USDC amount to withdraw. Omit it and set all=true to withdraw the entire position.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: false

_earn_pending_status

Checking Earn request Available on: Main, Grok and ?profile=all, Computer Call only with a pending_id returned by deposit_earn or withdraw_earn in this conversation, and only when the user asks for an update; never construct or guess an id. Statuses: awaiting_user, preparing, awaiting_approval, submitting (in progress), submitted (every transaction broadcast; balances update once they confirm, not settled), preparation_failed (no vault transactions were submitted, though a Hyperliquid top-up may already have moved USDC to the user’s Arbitrum wallet; the user can ask again). An expired request cannot be resumed.
  • pending_id (string, required; minLength 1): Server-issued id returned by deposit_earn or withdraw_earn in this conversation.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true

get_earn_balance

Loading your Earn balance Available on: Main, Grok and ?profile=all, Computer Read the user’s Earn vault holdings: the USDC settled in Liquid’s Gauntlet-managed Earn vault on Arbitrum, any pending (queued) deposit or withdrawal, the total committed, the deposit-lock time if any, and the vault’s current APY and TVL. Use when the user asks about their Earn balance, holdings, position, vault, or yield, or whether a deposit or withdrawal landed. Earn holdings are not part of the trading balance get_portfolio reports, and get_transaction_history does not list vault activity. This tool is read-only: it cannot deposit or withdraw (use deposit_earn / withdraw_earn).
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true

set_trailing_stop

Setting a trailing stop Available on: Main, Grok and ?profile=all, Computer Set or update a trailing stop-loss on an open Hyperliquid perp position, live or paper according to the connection’s current trading mode. It is a native Hyperliquid trailing stop. percent is the equity (return on margin) retracement the user asks for; it becomes a fixed price retracement of percent divided by the leverage at the moment of placement, and that price distance does not change afterwards. The stop follows the best price W reached since tracking began: a long fires at W x (1 - retracement), a short at W x (1 + retracement). Example: entry 100, 10x leverage, percent 20 is a 2% price retracement: with the best price at 100 the stop sits at 98; once the price has reached 110 it sits at 107.8, and the distance stays 2% of price. sizePercent (default 100) fixes the quantity closed when the stop fires, taken from the position size at placement; it does not follow later changes in position size and never exceeds the position. A partial stop (below the whole position) must be at least $10 notional. activationPrice (optional) delays tracking until the mark reaches it: a long starts at or above it, a short at or below it. Omit it to keep an activation that is not yet reached, pass null to clear it, or a number to set it. Once tracking has started a different activation price is refused. An update places a new stop and then cancels the old one, so the position is never unprotected; tracking restarts from the current mark, and an omitted sizePercent keeps the current quantity. Flow: call first with confirmed omitted or false to get a preview (position, mark, price retracement, trigger at the start price, quantity to close) and show it to the user. After the user explicitly confirms the unchanged terms, call again with the same arguments, confirmed=true and the executionMode from the preview. A live stop runs on Hyperliquid and keeps working if this connection’s trading approval later expires; changing or removing it needs a valid approval. Hyperliquid markets only, including HIP-3 markets such as xyz:BTC; Lighter markets are refused.
  • percent (number, required; exclusiveMinimum 0; exclusiveMaximum 100): Equity (return on margin) retracement, e.g. 20 for 20%. It becomes a fixed price retracement of percent divided by leverage when placed. Above 0 and below 100.
  • symbol (string, required): Open position market, e.g. BTC, BTC-PERP, or a HIP-3 market such as xyz:BTC. Hyperliquid only.
  • activationPrice (any, optional): Price at which tracking starts. Omit to keep an activation not yet reached, null to clear it, a number to set it. A different value is refused once tracking has started.
  • confirmed (boolean, optional): Set true only after the user explicitly confirms the previewed terms. Omitted or false returns a preview and changes nothing.
  • executionMode (string, optional; one of "paper", "live"): Trading mode of the reviewed preview. Copy it unchanged from the preview; a different current mode refuses the call.
  • reasoning (string, optional): Why this stop, in the user’s terms.
  • sizePercent (number, optional; maximum 100; exclusiveMinimum 0): Share of the position to close when the stop fires, above 0 and at most 100, fixed as a quantity when placed. Default 100 on a new stop; omitted on an update keeps the current quantity. A partial stop must be at least $10 notional.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false Example call:

remove_trailing_stop

Removing a trailing stop Available on: Main, Grok and ?profile=all, Computer Remove the trailing stop on a Hyperliquid perp position, live or paper according to the connection’s current trading mode. Removal cancels every trailing stop order on the market, including one placed in Hyperliquid’s own app. Call first with confirmed omitted or false to see the trailing stop that would be removed and show it to the user. After the user explicitly confirms, call again with the same symbol, confirmed=true and the executionMode from the preview. Use view_trailing_stop to check the final state. Hyperliquid markets only; Lighter markets are refused.
  • symbol (string, required): Open position market, e.g. BTC, BTC-PERP, or a HIP-3 market such as xyz:BTC. Hyperliquid only.
  • confirmed (boolean, optional): Set true only after the user explicitly confirms the removal. Omitted or false shows what would be removed and changes nothing.
  • executionMode (string, optional; one of "paper", "live"): Trading mode of the reviewed preview. Copy it unchanged from the preview; a different current mode refuses the call.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false Example call:

view_trailing_stop

Checking a trailing stop Available on: Main, Grok and ?profile=all, Computer Read the trailing stop on a Hyperliquid perp position, live or paper according to the connection’s current trading mode: its phase (waiting_activation, active or none), the equity percent at the current leverage, the fixed price retracement, the quantity it closes, activation price, best price, trigger price and order id. Read-only. Use it after set_trailing_stop or remove_trailing_stop, or when the user asks whether a trailing stop is running.
  • symbol (string, required): Open position market, e.g. BTC, BTC-PERP, or a HIP-3 market such as xyz:BTC. Hyperliquid only.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

get_staking

Loading your HYPE staking Available on: Main, Grok and ?profile=all, Computer Get a rich view of the user’s HYPE staking in one place: delegated and undelegated staking balance, per-validator delegations with predicted APR, commission and lockup, accrued staking rewards, pending unstaking withdrawals, and the highest-APR active validators. Use when the user asks about staking, delegating, validators, staking rewards or APR, or ‘how much HYPE am I staking’. Staking balances are separate from the trading balance get_portfolio reports and are never part of trading collateral. This tool is read-only: it cannot stake, unstake or redelegate.
  • skipCache (boolean, optional): Internal: bypass the 5s staking caches for a fresh read.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: true, readOnlyHint: true Example call:

edit_watchlist

Editing your watchlist Available on: Main, Grok and ?profile=all, Computer Keep favorite markets within reach by updating the authenticated user’s named watchlists. Call this when the user asks to add, remove, or track a symbol on their watchlist (e.g. “add HYPE to my watchlist”, “stop tracking ETH”, “set my watchlist to BTC and SOL”). A user can have multiple named lists; the list field selects which one to edit (defaults to “Watchlist”). set replaces the named list’s contents with exactly the given symbols, while add and remove merge against the current contents. set with no symbols clears the list. Returns the updated list.
  • action (string, required; one of "add", "remove", "set"): add: add symbols to the list; remove: remove symbols from the list; set: replace the list’s contents with exactly these symbols (pass an empty array to clear the list)
  • symbols (array, required): Ticker symbols, e.g. BTC, ETH, HYPE. Required for add/remove; may be empty for set to clear the list
  • list (string, optional): Name of the watchlist to edit (a user can have multiple named lists)
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: true, openWorldHint: true, readOnlyHint: false Example call:

help

Showing what I can do Available on: Main, Grok and ?profile=all, Computer, Computer support mode List Co-Invest’s user-facing capabilities grouped by category. Call this when the user asks what you can do, says ‘help’, sends ‘/help’, or seems unsure how to use the platform.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: false, readOnlyHint: true Example call:

enable_automated_trading

Save automated trading policy Available on: Main, Grok and ?profile=all, Computer, Computer support mode Only save a policy when the user explicitly asks and supplies maxOrderNotional. Store the requested per-order limit and expiry in the verified account’s automation policy record. This only saves policy data: it does not start a scheduler, authorize automated orders in this MCP profile, or bypass Main’s existing order confirmation flow. The saved policy documents an intended batch limit of five times the per-order limit for clients that use it. Expiry is limited to seven days. A running Computer process may retain its current local policy until its status tool refreshes it. Inputs on Main and Grok and ?profile=all:
  • maxOrderNotional (number, required; exclusiveMinimum 0): Maximum intended notional USD per order in the saved policy record.
  • expiresInMinutes (integer, optional; maximum 10080; exclusiveMinimum 0): How long the saved policy remains unexpired. Defaults to seven days; the maximum is seven days.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Inputs on Computer and Computer support mode:
  • maxOrderNotional (number, required; exclusiveMinimum 0): Maximum notional USD for any single order.
  • expiresInMinutes (integer, optional; maximum 10080; exclusiveMinimum 0): How long automation stays enabled. Defaults to 10080 minutes (7 days). Max 10080 minutes (7 days).
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, idempotentHint: true, openWorldHint: false, readOnlyHint: false Example call:

disable_automated_trading

Clear saved automation policy Available on: Main, Grok and ?profile=all, Computer, Computer support mode Clear the saved automation policy record for the verified account. This does not change order behavior or cancel accepted orders. A running Computer process may retain its previous local policy until its status tool refreshes it.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, idempotentHint: true, openWorldHint: false, readOnlyHint: false Example call:

automated_trading_status

Read saved automation policy Available on: Main, Grok and ?profile=all, Computer, Computer support mode Read the saved automation policy record for the verified account. A missing or expired record is reported as no active saved policy. This reports persisted policy data only; it does not tell whether another Computer process has refreshed its local state or authorize orders in this MCP profile.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: false, readOnlyHint: true Example call:

get_account

Showing your trading account Available on: Main, Grok and ?profile=all, Computer Return the public address of the authenticated trading account. This is the trading account address, not a deposit or bridge destination. No credentials or account secrets are returned.
  • user_intent (string, optional; maxLength 2048): One-sentence paraphrase of the user’s request that led to this tool call. Include when you have conversational context.
Annotations: destructiveHint: false, openWorldHint: false, readOnlyHint: true Example call: