| fetch_markets_summaryA | List all tradable markets with their current summary (mark price, 24h change, volume, open interest, funding). Public — no credentials needed. |
| fetch_tickerA | Get the ticker (last price, bid/ask, 24h stats) for one market, e.g. "BTC-USDX-PERP". Public — no credentials needed. |
| fetch_order_bookB | Get the current order book (bids/asks with price + size) for one market. Public — no credentials needed. |
| fetch_marketsA | List all markets with their static specs (tick size, lot size, leverage, contract details) — the raw market definitions without live summary stats. Public — no credentials needed. (Use fetch_markets_summary for live mark price / volume / funding.) |
| fetch_tickersA | Get tickers (last price, bid/ask, 24h stats) for ALL markets in one call. Public — no credentials needed. |
| fetch_mark_priceA | Get the current mark price for one market. Public — no credentials needed. |
| fetch_market_statusB | Get a market's trading status and halt info (whether trading is open, halted, or in auction). Public — no credentials needed. |
| fetch_tradesA | Get recent public trades (prints) for one market, newest first. Returns { items, next_cursor }. items is this page of results; next_cursor is an opaque token for the next page, or null when this is the last page. To read the full history, keep calling with cursor: <previous next_cursor> until next_cursor is null. limit sets the size of ONE page, not a total. Public — no credentials needed. |
| fetch_ohlcvA | Get OHLCV candles for one market. Public — no credentials needed. Timeframe is one of 1s, 1m, 5m, 1h (default 1m). |
| fetch_funding_rate_historyA | Get the funding-rate history for one perpetual market. Public — no credentials needed. |
| fetch_funding_samplesA | Get the dense per-tick funding premium-index samples for one perpetual market (60s cadence, up to 480 points = 8h). Finer-grained than fetch_funding_rate_history, which returns the settled hourly rates. Public — no credentials needed. |
| fetch_market_risk_paramsA | Get one market's risk parameters: margin requirements and maximum leverage, from the engine's market registry. Public — no credentials needed. |
| fetch_statsA | Get aggregate venue statistics (volume, trades, throughput) plus rolling unique-trader counts. Public — no credentials needed. |
| fetch_stats_historyA | Get the venue's per-second throughput history (ring buffer, up to 3600 points). Public — no credentials needed. |
| get_demo_accountA | Get a live, public demo account snapshot (balance, equity, positions). No credentials needed — useful to show the account flow before API keys are wired up. |
| get_demo_positionsA | Get the public demo account's open positions. No credentials needed. |
| get_demo_ordersA | Get the public demo account's open orders. No credentials needed. |
| fetch_balanceA | Get the authenticated account snapshot: collateral balance, equity, and positions. Positions carry per-position risk detail. notional_value, margin_used, roe, max_leverage, and leverage are derived from mirrored state, so any of them can be null with a companion <field>_error naming the reason (e.g. mark_price_unavailable); treat null as UNKNOWN, never as zero. leverage is currently always null (leverage_error: margin_state_not_mirrored) — do not infer it from margin_used. funding_paid is NOT one of those: it is always present and has no _error companion, so its "0" is a real zero (no funding accrued), not unknown. It is paid-positive — a negative value means funding was received. Requires API credentials. |
| fetch_account_summaryA | Get the authenticated account's portfolio summary (equity, margin usage, PnL rollup) — a richer view than fetch_balance. Includes withdrawable: the engine-authoritative free margin floored at zero, i.e. exactly what can leave the account (never negative). Because withdrawable comes from that authoritative margin view, this call fails closed with a 502 (authoritative_margin_unavailable) when the view is unavailable rather than returning a local estimate: retry after a short delay, do NOT read the error as a flat or empty account. Requires API credentials. |
| fetch_account_stateA | Get the authenticated account's full state in ONE call: the portfolio summary aggregates plus every open position ({ summary, positions }). Prefer this over pairing fetch_account_summary with fetch_positions — both parts come from one coherent read, so summary.open_positions_count always matches the positions length. If the engine-authoritative margin view is unavailable this fails closed with a 502 (authoritative_margin_unavailable) rather than returning an estimate: retry after a short delay, do NOT read the error as a flat or empty account. Positions carry per-position risk detail. notional_value, margin_used, roe, max_leverage, and leverage are derived from mirrored state, so any of them can be null with a companion <field>_error naming the reason (e.g. mark_price_unavailable); treat null as UNKNOWN, never as zero. leverage is currently always null (leverage_error: margin_state_not_mirrored) — do not infer it from margin_used. funding_paid is NOT one of those: it is always present and has no _error companion, so its "0" is a real zero (no funding accrued), not unknown. It is paid-positive — a negative value means funding was received. Requires API credentials. |
| fetch_trading_feesA | Get the authenticated account's effective fee schedule: maker/taker rate in basis points (a NEGATIVE maker rate is a rebate paid TO the maker), fee tier, rolling 30-day traded volume, and any active discounts. This is the forward-looking schedule rate for the scope named by schedule (per-market rates differ), not a realized per-fill average; volume_30d_estimated: true means the 30-day volume may undercount. Requires API credentials. |
| fetch_portfolio_historyA | Get the authenticated account's portfolio time-series — equity, cumulative trading PnL, and cumulative traded volume — over a selectable window, oldest first. Richer than fetch_equity_history (equity only, 5s cadence, ~1h); both derive equity from the same source, so the two never disagree. Each window sets its own downsample cadence and point capacity: day 5m/288, week 1h/168, month 6h/120, all 1d/366. pnl is deposit-neutral (trading performance only) and volume is monotonically non-decreasing. This is a HEAVY read — the gateway charges it 5x an ordinary GET, so a single call draws about five requests' worth of budget and the remaining reported by fetch_rate_limit_status (counted in ordinary requests) drops by ~5. Poll it sparingly. Requires API credentials. |
| fetch_equity_historyA | Get the authenticated account's equity time-series (5s cadence, ~1h window), oldest first. For a longer window, or for PnL and volume series alongside equity, use fetch_portfolio_history. Returns { items, next_cursor }. items is this page of results; next_cursor is an opaque token for the next page, or null when this is the last page. To read the full history, keep calling with cursor: <previous next_cursor> until next_cursor is null. limit sets the size of ONE page, not a total. Requires API credentials. |
| fetch_positionsA | Get the authenticated account's open positions. Positions carry per-position risk detail. notional_value, margin_used, roe, max_leverage, and leverage are derived from mirrored state, so any of them can be null with a companion <field>_error naming the reason (e.g. mark_price_unavailable); treat null as UNKNOWN, never as zero. leverage is currently always null (leverage_error: margin_state_not_mirrored) — do not infer it from margin_used. funding_paid is NOT one of those: it is always present and has no _error companion, so its "0" is a real zero (no funding accrued), not unknown. It is paid-positive — a negative value means funding was received. Requires API credentials. |
| fetch_positions_historyA | Get the authenticated account's closed positions (realized PnL per position). Returns { items, next_cursor }. items is this page of results; next_cursor is an opaque token for the next page, or null when this is the last page. To read the full history, keep calling with cursor: <previous next_cursor> until next_cursor is null. limit sets the size of ONE page, not a total. Requires API credentials. |
| fetch_open_ordersB | Get the authenticated account's resting (open) orders. Requires API credentials. |
| fetch_orderA | Get a single order by its id (status, fills, remaining size). Pass market_id when known — the spec marks it required for routing, though the gateway currently resolves the order without it. Requires API credentials. |
| fetch_ordersA | Get the authenticated account's terminal-status order history (filled / cancelled / rejected / expired), newest first. Returns { items, next_cursor }. items is this page of results; next_cursor is an opaque token for the next page, or null when this is the last page. To read the full history, keep calling with cursor: <previous next_cursor> until next_cursor is null. limit sets the size of ONE page, not a total. Requires API credentials. |
| fetch_my_tradesA | List the authenticated account's fills (executed trades), newest first. Returns { items, next_cursor }. items is this page of results; next_cursor is an opaque token for the next page, or null when this is the last page. To read the full history, keep calling with cursor: <previous next_cursor> until next_cursor is null. limit sets the size of ONE page, not a total. Requires API credentials. |
| fetch_funding_historyA | Get the authenticated account's funding-payment history, newest first, optionally filtered to a single market. Requires API credentials. |
| fetch_withdrawalsB | List the authenticated account's withdrawal history. Requires API credentials. |
| fetch_depositsB | List the authenticated account's deposit history. Requires API credentials. |
| fetch_rate_limit_statusA | Get the authenticated account's current rate-limit status (remaining request budget). Useful for an agent to pace itself. Requires API credentials. |
| fetch_adl_historyA | Get the auto-deleveraging (ADL) events that touched a given account. Requires API credentials. |
| fetch_cancel_on_disconnectA | Get the authenticated account's cancel-on-disconnect (COD) status. COD is an opt-in dead man's switch: when the account's last authenticated WebSocket connection drops and does not reconnect within the grace window, the exchange cancels all of the account's resting orders. Returns enabled (the account's own opt-in), active (whether it will actually fire — the opt-in AND the exchange-side feature switch), and grace_secs (the reconnect window in seconds, null when the feature is unavailable). Clients that trade purely over REST and never open a WebSocket are not covered. Requires API credentials. |
| set_cancel_on_disconnectA | Enable or disable cancel-on-disconnect (COD) for the authenticated account. Pass enabled: true to arm the dead man's switch (the exchange cancels all resting orders when your authenticated WebSocket drops and does not reconnect within the grace window) or enabled: false to disable it. Off by default. enabled is required and explicit — there is no default — so every call states the intended state and an argless call is rejected rather than silently toggling. Returns the resulting COD status. Requires API credentials. |
| create_orderA | Place an order on a market, buy/sell. Supports limit, market, stop-loss (stop_limit / stop_market), take-profit (take_profit_limit / take_profit_market), and trailing (trailing_stop / trailing_limit) orders. Limit-family orders require a price; stop / take-profit orders require a trigger_price; trailing orders require trailing_offset_bps (and trailing_limit also limit_offset_bps). Requires API credentials. This submits a REAL order to the matching engine. |
| create_ordersB | Submit multiple orders in one request. Each order has the same shape as create_order (market_id, side, type, size, and the type-dependent price / trigger_price / trailing offsets / time_in_force / reduce_only). Requires API credentials. This submits REAL orders to the matching engine. |
| cancel_orderA | Cancel ONE resting order by order_id. market_id is required (the route uses it for routing). This tool only ever cancels the single named order; to cancel every open order use cancel_all_orders. Requires API credentials. |
| cancel_all_ordersA | Cancel ALL of the authenticated account's open orders, optionally scoped to one market with market_id. Destructive: you must pass confirm: true, so a stray or argless call can't mass-cancel by accident. To cancel a single order use cancel_order. Requires API credentials. |
| edit_orderA | Amend a resting order's price and/or size in one atomic cancel-replace operation. At least one of price or size is required; a pre-trade margin check is applied to the replacement before it is accepted. Liquidation orders cannot be amended. Requires API credentials. This modifies a REAL order on the matching engine. |
| preview_orderA | Preview an order without submitting it: projects the margin, equity, and fee impact of the order. Takes the same arguments as create_order. Nothing reaches the matching engine. Requires API credentials. |
| fetch_adl_eventsA | Get the auto-deleveraging (ADL) settlement history for one market — the events where the engine force-closed positions to cover a shortfall. Requires API credentials. |
| depositB | Deposit USDX collateral into the authenticated account. amount is a positive decimal string. Requires API credentials. This moves REAL collateral on the account. |
| claim_creditA | Claim synthetic USDX credit from the testnet faucet, up to a per-key daily allowance (default 500 USDX, resets midnight UTC). Pass amount (positive decimal string) to claim a specific amount, or omit it to claim the full remaining allowance. The credited USDX is synthetic testnet value. Requires API credentials. |
| create_depositA | Submit a (testnet/synthetic) deposit for the authenticated account via the deposits ledger (POST /deposits — unlike deposit, the deposit is recorded and listable with fetch_deposits). amount is a positive decimal string; asset defaults to USDX. Requires API credentials. This moves REAL collateral on the account. |
| claim_faucetA | Claim the fixed testnet faucet amount of synthetic USDX for the authenticated account, subject to a per-wallet cooldown and cumulative cap. Unlike claim_credit the amount is fixed server-side — no arguments. Requires API credentials. |
| add_marginA | Add or remove isolated margin on an open position. Fails if the position is not in isolated margin mode (MarginModeNotIsolated), if there is no open position in the market (NoOpenPosition), or if a removal breaches the margin floor. amount is a positive decimal string. Requires API credentials. This moves REAL margin on the position. |
| fetch_bridge_assetsA | List the bridgeable chains and, per chain, the depositable assets (USDC, USDX) and withdrawable assets (USDX) with their decimals, minimum amounts, required confirmations, and fees. Public catalog — no credentials needed. Use it to discover valid chain values for the other bridge tools. |
| create_bridge_deposit_addressA | Deprecated: no server implements this route (its design was cancelled, ENG-11460), so every call fails. Get or create the authenticated account's cross-chain deposit address on a chain. Sending a supported asset to the returned address credits the account. Idempotent per (account, chain): repeated calls return the same address rather than allocating a new one. Requires API credentials. |
| list_bridge_deposit_addressesA | Deprecated: no server implements this route (its design was cancelled, ENG-11460), so every call fails. List the authenticated account's cross-chain deposit addresses across chains. Requires API credentials. |
| fetch_bridge_depositsA | List the authenticated account's cross-chain (bridge) deposits, newest first. Optionally filter by source chain, asset (USDC|USDX), or status (detected|confirming|credited|failed). Distinct from fetch_deposits, which lists the account's ledger deposits. Requires API credentials. |
| fetch_bridge_depositB | Fetch a single cross-chain (bridge) deposit by id. Only deposits owned by the authenticated account are returned. Requires API credentials. |
| create_bridge_wallet_challengeA | Step 1 of registering a withdrawal wallet: returns the exact message to sign with that wallet's key (EIP-191 personal_sign) and the expires_at it is valid until. Sign the message in the wallet and pass it and the signature to register_bridge_wallet, or, for the wallet create_wallet made, omit the signature and the server signs. Treat message as opaque: echo it back verbatim, never reformat, re-encode or trim it. The nonce field is informational — sign message, not the nonce, and do not treat the challenge as single-use: until it expires the same signature can be submitted again, which is harmless because the message is bound to your account and to address. Mints nothing and changes no state, so it is safe to call before you have decided to register. A 503 wallet_registration_unavailable means this deployment has no challenge key configured — registration is off there, and retrying will not help. Requires API credentials. |
| register_bridge_walletA | Step 2 of registering a withdrawal wallet: submit the address, the message returned by create_bridge_wallet_challenge echoed back VERBATIM, and the EIP-191 signature over it. Omit signature to have the stdio server sign with its own wallet (see create_wallet; play-funds targets only, and address must be that wallet). The address recovered from the signature must equal address, and the challenge must name the authenticated account. The registered wallet is where withdrawals are paid, so getting it wrong matters: an account holds ONE wallet in this cut and replacement is not supported — registering a different address afterwards is refused with 409 wallet_already_registered rather than updating the record. Because of that you must pass confirm: true. Re-registering the SAME address is idempotent and returns the existing record. Errors: invalid_address, invalid_challenge, challenge_expired, signature_mismatch, account_mismatch on 400; wallet_registration_unavailable on 503 when the deployment has no challenge key (not transient — do not retry). Requires API credentials. |
| list_bridge_walletsA | List the authenticated account's registered withdrawal wallets. Wallets are not chain-scoped: one EVM address is valid on every supported EVM chain, and the chain is chosen per withdrawal. In this cut an account holds at most one wallet and both verified and is_default are always true on it, so do not branch on either — they start varying only with the wallet-lifecycle follow-up. An empty wallets array means nothing is registered yet; use create_bridge_wallet_challenge then register_bridge_wallet. Requires API credentials. |
| fetch_agentsA | List the delegated agent keys registered for the authenticated wallet (address, label, expiry). Requires API credentials. |
| register_agentA | Register a delegated agent key so an AI agent can trade on a wallet's behalf without holding the wallet key. Authorized by an EIP-712 signature from the OWNER WALLET over RegisterAgent{agent, expiresAt, nonce} (domain Nexus Exchange v1). Sign it in the wallet and pass wallet and signature, or omit both to have the stdio server sign with its own wallet (see create_wallet; testnet and local only, expiry defaulting to now+30d). No API credentials are needed; the signature is the authorization. |
| revoke_agentA | Revoke a previously registered delegated agent key by its address. Destructive: the agent can no longer trade on the wallet's behalf. To avoid an accidental revoke you must pass confirm: true. Requires API credentials. |
| create_walletA | Make a new EVM wallet for this server to sign with, on a play-funds target only (testnet, local, or a custom stage declared NEXUS_EXCHANGE_FUNDS=play). The key is saved in this network's section of the Nexus CLI config (0600) and used for the rest of the session; only the address comes back, never the key. After it, login, register_agent and register_bridge_wallet sign for themselves when signature is omitted, so create_wallet, login, create_api_key gets an agent an account with nothing signed elsewhere. If a wallet already exists for this network it is refused unless confirm: true, which overwrites the old key and keeps it nowhere. Stdio server only. Refused on mainnet and on any target whose funds are real or undeclared. |
| loginA | Sign in with an EVM wallet to get a 24h session token. Submit an EIP-191 personal_sign signature over the exact message "Sign in to Nexus Exchange", made in the wallet and passed as signature. Omit signature to have the stdio server sign with its own wallet (see create_wallet; play-funds targets only). The returned token is the Bearer credential for the *_api_key tools. The stdio server keeps it for the rest of this session and saves it for this network in the Nexus CLI config (saved_to names the file), so nothing has to be copied into the environment. No credentials needed to call this. |
| fetch_api_keysA | List the HMAC API keys for the authenticated wallet (key ids and metadata; never the secrets). Authenticates with the session token from login, or NEXUS_EXCHANGE_SESSION_TOKEN. |
| create_api_keyA | Create a new HMAC API key for the authenticated wallet. The stdio server keeps the key for the rest of this session, so the account and trading tools work right away. The API shows the secret ONCE: the stdio server saves it for this network in the Nexus CLI config and secret comes back redacted, with saved_to naming the file. When it could not be saved, secret is returned in full and must be stored now. Authenticates with the session token from login, or NEXUS_EXCHANGE_SESSION_TOKEN. |
| delete_api_keyA | Delete (revoke) an HMAC API key by its key id. Destructive: any caller using that key stops working. You must pass confirm: true. Authenticates with the session token from login, or NEXUS_EXCHANGE_SESSION_TOKEN. |
| create_ws_tokenA | Mint a short-lived (60s, single-use) token for an authenticated per-account WebSocket stream (order/fill/position updates). Uses the current /ws/token endpoint, which supports HMAC keys and registered agents. The response carries ws_endpoint — the URL to connect to for the configured network — so no host has to be guessed. Requires API credentials. |
| create_ws_token_legacyA | Mint a short-lived (60s, single-use) token for the legacy public /stream endpoint via POST /ws-tokens. Prefer create_ws_token (/ws/token) for new code; this is kept for /stream compatibility. The response carries ws_endpoint for the configured network. Requires API credentials. |
| fetch_statusA | Aggregate service health of the exchange stack (indexer / engine / oracle / bots), as used by status pages. Public — no credentials needed. |
| get_deposit_targetB | Get the on-chain deposit target (address/memo) to fund the account. This legacy single-target lookup remains unbuilt server-side, and the bridge deposit-address tools that were to supersede it are deprecated because nothing serves them either. |
| list_marketsA | Deprecated: use fetch_markets_summary. List all tradable markets with their current summary (mark price, 24h change, volume, open interest, funding). Public — no credentials needed. |
| get_tickerA | Deprecated: use fetch_ticker. Get the ticker (last price, bid/ask, 24h stats) for one market, e.g. "BTC-USDX-PERP". Public — no credentials needed. |
| get_orderbookA | Deprecated: use fetch_order_book. Get the current order book (bids/asks with price + size) for one market. Public — no credentials needed. |
| list_market_specsA | Deprecated: use fetch_markets. List all markets with their static specs (tick size, lot size, leverage, contract details) — the raw market definitions without live summary stats. Public — no credentials needed. (Use fetch_markets_summary for live mark price / volume / funding.) |
| get_tickersA | Deprecated: use fetch_tickers. Get tickers (last price, bid/ask, 24h stats) for ALL markets in one call. Public — no credentials needed. |
| get_mark_priceA | Deprecated: use fetch_mark_price. Get the current mark price for one market. Public — no credentials needed. |
| get_market_statusA | Deprecated: use fetch_market_status. Get a market's trading status and halt info (whether trading is open, halted, or in auction). Public — no credentials needed. |
| get_tradesA | Deprecated: use fetch_trades. Get recent public trades (prints) for one market, newest first. Returns { items, next_cursor }. items is this page of results; next_cursor is an opaque token for the next page, or null when this is the last page. To read the full history, keep calling with cursor: <previous next_cursor> until next_cursor is null. limit sets the size of ONE page, not a total. Public — no credentials needed. |
| get_candlesA | Deprecated: use fetch_ohlcv. Get OHLCV candles for one market. Public — no credentials needed. Timeframe is one of 1s, 1m, 5m, 1h (default 1m). |
| get_funding_historyA | Deprecated: use fetch_funding_rate_history. Get the funding-rate history for one perpetual market. Public — no credentials needed. |
| get_funding_samplesA | Deprecated: use fetch_funding_samples. Get the dense per-tick funding premium-index samples for one perpetual market (60s cadence, up to 480 points = 8h). Finer-grained than fetch_funding_rate_history, which returns the settled hourly rates. Public — no credentials needed. |
| get_market_risk_paramsA | Deprecated: use fetch_market_risk_params. Get one market's risk parameters: margin requirements and maximum leverage, from the engine's market registry. Public — no credentials needed. |
| get_statsA | Deprecated: use fetch_stats. Get aggregate venue statistics (volume, trades, throughput) plus rolling unique-trader counts. Public — no credentials needed. |
| get_stats_historyA | Deprecated: use fetch_stats_history. Get the venue's per-second throughput history (ring buffer, up to 3600 points). Public — no credentials needed. |
| get_balanceA | Deprecated: use fetch_balance. Get the authenticated account snapshot: collateral balance, equity, and positions. Positions carry per-position risk detail. notional_value, margin_used, roe, max_leverage, and leverage are derived from mirrored state, so any of them can be null with a companion <field>_error naming the reason (e.g. mark_price_unavailable); treat null as UNKNOWN, never as zero. leverage is currently always null (leverage_error: margin_state_not_mirrored) — do not infer it from margin_used. funding_paid is NOT one of those: it is always present and has no _error companion, so its "0" is a real zero (no funding accrued), not unknown. It is paid-positive — a negative value means funding was received. Requires API credentials. |
| get_account_summaryA | Deprecated: use fetch_account_summary. Get the authenticated account's portfolio summary (equity, margin usage, PnL rollup) — a richer view than fetch_balance. Includes withdrawable: the engine-authoritative free margin floored at zero, i.e. exactly what can leave the account (never negative). Because withdrawable comes from that authoritative margin view, this call fails closed with a 502 (authoritative_margin_unavailable) when the view is unavailable rather than returning a local estimate: retry after a short delay, do NOT read the error as a flat or empty account. Requires API credentials. |
| get_account_stateA | Deprecated: use fetch_account_state. Get the authenticated account's full state in ONE call: the portfolio summary aggregates plus every open position ({ summary, positions }). Prefer this over pairing fetch_account_summary with fetch_positions — both parts come from one coherent read, so summary.open_positions_count always matches the positions length. If the engine-authoritative margin view is unavailable this fails closed with a 502 (authoritative_margin_unavailable) rather than returning an estimate: retry after a short delay, do NOT read the error as a flat or empty account. Positions carry per-position risk detail. notional_value, margin_used, roe, max_leverage, and leverage are derived from mirrored state, so any of them can be null with a companion <field>_error naming the reason (e.g. mark_price_unavailable); treat null as UNKNOWN, never as zero. leverage is currently always null (leverage_error: margin_state_not_mirrored) — do not infer it from margin_used. funding_paid is NOT one of those: it is always present and has no _error companion, so its "0" is a real zero (no funding accrued), not unknown. It is paid-positive — a negative value means funding was received. Requires API credentials. |
| get_account_feesA | Deprecated: use fetch_trading_fees. Get the authenticated account's effective fee schedule: maker/taker rate in basis points (a NEGATIVE maker rate is a rebate paid TO the maker), fee tier, rolling 30-day traded volume, and any active discounts. This is the forward-looking schedule rate for the scope named by schedule (per-market rates differ), not a realized per-fill average; volume_30d_estimated: true means the 30-day volume may undercount. Requires API credentials. |
| get_portfolio_historyA | Deprecated: use fetch_portfolio_history. Get the authenticated account's portfolio time-series — equity, cumulative trading PnL, and cumulative traded volume — over a selectable window, oldest first. Richer than fetch_equity_history (equity only, 5s cadence, ~1h); both derive equity from the same source, so the two never disagree. Each window sets its own downsample cadence and point capacity: day 5m/288, week 1h/168, month 6h/120, all 1d/366. pnl is deposit-neutral (trading performance only) and volume is monotonically non-decreasing. This is a HEAVY read — the gateway charges it 5x an ordinary GET, so a single call draws about five requests' worth of budget and the remaining reported by fetch_rate_limit_status (counted in ordinary requests) drops by ~5. Poll it sparingly. Requires API credentials. |
| get_equity_historyA | Deprecated: use fetch_equity_history. Get the authenticated account's equity time-series (5s cadence, ~1h window), oldest first. For a longer window, or for PnL and volume series alongside equity, use fetch_portfolio_history. Returns { items, next_cursor }. items is this page of results; next_cursor is an opaque token for the next page, or null when this is the last page. To read the full history, keep calling with cursor: <previous next_cursor> until next_cursor is null. limit sets the size of ONE page, not a total. Requires API credentials. |
| get_positionsA | Deprecated: use fetch_positions. Get the authenticated account's open positions. Positions carry per-position risk detail. notional_value, margin_used, roe, max_leverage, and leverage are derived from mirrored state, so any of them can be null with a companion <field>_error naming the reason (e.g. mark_price_unavailable); treat null as UNKNOWN, never as zero. leverage is currently always null (leverage_error: margin_state_not_mirrored) — do not infer it from margin_used. funding_paid is NOT one of those: it is always present and has no _error companion, so its "0" is a real zero (no funding accrued), not unknown. It is paid-positive — a negative value means funding was received. Requires API credentials. |
| get_closed_positionsA | Deprecated: use fetch_positions_history. Get the authenticated account's closed positions (realized PnL per position). Returns { items, next_cursor }. items is this page of results; next_cursor is an opaque token for the next page, or null when this is the last page. To read the full history, keep calling with cursor: <previous next_cursor> until next_cursor is null. limit sets the size of ONE page, not a total. Requires API credentials. |
| get_open_ordersA | Deprecated: use fetch_open_orders. Get the authenticated account's resting (open) orders. Requires API credentials. |
| get_orderA | Deprecated: use fetch_order. Get a single order by its id (status, fills, remaining size). Pass market_id when known — the spec marks it required for routing, though the gateway currently resolves the order without it. Requires API credentials. |
| get_order_historyA | Deprecated: use fetch_orders. Get the authenticated account's terminal-status order history (filled / cancelled / rejected / expired), newest first. Returns { items, next_cursor }. items is this page of results; next_cursor is an opaque token for the next page, or null when this is the last page. To read the full history, keep calling with cursor: <previous next_cursor> until next_cursor is null. limit sets the size of ONE page, not a total. Requires API credentials. |
| get_fillsA | Deprecated: use fetch_my_trades. List the authenticated account's fills (executed trades), newest first. Returns { items, next_cursor }. items is this page of results; next_cursor is an opaque token for the next page, or null when this is the last page. To read the full history, keep calling with cursor: <previous next_cursor> until next_cursor is null. limit sets the size of ONE page, not a total. Requires API credentials. |
| get_funding_paymentsA | Deprecated: use fetch_funding_history. Get the authenticated account's funding-payment history, newest first, optionally filtered to a single market. Requires API credentials. |
| get_withdrawalsA | Deprecated: use fetch_withdrawals. List the authenticated account's withdrawal history. Requires API credentials. |
| list_depositsA | Deprecated: use fetch_deposits. List the authenticated account's deposit history. Requires API credentials. |
| get_rate_limit_statusA | Deprecated: use fetch_rate_limit_status. Get the authenticated account's current rate-limit status (remaining request budget). Useful for an agent to pace itself. Requires API credentials. |
| get_adl_historyA | Deprecated: use fetch_adl_history. Get the auto-deleveraging (ADL) events that touched a given account. Requires API credentials. |
| get_cancel_on_disconnectA | Deprecated: use fetch_cancel_on_disconnect. Get the authenticated account's cancel-on-disconnect (COD) status. COD is an opt-in dead man's switch: when the account's last authenticated WebSocket connection drops and does not reconnect within the grace window, the exchange cancels all of the account's resting orders. Returns enabled (the account's own opt-in), active (whether it will actually fire — the opt-in AND the exchange-side feature switch), and grace_secs (the reconnect window in seconds, null when the feature is unavailable). Clients that trade purely over REST and never open a WebSocket are not covered. Requires API credentials. |
| place_orderA | Deprecated: use create_order. Place an order on a market, buy/sell. Supports limit, market, stop-loss (stop_limit / stop_market), take-profit (take_profit_limit / take_profit_market), and trailing (trailing_stop / trailing_limit) orders. Limit-family orders require a price; stop / take-profit orders require a trigger_price; trailing orders require trailing_offset_bps (and trailing_limit also limit_offset_bps). Requires API credentials. This submits a REAL order to the matching engine. |
| place_orders_batchA | Deprecated: use create_orders. Submit multiple orders in one request. Each order has the same shape as create_order (market_id, side, type, size, and the type-dependent price / trigger_price / trailing offsets / time_in_force / reduce_only). Requires API credentials. This submits REAL orders to the matching engine. |
| amend_orderA | Deprecated: use edit_order. Amend a resting order's price and/or size in one atomic cancel-replace operation. At least one of price or size is required; a pre-trade margin check is applied to the replacement before it is accepted. Liquidation orders cannot be amended. Requires API credentials. This modifies a REAL order on the matching engine. |
| get_market_adl_eventsA | Deprecated: use fetch_adl_events. Get the auto-deleveraging (ADL) settlement history for one market — the events where the engine force-closed positions to cover a shortfall. Requires API credentials. |
| deposit_collateralA | Deprecated: use deposit. Deposit USDX collateral into the authenticated account. amount is a positive decimal string. Requires API credentials. This moves REAL collateral on the account. |
| submit_depositA | Deprecated: use create_deposit. Submit a (testnet/synthetic) deposit for the authenticated account via the deposits ledger (POST /deposits — unlike deposit, the deposit is recorded and listable with fetch_deposits). amount is a positive decimal string; asset defaults to USDX. Requires API credentials. This moves REAL collateral on the account. |
| adjust_isolated_marginA | Deprecated: use add_margin. Add or remove isolated margin on an open position. Fails if the position is not in isolated margin mode (MarginModeNotIsolated), if there is no open position in the market (NoOpenPosition), or if a removal breaches the margin floor. amount is a positive decimal string. Requires API credentials. This moves REAL margin on the position. |
| get_bridge_assetsA | Deprecated: use fetch_bridge_assets. List the bridgeable chains and, per chain, the depositable assets (USDC, USDX) and withdrawable assets (USDX) with their decimals, minimum amounts, required confirmations, and fees. Public catalog — no credentials needed. Use it to discover valid chain values for the other bridge tools. |
| list_bridge_depositsA | Deprecated: use fetch_bridge_deposits. List the authenticated account's cross-chain (bridge) deposits, newest first. Optionally filter by source chain, asset (USDC|USDX), or status (detected|confirming|credited|failed). Distinct from fetch_deposits, which lists the account's ledger deposits. Requires API credentials. |
| get_bridge_depositA | Deprecated: use fetch_bridge_deposit. Fetch a single cross-chain (bridge) deposit by id. Only deposits owned by the authenticated account are returned. Requires API credentials. |
| list_agentsA | Deprecated: use fetch_agents. List the delegated agent keys registered for the authenticated wallet (address, label, expiry). Requires API credentials. |
| list_api_keysA | Deprecated: use fetch_api_keys. List the HMAC API keys for the authenticated wallet (key ids and metadata; never the secrets). Authenticates with the session token from login, or NEXUS_EXCHANGE_SESSION_TOKEN. |
| get_ws_tokenA | Deprecated: use create_ws_token. Mint a short-lived (60s, single-use) token for an authenticated per-account WebSocket stream (order/fill/position updates). Uses the current /ws/token endpoint, which supports HMAC keys and registered agents. The response carries ws_endpoint — the URL to connect to for the configured network — so no host has to be guessed. Requires API credentials. |
| get_ws_token_legacyA | Deprecated: use create_ws_token_legacy. Mint a short-lived (60s, single-use) token for the legacy public /stream endpoint via POST /ws-tokens. Prefer create_ws_token (/ws/token) for new code; this is kept for /stream compatibility. The response carries ws_endpoint for the configured network. Requires API credentials. |
| get_service_statusA | Deprecated: use fetch_status. Aggregate service health of the exchange stack (indexer / engine / oracle / bots), as used by status pages. Public — no credentials needed. |