> ## Documentation Index
> Fetch the complete documentation index at: https://docs.liquid.trade/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Every change to the Co-Invest MCP tools, newest first.

Dates are UTC. Each entry names the surfaces it applies to. A version is the first 8 characters of the surface's tool catalog hash. See the [tool reference](https://docs.liquid.trade/co-invest/tool-reference.md) for the current catalog.

**2026-11-12**

### A close, leverage change, cancel, TP/SL change or Earn request made right after a paper/live switch goes to the mode the switch set

*Main, Grok, Computer, Computer support* · fix

A confirmed `close_position`, `close_positions_batch`, `execute_tpsl`, `update_leverage` (with `confirmed: true` or `validationPhase: "executetime"`) or `cancel_order` call now reads the connector's paper/live mode from the shared store when it starts, and uses that mode for the whole call. So do `deposit_earn` and `withdraw_earn`. Before this, those calls used a copy of the mode cached by the server instance that handled them. For up to 5 seconds after paper trading was turned on through another instance, a close, leverage change, cancel or TP/SL change could reach the live account, and the reverse after paper trading was turned off. `execute_order`, `execute_orders_batch`, spot, trailing-stop and prediction orders already worked this way.

What a caller sees now:

* A close or TP/SL change confirmed against a preview made in the other mode is refused with the existing "was previewed in … mode" or "was prepared in … mode" message. Request a new preview.
* When the mode store cannot be read, these calls return `action_required` with `reason: "trading_mode_unverified"` and change nothing. Retry after a few seconds.

Previews and read tools such as `get_portfolio` still use the cached mode, so for up to 5 seconds after a switch they can describe the previous mode. Input schemas are unchanged.

### The portfolio card's Close button is covered by the close mode check

*Main, Grok, Computer* · fix

The Close button on the portfolio card now sends the trading mode the card was rendered in (`paper` or `live`) as `execution_mode` with its `close_position` call. If the connector's mode has changed since the card was shown, the close is refused with `Nothing was closed. Request a new close preview for the current mode.` and nothing is closed.

Before this, a Close clicked on a card that showed paper positions could close the live position in the same market after another session switched the connector back to live. The card stamps only a mode that `get_portfolio` verified; when the mode was not verified (`paperModeUnverified`), it sends no stamp and behaves as before. Tool input schemas are unchanged.

### read\_link no longer stalls on pages full of unclosed tags, and cuts long pages exactly at 1 MB

*Main, Grok, Computer* · fix

A page made of thousands of unclosed tags, such as `<nav <nav <nav ...`, could keep `read_link` busy for minutes, because each tag made the reader rescan the rest of the page. A 400 KB page of that kind took about 16 seconds, and a 1 MB page about 100 seconds, during which the server handled nothing else. `read_link` now reads the same page in well under a second, and returns the same text as before.

`read_link` reads at most 1 MB of a page. The text it returned could run a little past that limit, depending on how the page arrived over the network. It is now cut at the limit, and a multi-byte character split by the cut is dropped.

Callers need to do nothing. A result that ends with `[content truncated]` is incomplete, as before.

### Paper order, TP/SL and leverage readbacks no longer warn "no stop-loss" beside an active trailing stop

*Main, Grok, Computer* · fix

In paper mode, the protection readback printed after `execute_order`, `set_paper_tp_sl` and `update_paper_leverage` warned "WARNING: no stop-loss protects this position" for a position whose trailing stop was active. `update_leverage` and `view_open_orders` already reported that trailing stop as protection. These three readbacks now read the paper trailing stop the same way: an active one is listed with its current trigger and the quantity it closes, and the warning is left out when it covers the whole position.

Live mode is unchanged. Callers need to do nothing.

### A spot sell preview says when your tokens are reserved by open orders

*Main, Grok* · fix

An `execute_spot_order` sell preview no longer says "You hold no EQAAPL" when resting orders reserve the whole balance. It now says the amount is reserved by open orders and that cancelling them frees it. When a sale is larger than the available amount and part of the balance is reserved, the warning names both numbers. When the available part is below one size step, the existing sentence stays and names the reserved amount.

The `Available to sell:` line, the structured output and the confirmation rules do not change. `execute_spot_order` is served on Main and Grok.

**2026-11-11**

New versions: Main `6d0c2cc1`; Grok `dcea851a`; Computer `c14f38e3`

### analyze\_market's structured size breakdown uses the same bucket labels as its text

*Main, Grok, Computer, Computer support* · fix

`analyze_market` returns the positioning breakdown by account size in `sections.size.breakdownBySize`. Each row's `size` label came straight from the positioning feed, written with a decimal comma and a lowercase magnitude: `$1m–$2,5m` and `>$2,5m`. The tool's own text and `analyze_markets_batch` already wrote the same cohort as `>$2.5M`, so a caller reading structured content saw two spellings of one bucket, and `$2,5m` can be misread. The rows also arrived in no particular order.

The labels are now normalized (`<$1K`, `$1K–$10K`, … `$1M–$2.5M`, `>$2.5M`) and the rows run from the smallest bucket to the largest. Every figure in a row is unchanged.

A caller that matched a row by its exact old label, for example `>$2,5m`, should match the normalized label or the row's `sizeSegmentId` instead.

### A close previewed in paper mode and confirmed in live mode, or the reverse, is refused

*Main, Grok, Computer* · behavior

A close preview from `close_position` or `close_positions_batch` now records the trading mode it was prepared in, as `execution_mode` (`paper` or `live`) inside the preview's `aiAttribution.metadata`. When the confirming call passes that `aiAttribution` back and the connector's mode has changed since the preview, the call fails with `was previewed in paper mode, but the connector is now in live mode. Nothing was closed.` and closes nothing.

Before this, the close tools were the only confirmed trading actions not tied to a mode. Paper mode is shared by every session on a connection, so a close previewed against a paper position and confirmed after another session switched back to live closed the real position in the same market.

Callers that already pass the previewed `aiAttribution` unchanged need to do nothing; after a refusal, request a new preview. Only a confirmation that carries the previewed `aiAttribution` is checked. A confirmation sent without it behaves as before, and so do the portfolio card's Close button and Computer's one-step `close_position`, which have no preview to carry. Input schemas are unchanged.

### update\_leverage no longer warns "no stop-loss" beside an active paper trailing stop

*Main, Grok, Computer* · fix

In paper mode, the protection readback that `update_leverage` prints after a leverage change warned "WARNING: no stop-loss protects this position" for a position whose trailing stop was active, while `view_open_orders` reported the same trailing stop as protection. The readback now reads the paper trailing stop the same way: an active one is listed under "Stop-loss: none" (there is no stop-loss order) with its current trigger and the quantity it closes, and the warning is left out when it covers the whole position.

Live mode is unchanged. Callers need to do nothing.

### Show attached TP/SL on resting entry cards

*Main* · fix

The open-orders card now shows a resting entry's attached take-profit and stop-loss levels, marked as armed on fill. They remain separate from protection already active on a position. Cancelling still targets the parent order after confirmation.

### get\_transaction\_history names paper prediction trades

*Main, Grok, Computer* · fix

With paper trading switched on, `get_transaction_history` listed a simulated prediction trade under an internal id, for example `Prediction market #220790`, instead of the market it was placed on. The row now shows the market title and outcome, for example `BTC touches $85,000 · Yes`. Its price, value, fee and PnL are still the simulated fill's own.

The text result now also says that Prediction rows are simulated while paper trading is on; before, only Trade rows were marked. A row whose name cannot be read keeps the id label, and the result says that names are unavailable.

Live mode and paper-only connections are unchanged. Callers need to do nothing.

### view\_open\_orders lists a paper trailing stop beside a stop-loss order

*Main, Grok, Computer* · fix

In paper mode, `view_open_orders` reported an active trailing stop only for a position that had no stop-loss order. A position with both showed the stop-loss order alone, although the trailing stop can sit closer to the mark and close the position first. The protection readback now adds the "Trailing stop" line under the stop-loss line for such a position as well (phase, current trigger, quantity it closes). Beside a stop-loss order it does not warn that the position has no stop; it still warns when the trailing stop's quantity cannot be read or its active trigger is at or beyond the displayed liquidation price.

Live mode is unchanged. Callers need to do nothing; `view_trailing_stop` remains the full read.

### plan\_portfolio gives a notional range; a spot sellAll preview names the unsellable remainder

*Main, Grok, Computer, Computer support* · fix

`plan_portfolio` listed only the Liquid minimum on its "Notional per trade" line. It now also gives the range per trade, collateral per trade times the leverage cap: with \~$2000–$2666 collateral per trade and a 5x cap it reads `up to ~$10000–$13330 at the 5x cap`.

An `execute_spot_order` preview with `sellAll: true` now warns when the holding is not a whole number of size steps: the remainder below one step stays in the account, and the warning gives its amount and value. A holding smaller than one step says it cannot be sold. `execute_spot_order` is served on Main and Grok.

Inputs do not change. Callers need to do nothing.

### The portfolio card lists tokenized stock holdings

*Main* · changed

The `get_portfolio` card now lists tokenized stock holdings in a "Tokenized stocks" section, with symbol, quantity, value and PnL for each. The header counts them, for example "1 position · 1 tokenized stock", and an account with only tokenized stocks no longer reads "No open positions". Equity already included them.

When the holdings could not be loaded, the card says "Tokenized stocks are unavailable. Equity excludes them; refresh to try again." instead of reporting prediction positions as unavailable.

The tool's text and structured output do not change.

### The portfolio chart includes tokenized stock holdings

*Main, Grok, Computer, Computer support* · changed

`show_portfolio_chart` now draws tokenized stock holdings such as EQNVDA as slices of the chart, each marked Spot, beside the perp positions. An account that holds only tokenized stocks no longer returns an empty chart, and the text lines list the spot holdings.

When the spot holdings cannot be read, the chart still shows the perp positions and the text says the tokenized stocks are missing. Inputs and tool descriptions do not change. Callers need to do nothing.

### Tokenized stock quantities in the portfolio keep their precision

*Main, Grok, Computer, Computer support* · fix

`get_portfolio` now reports tokenized stock quantities with up to 8 decimals instead of rounding them to 2. A holding of 0.00982532 EQNVDA shows as 0.00982532, not 0.01, so a quantity copied from the portfolio into a sell no longer exceeds the holding.

Inputs, tool descriptions and schemas do not change. Callers need to do nothing.

### Positioning pulse names the exact market when a bare ticker means another one

*Main, Grok, Computer, Computer support* · fix

`get_positioning_pulse` listed every market by its bare ticker. Some tickers exist on more than one venue, and the bare ticker then resolves to a different market than the one the row describes: a row for `para:LRCX` read `LRCX`, which `analyze_market` resolves to `xyz:LRCX`, and a row for `para:STX` (Seagate) read `STX`, which is the Stacks perp. Following such a row up returned another market's price and positioning.

Such a row now carries the exact id after the name, for example `LRCX (para:LRCX)`. Pass that id to `analyze_market` or `suggest_trade`. Rows whose ticker already resolves to the same market are unchanged.

Callers need to do nothing.

### Browsing prediction markets no longer returns a match with outcomes missing

*Main, Grok, Computer* · fix

`search_prediction_markets` called without `query`, `match` or `category` could return its last group incomplete. With `limit: 5`, "Italy vs France" came back as Italy and Draw only, without France. `limit` counts groups, but the tool asked the venue for that many markets, and a match is several markets.

A browse now reads a full page of markets (100, or `limit` if larger) and returns up to `limit` whole groups. When a page ends before a match does, that match is left out; only a single match larger than the whole page still comes back cut. Searches with `query`, `match` or `category` were not affected.

Callers need to do nothing.

### A confirmed prediction order, close or cancel says whether it was paper or live

*Main, Grok, Computer* · fix

The preview for a prediction order, close or cancel names the trading mode, but the result of the confirmed call did not. A paper fill read `Prediction order filled: id 182707 BUY $11.3 on BTC touches $80,000 at 38.9%.`, the same words as a real bet.

The result text now ends with the mode it ran in: `Paper trade (simulated funds).` or `Live trade (real funds).` The text before it is unchanged.

Callers need to do nothing. A caller that reports the outcome to a user should carry the mode through.

### read\_link no longer returns script source for large pages, and says when the text is cut

*Main, Grok, Computer* · fix

`read_link` reads at most 1 MB of a page. When that limit fell inside a `<script>` or `<style>` element, the rest of the element was returned as page text. Liquid's own pages, such as `https://app.liquid.trade/trade/BTC`, came back as their framework's script payload. That element is now dropped, so the result holds only the readable text before it.

The `[content truncated]` line was also missing in two cases: when the extracted text was longer than the 6,000-character limit, and when a page over 1 MB was mostly multi-byte text. It is now added in both.

Callers need to do nothing. A result that ends with `[content truncated]` is incomplete, as before.

### Close and order refusals for a tokenized stock now point to the spot tool

*Main, Grok, Computer* · fix

Inputs do not change, and nothing is closed or placed differently; the replies say more. When a reply carries one of the lines below, trade the token with `execute_spot_order` instead of retrying the perp tool.

`close_positions_batch` (Main, Grok and Computer) closes perp positions only. When a requested symbol is a tokenized stock (for example `EQNVDA`, `EQNVDA/USDC` or `@1155`), the preview, the confirmed result and the "nothing to close" replies now add one line per token, such as "EQNVDA is a tokenized stock traded on spot. Use execute\_spot\_order (1x market buy or sell)." When every unmatched symbol is a tokenized stock, the reply no longer says the positions were likely already closed or asks for `get_portfolio`. Computer does not serve `execute_spot_order`, so there the line says the connector cannot trade the token. Paper mode and venue-prefixed symbols such as `xyz:NVDA` get no line, and a failed spot read adds nothing.

`execute_order` and `execute_orders_batch` (Main and Grok): a confirmation without `executionMode` for a symbol shaped like a tokenized stock (`EQ` plus a ticker, or `@` plus a number) still returns `CONFIRMATION_MODE_INVALID` with the same first text item, and now adds a second one, for example "If EQNVDA is a tokenized stock, it trades on spot: use execute\_spot\_order (1x market buy or sell). Perp order tools cannot place it." A basket names at most 3 such legs. No order was placed: request a new proposal for a perp, or use `execute_spot_order` for the token.

### A spot sell preview that would sell nothing says so instead of asking for confirmation

*Main, Grok* · fix

An `execute_spot_order` sell preview that would sell nothing now ends with "This order would sell nothing, so there is nothing to confirm." instead of asking for `confirmed=true`. This covers `sellAll` of a holding smaller than one size step or of no holding, and a `quantity` or USD `size` below one step. The preview also no longer repeats the symbol on token amounts (`SELL all EQNVDA (Tokenized NVDA)`, not `SELL all EQNVDA of EQNVDA`) and drops the "about 0" quantity estimate.

Sell previews now read the current holding instead of a cached one, so a `sellAll` preview right after a buy sees the new balance. `execute_spot_order` is served on Main and Grok.

Inputs and structured output do not change. Callers need to do nothing.

### Tokenized stocks are refused in market picks and labelled in open orders

*Main, Grok, Computer, Computer support* · fix

`market_picks` now fails with the same message the other perp tools give when a pick is a tokenized stock such as EQNVDA, instead of drawing a pick card with a trade link. When several picks are tokenized stocks, one error names each of them. An ambiguous asset still returns the asset choice, and other symbols behave as before. Use `execute_spot_order` for tokenized stocks.

`view_open_orders` now labels a resting spot limit order on a listed tokenized stock with its symbol (EQNVDA) instead of a raw `@` index. The text line ends with "spot | cancel in the Liquid app", the open orders widget shows a Spot chip, and that row has no Cancel button. The widget subtitle reads "Perp and spot orders, TP/SL" only when a spot order is listed. Perp orders and other spot coins render as before.

Inputs, tool descriptions and schemas do not change. Callers need to do nothing.

### get\_transaction\_history says paperMode covers Prediction rows

*Main, Grok, Computer* · changed

The `get_transaction_history` description said the `paperMode` flag applies only to Trade rows. In paper mode Prediction rows are simulated paper prediction fills too, so the description now says the flag applies to Trade and Prediction rows. Deposit, Withdraw, Send, Receive and Transfer rows are still always real wallet activity.

Only the description text changed; inputs, outputs and behavior are the same. Callers need to do nothing.

### Unusual-activity volume is labelled in units of the asset, not dollars

*Main, Grok, Computer, Computer support* · fix

The unusual-activity rows in `get_news` and `plan_portfolio` put a dollar sign in front of the last-hour volume. That figure is the number of units traded, not a dollar amount, so the label was wrong by the asset's price: NOT, at $0.000336 with $183K of volume in the whole day, read `$46.3M last hour`, and an asset priced above \$1 read too low.

A row now names the asset instead, for example `NOT — 2.8x vs 24h avg (46.3M NOT traded last hour)`. The ratio against the 24h average is unchanged and is still the figure to rank by. Multiply the units by the market's price from `analyze_market` when a dollar amount is needed.

Callers need to do nothing.

### Tool catalog changes

* Descriptions updated: `get_transaction_history` *(Main, Grok, Computer)*

**2026-11-10**

New versions: Main `eaed7b02`; Grok `8b690345`

### Basket proposals warn when a leg's stop loss sits beyond liquidation

*Main, Grok, Computer* · fix

`suggest_trades_batch` now makes the check `suggest_trade` already makes for a single order. A leg whose stop loss is at or beyond the liquidation price (the venue's for an existing same-side position, otherwise an estimate from the entry price and leverage) carries a `liquidationWarning`, and the same warning is added to the text result. It is a warning only: the basket is still prepared, and no leg is changed or removed.

Callers need to do nothing. `liquidationWarning` is a proposal field; do not send it to `execute_orders_batch`.

### modify\_position refuses a proposal that changes nothing

*Main, Grok, Computer* · fix

`modify_position` used to return a `pending_confirmation` proposal when the request carried no `takeProfit`, no `stopLoss` and neither `removeTP` nor `removeSL` (for example `action: remove_tpsl` with no removal flag). `execute_tpsl` then rejected that proposal, so it could never be applied. The preview now answers with an action-required error that says which field to send.

To remove a level, send `removeTP: true`, `removeSL: true`, or both. To add or change one, send `takeProfit`, `stopLoss`, or both.

### view\_open\_orders reports an active paper trailing stop

*Main, Grok, Computer* · fix

In paper mode, `view_open_orders` said "Stop-loss: none" and "WARNING: no stop-loss protects this position" for a position whose trailing stop was active, because a paper trailing stop is kept by the simulator and is not an open order. The protection readback now adds a "Trailing stop" line for such a position (phase, current trigger, quantity it closes) and warns when the stop is waiting for activation, covers less than the whole position, has an unreadable quantity, or has an active trigger at or beyond the displayed liquidation price. The liquidation warning explains that paper trading does not auto-liquidate. A configured quantity larger than the remaining position is shown with its maximum close, matching the simulator clamp.

Live mode is unchanged. Callers need to do nothing; `view_trailing_stop` remains the full read.

### Position history orders same-time fills correctly; open orders show attached TP/SL

*Main, Grok* · fix

`get_position_history` reported a position as `unknown`, with no exit size or PnL, when one order was filled against several makers at the same timestamp and the fills' trade ids did not happen to sort in execution order. Such fills are now ordered by their own start positions. A group that still cannot be ordered in exactly one way stays `unknown`, as before.

`view_open_orders` now shows the take-profit and stop-loss attached to a limit order that is still resting, for example `attached TP $180.00, SL $215.00 (armed on fill)`. They were placed before, but the list did not show them.

A paper `execute_order` sized by `quantity` reported its notional with floating-point noise (`30.000000000000053`). It now reports `30`. The order itself was always placed for the right quantity.

Callers need to do nothing.

### Clearer tokenized-stock results, history labels, profiles and perp twins

*Main, Grok, Computer, Computer support* · fix

Inputs do not change. Callers need to do nothing; the replies carry more information. `execute_spot_order` is served on Main and Grok; Computer serves the read tools below that it already had.

`execute_spot_order` now states the filled amount in USD on the first line (for example "Filled: Bought 0.06 EQNVDA ($10.70) at an average price of $178.31") and returns it as `filledNotionalUsd`. When the quantity was rounded down to the token's step, a second line says so. After a sell that leaves less than one step of the token, the reply says how much is left and that it is too small to sell by itself (`remainingQuantity`, `remainingUsd`). Read these lines instead of assuming the requested size was filled.

`get_transaction_history` shows tokenized stock fills with their EQ symbol (for example `EQNVDA`) instead of an `@` number. If the symbol cannot be resolved, the `@` number stays.

`get_asset_profile` accepts a listed EQ token and returns the profile of its underlying stock, with a note that the token is 1x spot, buy to own, with no leverage or shorting. If the underlying has no profile, the note is still returned.

`search_markets` and `analyze_market` now find the perp twin of a tokenized stock by ticker as well as by name, so a search for `SPCX` finds `xyz:SPCX` and the spot note appears on the SPACEX row. The match is on the exact ticker only.

### Tokenized-stock (EQX spot) reads work again

*Main, Grok* · fix

Since the 10 Nov release, spot rows were missing from `search_markets`, `get_portfolio` said tokenized stocks were unavailable, and `execute_spot_order` refused every order. The spot read now falls back to Hyperliquid when the data provider refuses it.

Callers need to do nothing.

### Tool catalog changes

* Added tool `execute_spot_order` *(Main, Grok)*

**2026-11-09**

New versions: Main `9306c5b6`; Grok `2c52e0c7`; Computer `04190d21`

### New execute\_spot\_order tool for live tokenized stock spot orders

*Main* · new

`execute_spot_order` buys or sells a tokenized stock (for example `EQAAPL`) with a live spot market order. Pass exactly one of `size` (USD), `quantity` (tokens, sell only) or `sellAll` (sell only). Without `confirmed: true` it returns a preview; with it, the order is placed once per `idempotencyKey`.

Tokenized stocks trade live only: in paper mode the call is refused and nothing is placed. Perp and unlisted symbols are refused and point to `execute_order`. A result is one of filled, partially filled, not filled, outcome unknown or rejected; an unknown outcome means check `get_portfolio` before retrying, never resend blindly.

Available on the `all` and `interactive-v1` profiles. It is not served on links-only, paper-only, Computer or managed-copy.

### Trailing stops for Hyperliquid positions, live and paper

*Main, Grok, Computer* · new

You can now put a trailing stop on an open Hyperliquid perp position, in live and in paper mode. `set_trailing_stop` places it, `view_trailing_stop` shows its state, and `remove_trailing_stop` takes it off.

The percentage you give is an equity retracement in return-on-margin (ROE) terms. It is turned into a fixed price retracement at the leverage in force when the stop is placed. With 10x leverage and a 20% trailing stop, the stop sits 2% of price behind the best price the position has reached. An entry at 100 gives a trigger of 98, and if the price rises to 110 the trigger rises to 107.8. It never moves back. The price retracement is rounded to 2 decimals, so `view_trailing_stop` can read back 20.01% after a 20% stop set at 3x. In live mode the stop is a native Hyperliquid trailing order, so it keeps working even if this connection's trading approval later expires.

An optional `sizePercent` closes only part of the position. The quantity is fixed when the stop is placed and does not follow later changes in position size. An optional `activationPrice` keeps the stop dormant until the price reaches it; once the stop is tracking, its activation price can no longer be changed.

Changing a stop places a new one and then cancels the old one, so the position is never unprotected. Tracking restarts from the current price. Removing a stop also cancels a trailing stop placed in Hyperliquid's own app.

Setting or removing a stop is a two-step flow. The first call, without `confirmed`, returns a preview with the trigger price at the start price; the stop is only placed or removed when the call is repeated with `confirmed=true` after the user agrees. Changing or removing a live stop needs a valid trading approval; if it has expired, reconnect Co-Invest to re-approve trading.

Trailing stops are for Hyperliquid markets only.

### Tool catalog changes

* Added tool `set_trailing_stop` *(Main, Grok, Computer)*
* Added tool `remove_trailing_stop` *(Main, Grok, Computer)*
* Added tool `view_trailing_stop` *(Main, Grok, Computer)*

**2026-11-03**

### MCP changelog, tool reference and stability policy

*Main, Grok, Computer, Computer support* · new

This page and the [tool reference](https://docs.liquid.trade/co-invest/tool-reference.md) are new. The changelog lists every change to the Co-Invest MCP tools, newest first, with an RSS feed at `/co-invest/changelog/rss.xml`.

**Stability:** a stable MCP URL or profile does not receive breaking changes. An incompatible change ships as a new opt-in profile or version, and every change, additive or behavioral, is listed here.

Entries before this date were reconstructed from the history of the served tool catalogs and from the commits that changed behavior without changing a schema.

**2026-10-23**

New versions: Main `4ce85b01`, `f500f892`; Grok `b7530ff2`, `38136474`; Computer `fb488584`, `a945d2bd`

### Tool catalog changes

* Added tool `get_asset_profile` *(Main, Grok, Computer)*
* Added tool `upcoming_earnings` *(Main, Grok, Computer)*
* `execute_order`: optional input `quantity` added *(Main, Grok, Computer)*
* `execute_order`: optional input `reduceOnly` added *(Main, Grok, Computer)*
* `execute_order`: input `leverage` is now optional *(Main, Grok, Computer)*
* `execute_order`: input `size` is now optional *(Main, Grok, Computer)*
* Descriptions updated: `execute_order` *(Main, Grok)*
* Descriptions updated: `execute_order`, `execute_tpsl` *(Computer)*

**2026-10-08**

New version: Main `70c43223`

### Tool catalog changes

* `search_prediction_markets`: widget binding added *(Main)*
* `show_prediction_orderbook`: widget binding added *(Main)*
* `view_prediction_positions`: widget binding added *(Main)*
* `close_prediction_position`: widget binding added *(Main)*
* `view_open_orders`: widget binding added *(Main)*

**2026-10-07**

New versions: Main `2dea38c2`, `30aba5a8`; Grok `099df6c8`; Computer `c63ed667`

### Tool catalog changes

* Added tool `deposit_earn` *(Main, Grok, Computer)*
* Added tool `withdraw_earn` *(Main, Grok, Computer)*
* Added tool `_earn_pending_status` *(Main, Grok, Computer)*
* Added tool `get_earn_balance` *(Main, Grok, Computer)*
* Added tool `enable_automated_trading` *(Main)*
* Added tool `disable_automated_trading` *(Main)*
* Added tool `automated_trading_status` *(Main)*
* Added tool `get_account` *(Main)*

**2026-10-06**

New versions: Main `97d24872`; Grok `b62c616d`; Computer `2d9ab5c6`

### Tool catalog changes

* `execute_prediction_order`: optional input `executionMode` added *(Main, Grok, Computer)*
* `close_prediction_position`: optional input `executionMode` added *(Main, Grok, Computer)*
* `cancel_prediction_order`: optional input `executionMode` added *(Main, Grok, Computer)*
* Descriptions updated: `execute_prediction_order`, `close_prediction_position`, `cancel_prediction_order` *(Main, Grok, Computer)*
* Server instructions updated *(Main)*

**2026-10-02**

New versions: Computer `06169fa1`; Computer support `b4b8fef9`

### Tool catalog changes

* First version: 34 tools: `analyze_market`, `analyze_markets_batch`, `automated_trading_status`, `cancel_order`, `close_position`, `create_onramp_session`, `disable_automated_trading`, `disable_paper_trading`, `enable_automated_trading`, `enable_paper_trading`, `enable_trading`, `execute_order`, `execute_orders_batch`, `execute_tpsl`, `generate_deposit_address`, `get_news`, `get_portfolio`, `get_position_history`, `get_positioning_pulse`, `get_technical_indicators`, `help`, `market_picks`, `paper_trading_status`, `plan_portfolio`, `refer`, `reset_paper_account`, `search_markets`, `show_chart`, `show_deposit`, `show_market_overview`, `show_orderbook`, `show_portfolio_chart`, `update_leverage`, `view_open_orders` *(Computer support)*
* First version: 54 tools: `analyze_market`, `analyze_markets_batch`, `automated_trading_status`, `cancel_order`, `cancel_prediction_order`, `close_position`, `close_positions_batch`, `close_prediction_position`, `create_onramp_session`, `disable_automated_trading`, `disable_paper_trading`, `edit_watchlist`, `enable_automated_trading`, `enable_paper_trading`, `enable_trading`, `execute_order`, `execute_orders_batch`, `execute_prediction_order`, `execute_tpsl`, `generate_deposit_address`, `get_account`, `get_news`, `get_portfolio`, `get_position_history`, `get_positioning_pulse`, `get_staking`, `get_technical_indicators`, `get_transaction_history`, `help`, `leaderboard_data`, `leaderboard_rank`, `market_picks`, `modify_position`, `paper_trading_status`, `payment_link`, `plan_portfolio`, `read_link`, `refer`, `reset_paper_account`, `search_markets`, `search_prediction_markets`, `show_chart`, `show_deposit`, `show_market_overview`, `show_orderbook`, `show_portfolio_chart`, `show_prediction_orderbook`, `suggest_order`, `suggest_trade`, `suggest_trades_batch`, `update_leverage`, `view_open_orders`, `view_prediction_orders`, `view_prediction_positions` *(Computer)*

**2026-09-30**

New versions: Main `fd1e0ecf`; Grok `a4900494`

### Tool catalog changes

* `market_picks`: input `picks` constraints changed *(Main, Grok)*
* Descriptions updated: `market_picks` *(Main, Grok)*

**2026-09-29**

New versions: Main `3d332235`, `e31dc853`; Grok `e4b94d97`, `3edea0aa`

### Tool catalog changes

* `execute_order`: optional input `maxSlippageBps` added *(Main, Grok)*
* `execute_orders_batch`: input `orders` constraints changed *(Main, Grok)*
* Descriptions updated: `generate_deposit_address` *(Main, Grok)*

**2026-09-28**

New versions: Main `8bd03706`, `18086167`, `046d7a09`, `7a6099cd`; Grok `ca2615e3`, `074ee2d6`, `df73e1d3`, `a017c1b9`, `8461b195`

### Tool catalog changes

* Descriptions updated: `enable_paper_trading`, `disable_paper_trading`, `reset_paper_account`, `paper_trading_status` *(Main, Grok)*
* Descriptions updated: `view_open_orders` *(Main, Grok)*
* First version: 54 tools: `analyze_market`, `analyze_markets_batch`, `automated_trading_status`, `cancel_order`, `cancel_prediction_order`, `close_position`, `close_positions_batch`, `close_prediction_position`, `create_onramp_session`, `disable_automated_trading`, `disable_paper_trading`, `edit_watchlist`, `enable_automated_trading`, `enable_paper_trading`, `enable_trading`, `execute_order`, `execute_orders_batch`, `execute_prediction_order`, `execute_tpsl`, `generate_deposit_address`, `get_account`, `get_news`, `get_portfolio`, `get_position_history`, `get_positioning_pulse`, `get_staking`, `get_technical_indicators`, `get_transaction_history`, `help`, `leaderboard_data`, `leaderboard_rank`, `market_picks`, `modify_position`, `paper_trading_status`, `payment_link`, `plan_portfolio`, `read_link`, `refer`, `reset_paper_account`, `search_markets`, `search_prediction_markets`, `show_chart`, `show_deposit`, `show_market_overview`, `show_orderbook`, `show_portfolio_chart`, `show_prediction_orderbook`, `suggest_order`, `suggest_trade`, `suggest_trades_batch`, `update_leverage`, `view_open_orders`, `view_prediction_orders`, `view_prediction_positions` *(Grok)*
* `execute_tpsl`: optional input `executionMode` added *(Main, Grok)*
* Descriptions updated: `modify_position`, `execute_tpsl` *(Grok)*
* `suggest_trades_batch`: input `trades` constraints changed *(Main, Grok)*
* `execute_orders_batch`: input `orders` constraints changed *(Main, Grok)*
* Descriptions updated: `suggest_trade`, `suggest_order`, `execute_order` *(Main, Grok)*
* Server instructions updated *(Main)*

**2026-09-27**

New version: Main `b989a804`

### Tool catalog changes

* `execute_tpsl`: input `symbol` is now optional *(Main)*

**2026-09-25**

New version: Main `63a1f511`

### Tool catalog changes

* Removed tool `convert_balances` *(Main)*
* Removed tool `_convert_pending_status` *(Main)*
* `execute_order`: input `_resume_from_convert` removed *(Main)*

**2026-09-23**

New version: Main `8cdda5b2`

### Tool catalog changes

* Added tool `get_position_history` *(Main)*

**2026-09-21**

New versions: Main `f5edf6f7`, `09fd2793`, `9f58c486`, `37aa5054`, `b029c999`, `c20f274a`, `ed92c4c5`, `e6c35447`

### execute\_order and execute\_orders\_batch require confirmed=true to place orders

*Main, Grok* · behavior

`execute_order` and `execute_orders_batch` are the tools the order confirmation cards call when the user presses Confirm. Before this change any call with complete order parameters placed the order at once, live or paper.

Now the order is only placed when `confirmed: true` is present. Without it (or with `confirmed: false`) the tool returns a preview and places nothing. The new `confirmed` input is optional in the schema, so the tool list did not visibly change and calls that omitted it started returning previews instead of orders.

**What a caller does now:** call `suggest_order` (or `execute_order` without `confirmed`) to get the preview, show it to the user, and call `execute_order` with `confirmed: true` only after explicit approval. Automations that placed orders in a single call must add `confirmed: true`.

### Tool catalog changes

* `get_transaction_history`: output schema changed *(Main)*
* Descriptions updated: `get_transaction_history` *(Main)*
* `get_technical_indicators`: output schema changed *(Main)*
* Descriptions updated: `get_portfolio` *(Main)*
* Descriptions updated: `view_open_orders` *(Main)*
* `execute_order`: optional input `confirmed` added *(Main)*
* `execute_orders_batch`: optional input `confirmed` added *(Main)*
* `execute_order`: optional input `idempotencyKey` added *(Main)*
* `execute_orders_batch`: optional input `idempotencyKey` added *(Main)*
* `execute_tpsl`: optional input `confirmed` added *(Main)*
* Added tool `payment_link` *(Main)*
* `reset_paper_account`: help text changed *(Main)*
* Descriptions updated: `analyze_market`, `get_positioning_pulse`, `market_picks`, `analyze_markets_batch`, `suggest_trade`, `modify_position`, `suggest_trades_batch`, `plan_portfolio`, `search_markets`, `show_market_overview`, `show_orderbook`, `show_chart`, `get_technical_indicators`, `enable_trading`, `get_portfolio`, `show_portfolio_chart`, `leaderboard_data`, `leaderboard_rank`, `get_transaction_history`, `get_news`, `read_link`, `enable_paper_trading`, `show_deposit`, `refer`, `get_staking`, `convert_balances`, `edit_watchlist` *(Main)*

**2026-09-20**

### execute\_tpsl requires confirmed=true to change take-profit or stop-loss orders

*Main, Grok* · behavior

`execute_tpsl` is the tool the take-profit/stop-loss confirmation card calls when the user presses Confirm. Before this change a direct call with `tp`, `sl`, `removeTP` or `removeSL` cancelled and replaced the position's trigger orders immediately, with no preview.

Now the call only changes orders when `confirmed: true` is present. Without it (or with `confirmed: false`) the tool returns the same pending-confirmation preview as `modify_position` and sends nothing to the venue.

**What a caller does now:** show the preview to the user and call `execute_tpsl` again with `confirmed: true` after they approve. The input schema gained an optional `confirmed` property, so existing tool lists stay valid; the change is in behavior only.

**2026-09-16**

New version: Main `515e85f3`

### Tool catalog changes

* Descriptions updated: `get_transaction_history`, `convert_balances` *(Main)*

**2026-09-14**

New versions: Main `1d1adc04`, `d81dee32`, `6cb95ad3`

### Tool catalog changes

* Added tool `suggest_order` *(Main)*
* Server instructions updated *(Main)*
* Descriptions updated: `search_prediction_markets`, `show_prediction_orderbook`, `leaderboard_data`, `leaderboard_rank`, `get_staking` *(Main)*
* Added tool `read_link` *(Main)*

**2026-09-10**

New version: Main `f4bf598d`

### Tool catalog changes

* Descriptions updated: `execute_prediction_order` *(Main)*

**2026-09-09**

New versions: Main `6b4aca77`, `51564e4c`

### Tool catalog changes

* Descriptions updated: `analyze_market` *(Main)*
* `execute_order`: optional input `executionMode` added *(Main)*
* `execute_orders_batch`: optional input `executionMode` added *(Main)*
* Descriptions updated: `enable_paper_trading`, `disable_paper_trading`, `paper_trading_status` *(Main)*
* Server instructions updated *(Main)*

**2026-09-08**

New version: Main `9ca83f8c`

### Tool catalog changes

* First version: 48 tools: `_convert_pending_status`, `analyze_market`, `analyze_markets_batch`, `cancel_order`, `cancel_prediction_order`, `close_position`, `close_positions_batch`, `close_prediction_position`, `convert_balances`, `create_onramp_session`, `disable_paper_trading`, `edit_watchlist`, `enable_paper_trading`, `enable_trading`, `execute_order`, `execute_orders_batch`, `execute_prediction_order`, `execute_tpsl`, `generate_deposit_address`, `get_news`, `get_portfolio`, `get_positioning_pulse`, `get_staking`, `get_technical_indicators`, `get_transaction_history`, `help`, `leaderboard_data`, `leaderboard_rank`, `market_picks`, `modify_position`, `paper_trading_status`, `plan_portfolio`, `refer`, `reset_paper_account`, `search_markets`, `search_prediction_markets`, `show_chart`, `show_deposit`, `show_market_overview`, `show_orderbook`, `show_portfolio_chart`, `show_prediction_orderbook`, `suggest_trade`, `suggest_trades_batch`, `update_leverage`, `view_open_orders`, `view_prediction_orders`, `view_prediction_positions` *(Main)*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.