This dashboard exposes a read-only tool catalogue to in-browser agents through the WebMCP browser API. This page renders that same catalogue for humans; nothing here invokes a tool.
window.orderlyWebMcp is published on every dashboard page at runtime. It exposes webmcpSupported, toolCount, the tools catalogue, a call(name, args) entry point, and local stats() counters.
Browsers without native WebMCP support and non-JS agents can read the crawlable manifest at /webmcp.json. It contains the same tool definitions without execute callbacks.
START HERE. Returns a map of this site: what it is, its areas, which tools back each area, common multi-step flows, parameter conventions, and suggested first queries. Call this once to get oriented before using the other tools. This is a read-only analytics dashboard for the Orderly Network perpetual-futures DEX; it does not place trades.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Daily platform totals for Orderly: taker/cumulative volume, revenue (fees), TVL, deposits/withdrawals, new accounts/addresses, and active builders, as a historical time series. For a live snapshot use get_market_summary; for weekly/monthly user aggregates use get_metrics_overview. Returns rows newest-last over the trailing `days` window.
{
"type": "object",
"properties": {
"days": {
"type": "number",
"description": "Trailing days (default 90, max 730)."
}
},
"required": [],
"additionalProperties": false
}Total Value Locked broken down by chain, plus a total row. Drives the TVL By Chain widget. Returns newest snapshot rows.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}TVL and token balance held per collateral token over a trailing window. Drives the TVL By Token widget.
{
"type": "object",
"properties": {
"days": {
"type": "number",
"description": "Trailing days (default 30, max 730)."
}
},
"required": [],
"additionalProperties": false
}Weekly per-symbol volume and listed-markets count from the analytics API. For the live market list (prices, 24h change, open interest) use get_markets.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}8-hour funding rates for every perpetual symbol, from a trailing start date. For cross-exchange funding comparisons use get_funding_comparison.
{
"type": "object",
"properties": {
"days": {
"type": "number",
"description": "Trailing days for the start date (default 30)."
}
},
"required": [],
"additionalProperties": false
}Daily liquidation notional aggregated per perpetual symbol across all markets. For individual recent liquidation events of one symbol use get_recent_liquidations.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Daily $ORDER staking metrics: staked/unstaked/net amounts, cumulative staker addresses, buybacks, and burned ORDER. Drives the Staking Daily widget.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Per-builder daily metrics: taker/maker/total volume, active users, broker fees, and net flow. Drives the Builder Volume, Builder Active Traders, Builder Revenue, and Net Flow By Builder widgets.
{
"type": "object",
"properties": {
"days": {
"type": "number",
"description": "Trailing days (default 30, max 730)."
}
},
"required": [],
"additionalProperties": false
}Daily deposits, withdrawals, and net fund flow per broker. Drives the Net Flow By Builder widget (fund-flow variant).
{
"type": "object",
"properties": {
"days": {
"type": "number",
"description": "Trailing days (default 30, max 730)."
}
},
"required": [],
"additionalProperties": false
}Daily deposits, withdrawals, and net fund flow per chain. Drives the Fund Flows By Chain widget.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Per-builder user activity snapshot: DAU/WAU/MAU with day/week/month-over-month deltas and new-user counts. Drives the DEX Users widget.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Weekly and monthly aggregates for new users, active users, trading volume, and Orderly revenue. For daily historical totals use get_dashboard_main.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Weekly trading volume split by market-maker vs retail segment. Drives the Volume Segments widget.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Weekly average active stakers. Drives the Stake Users widget.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Weekly ORDER staked vs circulating supply and staking ratio. Drives the Stake vs Supply widget.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Weekly average TVL per OmniVault (USD millions). Drives the OmniVault TVL widget.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Referral distributor statistics: invitee counts, graduated invitees, revenue share, and fee tier. Drives the Distributors widget. Returns an array of distributor rows.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Per-invitee detail for referral distributors: invite date, DEX, status, and 30D volume/revenue share. Returns an array of invitee rows.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Orderly's DEX perpetuals market share vs. other on-chain perp venues, computed from CoinGecko 24h derivatives volume and DefiLlama open interest. Drives the Market Share widget. Returns ranked protocols with volume, open interest, and share %.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Snapshot of all active perpetual markets: the futures market list, 24h price changes, and per-symbol open interest. Drives the Markets page. Returns an object { markets, priceChanges, openInterest }. Each market row reports 24h volume as volume_24h_usd (USD notional) and volume_24h_base (base-token quantity), and open interest as open_interest_usd (notional, oi * mark_price) and open_interest_base (base-token quantity); the raw upstream names 24h_amount / 24h_volume / open_interest are not returned. priceChanges rows report percent changes per window (change_5m_pct … change_30d_pct) computed from last_price, not the raw lookback prices; openInterest rows report long_oi_base / short_oi_base plus long_oi_usd / short_oi_usd. Optional search (a case-insensitive substring on the symbol), sort_by (volume_24h_usd | volume_24h_base | change_24h_pct | open_interest_usd | open_interest_base | symbol), limit (max 200), and desc (default true) filter and rank the markets and trim the priceChanges / openInterest arrays to the same symbol set. Defaults to the top 50 markets by USD volume; pass limit: 200 for the full set.
{
"type": "object",
"properties": {
"search": {
"type": "string",
"description": "Case-insensitive substring on the symbol (e.g. \"btc\", \"sol\", \"perp_btc\")."
},
"sort_by": {
"type": "string",
"enum": [
"volume_24h_usd",
"volume_24h_base",
"change_24h_pct",
"open_interest_usd",
"open_interest_base",
"symbol"
],
"description": "Rank markets by this metric (default: volume_24h_usd). volume_24h_usd is USD notional; volume_24h_base is base-token quantity; change_24h_pct is the percent price change over 24h; open_interest_usd is OI notional, open_interest_base is OI in base-token quantity."
},
"limit": {
"type": "number",
"description": "Max markets to return after filter/sort (default 50; max 200)."
},
"desc": {
"type": "boolean",
"description": "Sort descending (default true)."
}
},
"required": [],
"additionalProperties": false
}Composite single-symbol bundle for the market detail page. Returns only the requested sections (default: all of market info, top-50 orderbook levels, recent trades, funding history, and OHLCV candles). Requesting fewer sections keeps the payload small. Drives the Price Chart, Orderbook, Recent Trades, and Funding Chart.
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Perp symbol. Accepts a base tick (BTC) or full form (PERP_BTC_USDC)."
},
"include": {
"type": "array",
"items": {
"type": "string",
"enum": [
"market_info",
"orderbook",
"recent_trades",
"funding_history",
"candles"
]
},
"description": "Sections to return; omit for all."
},
"candles_interval": {
"type": "string",
"enum": [
"5m",
"15m",
"1h",
"4h",
"1d"
],
"description": "Candle interval (default '1h'). One of: 5m, 15m, 1h, 4h, 1d."
}
},
"required": [
"symbol"
],
"additionalProperties": false
}Full configuration for a single perpetual symbol: leverage limits (1/base_imr), tick/lot sizes, price precision, and status flags. Returns the symbol info object.
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Perp symbol: base tick (ETH) or full form."
}
},
"required": [
"symbol"
],
"additionalProperties": false
}Live platform-wide market snapshot: 24h volume, open interest, trader counts, and fee totals across all symbols. For historical daily time series use get_dashboard_main; for weekly/monthly user aggregates use get_metrics_overview.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Cross-exchange funding rate comparison: last value plus 1d/7d/30d averages per symbol across venues (Orderly vs. Binance, Bybit, etc.). Omit symbol for all symbols. For per-symbol 8h funding history use get_funding_rates.
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Perp symbol: base tick (BTC) or full form; omit for all."
}
},
"required": [],
"additionalProperties": false
}Recent individual liquidation events for one symbol: side, size, notional, mark/liquidation price, and the liquidated account. For daily liquidation totals aggregated across all symbols use get_daily_liquidations_by_symbol.
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Perp symbol: base tick (BTC) or full form (PERP_BTC_USDC)."
},
"limit": {
"type": "number",
"description": "Max events (default 50, max 500)."
}
},
"required": [
"symbol"
],
"additionalProperties": false
}Top addresses ranked by a chosen metric (notional, volume, PnL, or trade count) for a symbol or platform-wide. Paginated via cursor. Drives the Top Traders panel and Whale Leaderboard.
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Perp symbol: base tick (BTC) or full form; omit for platform-wide."
},
"sort_by": {
"type": "string",
"enum": [
"notional",
"volume_24h",
"volume_7d",
"volume_30d",
"pnl_24h",
"pnl_7d",
"pnl_30d",
"trade_count_24h"
],
"description": "Ranking metric (default notional)."
},
"min_notional": {
"type": "number",
"description": "Minimum notional filter (default 0)."
},
"limit": {
"type": "number",
"description": "Page size (default 50, max 200)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor from a previous response — pass it back unchanged."
}
},
"required": [],
"additionalProperties": false
}Whale research bundle for a single address: account state (collateral, PnL), open positions, and recent trades. Requires an address; optionally scope to a broker or account_id. Drives the Whale Detail modal.
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Wallet address (EVM 0x…)."
},
"broker_id": {
"type": "string",
"description": "Broker to scope to (optional)."
},
"account_id": {
"type": "string",
"description": "Account ID to scope to (optional)."
},
"recent_trades_limit": {
"type": "number",
"description": "Max trades (default 20, max 100)."
}
},
"required": [
"address"
],
"additionalProperties": false
}Platform-wide open positions for a symbol (large-position liquidation-heatmap data). Returns up to 1000 positions filtered by minimum notional. Drives the Liquidation Heatmap.
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Perp symbol: base tick (BTC) or full form."
},
"min_notional": {
"type": "number",
"description": "Minimum position notional (default 0)."
}
},
"required": [
"symbol"
],
"additionalProperties": false
}Orderly insurance fund balance, holdings, and status. Drives the Insurance Fund widget.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Daily trading leaderboard: realized PnL and perp volume per trader over a date range (YYYY-MM-DD). Supports pagination, broker/address filters, sort, and aggregation by address, account, or date. Drives the Leaderboard (trading) tab.
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Inclusive start, YYYY-MM-DD."
},
"end_date": {
"type": "string",
"description": "Inclusive end, YYYY-MM-DD."
},
"page": {
"type": "number",
"description": "1-based page (default 1)."
},
"size": {
"type": "number",
"description": "Page size (default 20, max 100)."
},
"sort": {
"type": "string",
"enum": [
"ascending_realized_pnl",
"descending_realized_pnl",
"ascending_perp_volume",
"descending_perp_volume"
],
"description": "Default descending_realized_pnl."
},
"broker_id": {
"type": "string"
},
"address": {
"type": "string",
"description": "Filter to a wallet address."
},
"aggregateBy": {
"type": "string",
"enum": [
"address",
"address_per_builder",
"date",
"account"
]
}
},
"required": [
"start_date",
"end_date"
],
"additionalProperties": false
}Open-positions leaderboard: largest open positions by notional, optionally filtered by account, broker, or symbol. Drives the Leaderboard (positions) tab.
{
"type": "object",
"properties": {
"account_id": {
"type": "string"
},
"broker_id": {
"type": "string"
},
"symbol": {
"type": "string",
"description": "Perp symbol: base tick (BTC) or full form (PERP_BTC_USDC)."
},
"offset": {
"type": "number",
"description": "Pagination offset (default 0)."
},
"limit": {
"type": "number",
"description": "Page size (default 50, max 500)."
},
"order_by": {
"type": "string",
"enum": [
"ASC",
"DESC"
],
"description": "Default DESC."
}
},
"required": [],
"additionalProperties": false
}Resolve a wallet address or account ID into its Orderly broker/account pairs. Accepts an EVM address (0x + 40 hex), a Solana address (43-44 base58 chars), or an account ID (0x + 64 hex). Returns an array of {broker_id, account_id, …} pairs for the identity. For address queries (not account IDs) each account is enriched with 90-day perp_volume and realized_pnl, sorted by volume descending — matching the Search results page. First step of the Explorer/address flow.
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "EVM address, Solana address, or Orderly account ID."
}
},
"required": [
"address"
],
"additionalProperties": false
}Historical trading events for an account: trades, settlements, liquidations, ADLs, and margin transfers (versioned v1/v2/v3 already flattened to a uniform shape). Time range is capped at 31 days; omit both times for the most recent page. Drives the address Events tab. Returns { events, nextCursor, pageSizeLimit, tradesCount }; pass the nextCursor back as the cursor param to fetch the next page.
{
"type": "object",
"properties": {
"account_id": {
"type": "string",
"description": "Orderly account ID (0x + 64 hex)."
},
"event_type": {
"type": "string",
"enum": [
"TRANSACTION",
"PERPTRADE",
"SETTLEMENT",
"LIQUIDATION",
"ADL",
"MARGINTRANSFER"
]
},
"from_time": {
"type": "number",
"description": "Inclusive start, Unix seconds."
},
"to_time": {
"type": "number",
"description": "Inclusive end, Unix seconds."
},
"cursor": {
"type": "object",
"additionalProperties": true,
"description": "Opaque pagination cursor (the nextCursor value from a prior response). Do not construct this object yourself — only pass back the cursor you received."
}
},
"required": [
"account_id"
],
"additionalProperties": false
}Account snapshot for an address: collateral, margin ratios, 24h PnL, and all OPEN positions (qty, notional, entry/mark price, leverage, est. liquidation price). Drives the address Positions tab.
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Wallet address (EVM 0x…)."
},
"broker_id": {
"type": "string"
},
"account_id": {
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}Daily account-value time series with cumulative PnL (equity curve) for an address, up to 365 days. Drives the Portfolio Chart on the address page.
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Wallet address (EVM 0x…)."
},
"broker_id": {
"type": "string"
},
"account_id": {
"type": "string"
},
"start_time": {
"type": "number",
"description": "Inclusive start, Unix seconds."
},
"end_time": {
"type": "number",
"description": "Inclusive end, Unix seconds."
},
"limit": {
"type": "number",
"description": "Max snapshots (default 90, max 365)."
}
},
"required": [
"address"
],
"additionalProperties": false
}Directory of all Orderly brokers (broker_id → human-readable broker_name), sorted by name. Use to label broker_id values returned by other tools.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Every known perp symbol (including delisted) as a hash→name map: {symbol, symbol_hash}. Use to resolve keccak256 symbol hashes in event/position data to display names. Active symbols are also available via get_markets.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Every known settlement/collateral token as a hash→name map: {token, token_hash}. Use to resolve keccak256 token hashes in settlement/fee fields to display names.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Navigate the user to a market detail page. Pass a base tick (BTC), the full form (PERP_BTC_USDC), or a broker-suffixed variant (PERP_AAPL_USDC_mythos). The page renders a graceful "Market Not Found" for unknown symbols, so no pre-validation is performed — the user lands on the right place regardless.
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Market symbol (e.g. BTC, ETH, PERP_BTC_USDC)."
}
},
"required": [
"symbol"
],
"additionalProperties": false
}Navigate the user to an address / account detail page. Accepts an EVM address (0x + 40 hex), an Orderly account_id (0x + 64 hex), or a Solana base58 address. Solana addresses are url-safe-base64 encoded to match in-app AddressLink links.
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "EVM address, Solana address, or Orderly account_id."
}
},
"required": [
"address"
],
"additionalProperties": false
}Scroll a dashboard widget into the user's view and highlight it briefly. Only widgets present on the current page can be focused (widgets render on specific pages, not everywhere). Use get_site_overview to learn which widgets live where.
{
"type": "object",
"properties": {
"widget_id": {
"type": "string",
"enum": [
"volume",
"tvl-chain",
"net-fees",
"overview",
"dex-users",
"market-share",
"volume-segments",
"omnivault-tvl",
"stake-users",
"stake-vs-supply",
"distributors",
"fees-stats",
"builder-volume",
"builder-active-traders",
"builder-revenue",
"net-flow-by-builder",
"tvl-by-token",
"leaderboard",
"positions",
"kpi-analyst",
"funding-comparison",
"funding-rates",
"staking-daily",
"fund-flows-by-chain",
"liquidations-by-symbol",
"liquidation-heatmap",
"insurance-fund",
"market-price-chart",
"market-orderbook",
"market-recent-trades",
"market-funding-chart",
"market-recent-liquidations",
"market-top-traders",
"market-platform-positions"
],
"description": "Widget id to focus."
}
},
"required": [
"widget_id"
],
"additionalProperties": false
}Open the share dialog for a dashboard widget, presenting the user with the widget's embed/share link. Only works when the widget and its share button are rendered on the current page (share buttons are hidden on embeds).
{
"type": "object",
"properties": {
"widget_id": {
"type": "string",
"enum": [
"volume",
"tvl-chain",
"net-fees",
"overview",
"dex-users",
"market-share",
"volume-segments",
"omnivault-tvl",
"stake-users",
"stake-vs-supply",
"distributors",
"fees-stats",
"builder-volume",
"builder-active-traders",
"builder-revenue",
"net-flow-by-builder",
"tvl-by-token",
"leaderboard",
"positions",
"kpi-analyst",
"funding-comparison",
"funding-rates",
"staking-daily",
"fund-flows-by-chain",
"liquidations-by-symbol",
"liquidation-heatmap",
"insurance-fund",
"market-price-chart",
"market-orderbook",
"market-recent-trades",
"market-funding-chart",
"market-recent-liquidations",
"market-top-traders",
"market-platform-positions"
],
"description": "Widget id to share."
}
},
"required": [
"widget_id"
],
"additionalProperties": false
}Read-only snapshot of what the user is currently looking at: the current route/URL, the page area, the active market symbol (base tick) when on a market page, and the list of widget ids currently rendered on screen (valid inputs for focus_widget / share_widget / get_widget_url). Call this to ground yourself in the user's current view before navigating or pointing at a widget. After open_market or open_address, call this to confirm the destination rendered — the result includes a status (loading | ready | not-found | error) and, when available, a short summary.
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Return the embeddable share URL for a dashboard widget — the same link the Share dialog produces — without opening any UI. Use this to give the user a link to a widget. Market widgets (market-*) take an optional symbol.
{
"type": "object",
"properties": {
"widget_id": {
"type": "string",
"enum": [
"volume",
"tvl-chain",
"net-fees",
"overview",
"dex-users",
"market-share",
"volume-segments",
"omnivault-tvl",
"stake-users",
"stake-vs-supply",
"distributors",
"fees-stats",
"builder-volume",
"builder-active-traders",
"builder-revenue",
"net-flow-by-builder",
"tvl-by-token",
"leaderboard",
"positions",
"kpi-analyst",
"funding-comparison",
"funding-rates",
"staking-daily",
"fund-flows-by-chain",
"liquidations-by-symbol",
"liquidation-heatmap",
"insurance-fund",
"market-price-chart",
"market-orderbook",
"market-recent-trades",
"market-funding-chart",
"market-recent-liquidations",
"market-top-traders",
"market-platform-positions"
],
"description": "Widget id to get a link for."
},
"symbol": {
"type": "string",
"description": "Symbol for market widgets (e.g. BTC). Ignored for non-market widgets."
}
},
"required": [
"widget_id"
],
"additionalProperties": false
}