This is a reference for the verification API’s payload adapter. For apps you can use inside a Desk, see Desk apps.
venue: liquid. Over HTTP, liquidtrade, liquidx, coinvest, liquidcoinvest and liquidmcp also resolve to it.
Liquid (liquid.trade) is a self-custodial terminal for crypto perps, tokenised equities, commodities, FX and prediction markets, executing mainly on Hyperliquid. Its Co-Invest MCP server lets an agent research markets and place real orders on the user’s account.
What to send
The MCP tool call the agent is about to make:{ name, arguments } (or tool with args, input or params), or the JSON-RPC envelope { method: "tools/call", params: { name, arguments } }.
A client prefix such as mcp__liquid-co-invest__execute_order is parsed. Without venue, a prefixed call is detected only when the server segment contains liquid or coinvest and not hyperliquid, and the tool is known. Some bare names are shared with other venues (get_portfolio, cancel_order, close_position, execute_order, search_markets, get_news, show_chart, analyze_market, view_open_orders, help). They are detected only when the arguments carry Liquid’s user_intent or aiAttribution field. Set venue: "liquid" and detection does not matter. Order arguments sent with no tool name (symbol or asset, plus side) are classified only when venue is set, with actionType: null.
actionType is the tool name.
No live lookup
Every read on the Liquid server needs the user’s own OAuth session. To give the judge live facts, run a preview-capable tool withconfirmed: false first and pass its result in context.
Tools the agent should not call
execute_order, execute_orders_batch, close_position, execute_tpsl, generate_deposit_address and create_onramp_session describe themselves as internal to Liquid’s confirmation widget, which calls them after the user taps Confirm. Any client holding the trade scope can still call them directly. When an agent does, the classifier notes that the Confirm tap was skipped and the verdict is the only gate left.
suggest_trade, suggest_trades_batch and modify_position only render a confirmation card, but they are judged as the trade they propose.
Two traps
size changes meaning by direction. On execute_order, suggest_trade and the prediction order tools it is USD notional (collateral × leverage): size: 250 is $250 of exposure, not 250 coins. On `close_position` and `close_positions_batch.closes[]` it is coin units. The classifier states the collateral at risk (notional ÷ leverage) and flags collateral under Liquid's documented $15 minimum.
Several large actions carry no dollar figure, so a mandate written only as dollar limits does not constrain them:
close_positions_batchwithconfirmed: trueand neithersymbolsnorclosescloses every open position.disable_paper_tradingputs every later order back on real funds. Paper mode is account state, so an order payload never shows whether it is real.update_leverageon an open position moves its liquidation price without trading.- Removing a stop-loss with
modify_positionorexecute_tpslstrips protection from a leveraged position.
Other notes the classifier adds
- On
close_position,close_positions_batch,execute_prediction_order,close_prediction_position,cancel_prediction_orderandupdate_leverage,confirmed: trueexecutes and anything else previews. When the payload hasconfirmed, the note says which one it is. A preview is judged as the action it previews. - A leveraged order with no take-profit or stop-loss, a market order, and a limit order with no price.
- A prediction market is named only by a numeric
market_idandoutcome_id, so the question is unverified unless your rules pin the id. Prediction prices must be between 0 and 1. convert_balances.needed_amountis the amount of the destination token to produce.
tools/list (45 tools, server Liquid-MCP 1.0.0, captured 2026-09).
Example
From an MCP client
Add the Chance connector next to Liquid’s and instruct the agent to callverify_intent before any Liquid tool that trades or moves funds, with your rules as intent, the exact tool call as action and venue: "liquid", and to act only on ALLOW. Chance never holds your Liquid login.
