addrbookFor publishers
← The evidence ledger

Evidence row 309429

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 11dfc139-4c3a-4fce-9e20-07d235fc5e62
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
db9d521ed5f2522a53459817ebdbd04ede7a547e036897d039d8625cb8d9524b
Leaf
0xc3df89e6388aabe65bf587585ed9bcb544c9f8009cdfa262a4fac7a84018b1ea

What was observed

{
  "count": 33,
  "tools": [
    {
      "description": "Cancel multiple SHORT_TERM orders in one tx. SHORT_TERM only (chain limitation) — for stateful/mixed use cancel_all_orders.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "clientIds": {
            "items": {
              "minimum": 0,
              "type": "integer"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          },
          "market": {
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          }
        },
        "required": [
          "market",
          "clientIds"
        ],
        "type": "object"
      },
      "name": "batch_cancel"
    },
    {
      "description": "Cancel every OPEN order for the subaccount in a market (handles SHORT_TERM and LONG_TERM automatically). Returns `confirmation.remainingOpen` — orders still OPEN after the cancel (0 = all gone); if > 0, retry.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "confirm": {
            "description": "After canceling, verify no orders remain OPEN via the indexer (default true).",
            "type": "boolean"
          },
          "market": {
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          }
        },
        "required": [
          "market"
        ],
        "type": "object"
      },
      "name": "cancel_all_orders"
    },
    {
      "description": "Cancel a single order by clientId. For SHORT_TERM pass goodTilBlock; for LONG_TERM/CONDITIONAL pass goodTilTimeSeconds (the original good-til value, available from get_open_orders). Returns `confirmation` with the verified result (canceled / still_open / filled / pending): `code: 0` only means the cancel was broadcast. If `still_open`, the goodTil value likely did not match the original — retry.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "clientId": {
            "minimum": 0,
            "type": "integer"
          },
          "confirm": {
            "description": "Verify the cancel actually took via the indexer (default true).",
            "type": "boolean"
          },
          "goodTilBlock": {
            "exclusiveMinimum": 0,
            "type": "integer"
          },
          "goodTilTimeSeconds": {
            "exclusiveMinimum": 0,
            "type": "integer"
          },
          "market": {
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "orderFlags": {
            "enum": [
              "SHORT_TERM",
              "LONG_TERM",
              "CONDITIONAL"
            ],
            "type": "string"
          }
        },
        "required": [
          "market",
          "clientId",
          "orderFlags"
        ],
        "type": "object"
      },
      "name": "cancel_order"
    },
    {
      "description": "Flatten EVERY open perpetual position with reduce-only MARKET orders (one per market). Respects the operator market allowlist (disallowed markets are skipped and reported). Each close is bounded at oracle ± slippageBps mirrored by side (default 500 bps = 5%). Returns a per-market result array — for any market reporting unfilled/partially_filled, re-run with a larger slippageBps.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "confirm": {
            "type": "boolean"
          },
          "slippageBps": {
            "description": "Max slippage vs oracle, in bps (default 500). Raise to sweep thin books.",
            "maximum": 10000,
            "minimum": 0,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "close_all_positions"
    },
    {
      "description": "Close all or part of an open perpetual position with a reduce-only MARKET order. Reads the current position, flips the side automatically (LONG→SELL, SHORT→BUY) and sizes the close. percent defaults to 100 (full close); a partial close is floored to the market step size. The close is bounded at oracle ± slippageBps mirrored by side (closing a SHORT buys up to oracle×(1+slip), closing a LONG sells down to oracle×(1−slip); default 500 bps = 5%). Returns the verified `confirmation` outcome — if it is `unfilled` or `partially_filled`, the book was thinner than the cap: re-run with a larger slippageBps to sweep deeper. Errors NOT_FOUND if there is no open position in the market.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "confirm": {
            "type": "boolean"
          },
          "market": {
            "description": "Market ticker, e.g. BTC-USD",
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "percent": {
            "description": "Portion of the position to close (default 100).",
            "exclusiveMinimum": 0,
            "maximum": 100,
            "type": "number"
          },
          "slippageBps": {
            "description": "Max slippage vs oracle, in bps (default 500). Raise to sweep a thin book.",
            "maximum": 10000,
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "market"
        ],
        "type": "object"
      },
      "name": "close_position"
    },
    {
      "description": "Deposit USDC from the account's WALLET into its trading SUBACCOUNT so it becomes collateral. Without amountUsd it moves everything above the $0.95 gas reserve (what the web app does); with amountUsd it moves exactly that much, as long as $0.95 stays in the wallet. Funds never leave the account — this is an internal transfer the trading key is allowed to make. Use it when the user has sent money to the account and the subaccount collateral is 0 or too low to trade.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "amountUsd": {
            "description": "USDC to move. Omit to move everything above the $0.95 gas reserve.",
            "exclusiveMinimum": 0,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "deposit_to_subaccount"
    },
    {
      "description": "Get the subaccount collateral (USDC asset position) and the on-chain wallet bank balances. Collateral is what backs trading; the WALLET balance is where money sent to the account lands and is NOT collateral until deposited. `funding` summarizes it: depositableUsdc (wallet minus the $0.95 gas reserve) and a suggestedAction — deposit_to_subaccount when the wallet holds spare USDC, top_up_gas when gas is low.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_balance"
    },
    {
      "description": "Return the latest chain block height. Useful for SHORT_TERM order goodTilBlock math.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_block_height"
    },
    {
      "description": "Get OHLCV candles for a market at a given resolution. Useful for trend/volatility analysis.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "fromISO": {
            "description": "ISO 8601 start time",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?)?(Z|[+-]\\d{2}:?\\d{2})?$",
            "type": "string"
          },
          "limit": {
            "exclusiveMinimum": 0,
            "maximum": 1000,
            "type": "integer"
          },
          "market": {
            "description": "Market ticker, e.g. BTC-USD",
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "resolution": {
            "description": "Candle resolution",
            "enum": [
              "1MIN",
              "5MINS",
              "15MINS",
              "30MINS",
              "1HOUR",
              "4HOURS",
              "1DAY"
            ],
            "type": "string"
          },
          "toISO": {
            "description": "ISO 8601 end time",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?)?(Z|[+-]\\d{2}:?\\d{2})?$",
            "type": "string"
          }
        },
        "required": [
          "market",
          "resolution"
        ],
        "type": "object"
      },
      "name": "get_candles"
    },
    {
      "description": "Get recent OHLCV candles for a market across MULTIPLE resolutions in one call — by default ALL indexer resolutions (1MIN, 5MINS, 15MINS, 30MINS, 1HOUR, 4HOURS, 1DAY) — so the agent can read the trend across timeframes at once. Returns { candles: { <resolution>: [...] } }, newest first. Lower `limit` (e.g. 20) or pass a `resolutions` subset to keep the payload small.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "Candles per resolution (default 50, most recent).",
            "exclusiveMinimum": 0,
            "maximum": 200,
            "type": "integer"
          },
          "market": {
            "description": "Market ticker, e.g. BTC-USD",
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "resolutions": {
            "description": "Subset of resolutions (default: all indexer resolutions).",
            "items": {
              "enum": [
                "1MIN",
                "5MINS",
                "15MINS",
                "30MINS",
                "1HOUR",
                "4HOURS",
                "1DAY"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "market"
        ],
        "type": "object"
      },
      "name": "get_candles_multi"
    },
    {
      "description": "Get the subaccount summary: equity, freeCollateral, marginEnabled, open perpetual positions and asset positions.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_equity"
    },
    {
      "description": "This account's current trading fee tier and conditions: maker/taker fee (% of notional; a negative maker fee is a rebate), the 30-day maker/taker volume it is judged on, any staking discount, the next tier and how much more 30d volume it takes, plus the full fee-tier table. Referred users start at the program's minimum fee tier (see get_referral_program).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_fee_tier"
    },
    {
      "description": "Get executed fills for the subaccount, including price, size, fee and maker/taker liquidity.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "exclusiveMinimum": 0,
            "maximum": 100,
            "type": "integer"
          },
          "market": {
            "description": "Market ticker filter, e.g. BTC-USD",
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "page": {
            "exclusiveMinimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "get_fills"
    },
    {
      "description": "Where the account's USDC sits: in the WALLET (bank balance — money sent to the account lands here and is NOT collateral) vs in the trading SUBACCOUNT (equity / free collateral). Returns depositableUsdc (wallet minus the $0.95 gas reserve), whether gas is low, and a suggestedAction (deposit_to_subaccount / top_up_gas / null). Call this when the user says they sent funds, when collateral reads 0, or before any funding decision.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_funding_status"
    },
    {
      "description": "The trader PnL leaderboard for a time span (ONE_DAY, SEVEN_DAYS, THIRTY_DAYS, ONE_YEAR, ALL_TIME): rank, username, address, PnL (USD), ROI (%) and current equity per trader, paginated. Also returns `me` — this account's own row on that board, if it is ranked. Use `search` to find a trader by username or address. For this account's rank across ALL time spans at once, use get_my_rank.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "Rows per page (default 20, max 100)",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "page": {
            "description": "Page number, 1-based (default 1)",
            "minimum": 1,
            "type": "integer"
          },
          "search": {
            "description": "Filter by username or (substring of) address",
            "maxLength": 256,
            "type": "string"
          },
          "sortBy": {
            "description": "RANK (default), PNL, ROI or CURRENT_EQUITY",
            "enum": [
              "RANK",
              "PNL",
              "ROI",
              "CURRENT_EQUITY"
            ],
            "type": "string"
          },
          "sortDirection": {
            "description": "Sort direction (default: best first)",
            "enum": [
              "ASC",
              "DESC"
            ],
            "type": "string"
          },
          "timeSpan": {
            "description": "Time span (default SEVEN_DAYS)",
            "enum": [
              "ONE_DAY",
              "SEVEN_DAYS",
              "THIRTY_DAYS",
              "ONE_YEAR",
              "ALL_TIME"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_leaderboard"
    },
    {
      "description": "Get details for one perpetual market (clobPairId, atomicResolution, quantumConversionExponent, tick/step sizes, oracle price, status).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "market": {
            "description": "Market ticker, e.g. BTC-USD",
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          }
        },
        "required": [
          "market"
        ],
        "type": "object"
      },
      "name": "get_market"
    },
    {
      "description": "Where THIS account ranks on the PnL leaderboard: rank, board size (\"21 of 66\"), PnL, ROI and equity — for one time span, or for every time span (ONE_DAY … ALL_TIME) when none is given. A null entry means the account is not ranked on that board (no qualifying activity in the window).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "timeSpan": {
            "description": "One time span; omit for all five",
            "enum": [
              "ONE_DAY",
              "SEVEN_DAYS",
              "THIRTY_DAYS",
              "ONE_YEAR",
              "ALL_TIME"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_my_rank"
    },
    {
      "description": "Fetch the latest headlines from the ritbit news feed (curated crypto / markets / business channels, newest first). Filter by `category` (crypto|markets|business) or explicit `channels`, and/or a free-text `query` (a ticker or keyword, matched in the post text and hashtags, e.g. BTC). Each item returns { source, url, publishedAt, tags (hashtags — where tickers appear), text }. There is NO importance field: judge impact yourself from the content (hacks, regulation, large moves, ⚠️ warnings). Use this to factor sentiment/catalysts into an assessment, or to answer \"what's the latest?\". Headlines are ru/en.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "Restrict to one channel category.",
            "enum": [
              "crypto",
              "markets",
              "business"
            ],
            "type": "string"
          },
          "channels": {
            "description": "Explicit hub channel ids (overrides category), e.g. [\"forklog\",\"incrypted\"].",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          },
          "limit": {
            "description": "Max items (default 30).",
            "exclusiveMinimum": 0,
            "maximum": 100,
            "type": "integer"
          },
          "query": {
            "description": "Case-insensitive keyword/ticker to match in text or hashtags, e.g. BTC.",
            "type": "string"
          },
          "sinceHours": {
            "description": "Only items newer than this many hours.",
            "exclusiveMinimum": 0,
            "maximum": 168,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "get_news"
    },
    {
      "description": "Get currently active ORDERS for the subaccount, optionally filtered by market and side. Includes OPEN resting orders and UNTRIGGERED conditional orders (TP/SL accepted on-chain but not yet triggered). Returns { orders: [...] }. This does NOT include filled positions — a filled market/limit order leaves NO open order, it becomes a POSITION (see get_positions). When there are 0 orders but open positions exist, the result carries a `note` pointing you there.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "exclusiveMinimum": 0,
            "maximum": 100,
            "type": "integer"
          },
          "market": {
            "description": "Market ticker filter, e.g. BTC-USD",
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "side": {
            "enum": [
              "BUY",
              "SELL"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_open_orders"
    },
    {
      "description": "Get the live orderbook (bids/asks) for a market, optionally truncated to a depth.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "depth": {
            "description": "Max levels per side",
            "exclusiveMinimum": 0,
            "maximum": 100,
            "type": "integer"
          },
          "market": {
            "description": "Market ticker, e.g. BTC-USD",
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          }
        },
        "required": [
          "market"
        ],
        "type": "object"
      },
      "name": "get_orderbook"
    },
    {
      "description": "Get historical PnL ticks for the subaccount (equity, totalPnl, netTransfers over time). Use createdOnOrAfter to bound the range.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "createdOnOrAfter": {
            "description": "ISO 8601 lower bound",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?)?(Z|[+-]\\d{2}:?\\d{2})?$",
            "type": "string"
          },
          "limit": {
            "exclusiveMinimum": 0,
            "maximum": 1000,
            "type": "integer"
          },
          "page": {
            "exclusiveMinimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "get_pnl"
    },
    {
      "description": "One-call snapshot of everything the account has \"open\": equity & freeCollateral, every open POSITION (with notional, unrealized PnL and estimated liquidation price), every active ORDER (resting + untriggered TP/SL), and account margin risk. Use this to answer \"what do I have open?\" or \"how am I doing?\" without worrying whether the user means orders or positions — it returns both.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_portfolio"
    },
    {
      "description": "Margin health for the subaccount: equity, freeCollateral, total maintenance/initial margin, maintenanceMarginBufferUsd (the EXACT liquidation guard — liquidatable when < 0), marginUsageRatio (1.0 = at liquidation), account leverage, and per-position estimated liquidation price + distance to it. Use before adding risk or to decide whether to protect/close a position.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_position_risk"
    },
    {
      "description": "Get perpetual POSITIONS with size, side, entryPrice, unrealizedPnl, realizedPnl and netFunding. Defaults to OPEN positions. NOTE: a position is what you HOLD after an order fills — it is NOT an open order. When the user asks loosely \"what is open?\", check BOTH this and get_open_orders (or call get_portfolio for both at once).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "status": {
            "description": "Position status filter",
            "enum": [
              "OPEN",
              "CLOSED",
              "LIQUIDATED"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_positions"
    },
    {
      "description": "This account's referral / affiliate program status: referral code and link, whether the link is unlocked (lifetime volume threshold, or already an affiliate), current affiliate tier and taker-fee share, referred volume (30d / all-time), earnings and referred-user stats, who referred this account, the full affiliate tier table and the program parameters (referee starting fee tier, 30d caps).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_referral_program"
    },
    {
      "description": "List all perpetual markets with ticker, status and oracle price. Use this first to discover valid market tickers (e.g. BTC-USD) before placing orders.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "list_markets"
    },
    {
      "description": "Enter a NEW position with a MARKET order, sized by base `size` OR quote `notionalUsd` (exactly one required; notionalUsd converts at the oracle price and is floored to the step size). Optionally attach a reduce-only stopLossPrice and/or takeProfitPrice as conditional orders in the SAME call (the bracket, placed with the opposite/closing side and a 500 bps execution bound past the trigger). slippageBps caps the entry fill vs oracle (default 500). Returns the entry `confirmation` plus any bracket order ids. Bracket legs are placed only if the entry broadcast succeeds; each is reduce-only so it can only close, never flip.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "confirm": {
            "type": "boolean"
          },
          "market": {
            "description": "Market ticker, e.g. BTC-USD",
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "notionalUsd": {
            "description": "Position size in quote USD (converted at oracle). Use instead of size.",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "side": {
            "enum": [
              "BUY",
              "SELL"
            ],
            "type": "string"
          },
          "size": {
            "description": "Position size in base units.",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "slippageBps": {
            "description": "Max slippage vs oracle for the entry, in bps (default 500).",
            "maximum": 10000,
            "minimum": 0,
            "type": "number"
          },
          "stopLossPrice": {
            "description": "Attach a reduce-only stop-loss trigger at this price.",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "takeProfitPrice": {
            "description": "Attach a reduce-only take-profit trigger at this price.",
            "exclusiveMinimum": 0,
            "type": "number"
          }
        },
        "required": [
          "market",
          "side"
        ],
        "type": "object"
      },
      "name": "open_position"
    },
    {
      "description": "Place a limit order. Default timeInForce=GTT (long-term, durable, broadcast-commit so errors return synchronously). Use SHORT_TERM only for latency-sensitive orders (expire within ~20 blocks, broadcast async). NOTE: stateful (GTT) orders are rate-limited to 2/block and 20 per 100 blocks — pace placements. Returns `confirmation` with the REAL outcome verified via the indexer (filled / partially_filled / resting / unfilled / pending) — broadcast `code: 0` only means the tx was accepted, NOT that it filled. Report from `confirmation.outcome`; if it is `pending`, the indexer is lagging — re-check shortly.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "clientId": {
            "minimum": 0,
            "type": "integer"
          },
          "confirm": {
            "description": "Verify the real outcome via the indexer after broadcast (default true).",
            "type": "boolean"
          },
          "goodTilBlockOffset": {
            "description": "SHORT_TERM blocks ahead (default 10)",
            "maximum": 19,
            "minimum": 1,
            "type": "integer"
          },
          "goodTilTimeSeconds": {
            "description": "GTT lifetime (default 3600)",
            "exclusiveMinimum": 0,
            "maximum": 7776000,
            "type": "integer"
          },
          "market": {
            "description": "Market ticker, e.g. BTC-USD",
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "postOnly": {
            "description": "Reject if it would cross (maker-only). Defaults to server config.",
            "type": "boolean"
          },
          "price": {
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "reduceOnly": {
            "type": "boolean"
          },
          "side": {
            "enum": [
              "BUY",
              "SELL"
            ],
            "type": "string"
          },
          "size": {
            "description": "Size in base units",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "timeInForce": {
            "default": "GTT",
            "enum": [
              "GTT",
              "SHORT_TERM"
            ],
            "type": "string"
          }
        },
        "required": [
          "market",
          "side",
          "price",
          "size"
        ],
        "type": "object"
      },
      "name": "place_limit_order"
    },
    {
      "description": "Place an IOC market order. It executes as an IOC limit at a worst-acceptable price mirrored around the oracle by side — BUY caps ABOVE the oracle, SELL below — at slippageBps distance (default 500 = 5%). Fills happen at book prices; the cap only limits how deep the sweep goes. reduceOnly closes an existing position. Returns `confirmation` with the REAL outcome verified via the indexer (filled / partially_filled / unfilled / pending): broadcast `code: 0` only means the tx was accepted — an IOC order cancels UNFILLED when the book is entirely beyond the slippage cap (thin/spread market). Always report from `confirmation.outcome`, not `code`; if `unfilled` or `partially_filled`, retry with a larger slippageBps to sweep deeper; if `pending`, the indexer is lagging — wait a few seconds and re-check before concluding.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "clientId": {
            "minimum": 0,
            "type": "integer"
          },
          "confirm": {
            "description": "Verify the real fill via the indexer after broadcast (default true).",
            "type": "boolean"
          },
          "market": {
            "description": "Market ticker, e.g. BTC-USD",
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "reduceOnly": {
            "type": "boolean"
          },
          "side": {
            "enum": [
              "BUY",
              "SELL"
            ],
            "type": "string"
          },
          "size": {
            "description": "Size in base units",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "slippageBps": {
            "description": "Max slippage vs oracle, in bps (default 500). BUY bounds above the oracle, SELL below; raise to sweep a thin book.",
            "maximum": 10000,
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "market",
          "side",
          "size"
        ],
        "type": "object"
      },
      "name": "place_market_order"
    },
    {
      "description": "Place a reduce-only Stop loss (conditional market order) that triggers at triggerPrice. Side must be the CLOSING side of the position: SELL closes a LONG, BUY closes a SHORT. Once triggered it executes as an IOC limit bounded at triggerPrice ± slippageBps in the direction of execution (BUY above the trigger, SELL below; default 500 bps) so the close can cross the book.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "clientId": {
            "minimum": 0,
            "type": "integer"
          },
          "market": {
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "side": {
            "enum": [
              "BUY",
              "SELL"
            ],
            "type": "string"
          },
          "size": {
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "slippageBps": {
            "description": "Execution bound past the trigger, in bps (default 500). Raise for thin books.",
            "maximum": 10000,
            "minimum": 0,
            "type": "number"
          },
          "triggerPrice": {
            "exclusiveMinimum": 0,
            "type": "number"
          }
        },
        "required": [
          "market",
          "side",
          "triggerPrice",
          "size"
        ],
        "type": "object"
      },
      "name": "place_stop_loss"
    },
    {
      "description": "Place a reduce-only Take profit (conditional market order) that triggers at triggerPrice. Side must be the CLOSING side of the position: SELL closes a LONG, BUY closes a SHORT. Once triggered it executes as an IOC limit bounded at triggerPrice ± slippageBps in the direction of execution (BUY above the trigger, SELL below; default 500 bps) so the close can cross the book.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "clientId": {
            "minimum": 0,
            "type": "integer"
          },
          "market": {
            "pattern": "^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$",
            "type": "string"
          },
          "side": {
            "enum": [
              "BUY",
              "SELL"
            ],
            "type": "string"
          },
          "size": {
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "slippageBps": {
            "description": "Execution bound past the trigger, in bps (default 500). Raise for thin books.",
            "maximum": 10000,
            "minimum": 0,
            "type": "number"
          },
          "triggerPrice": {
            "exclusiveMinimum": 0,
            "type": "number"
          }
        },
        "required": [
          "market",
          "side",
          "triggerPrice",
          "size"
        ],
        "type": "object"
      },
      "name": "place_take_profit"
    },
    {
      "description": "Move a little USDC from the trading subaccount back to the WALLET when the wallet is at or below $0.55 — just enough to restore the $0.95 gas reserve that deposit/withdraw transactions need. Only the gas reserve, only to the account's own wallet; it cannot send funds anywhere else. Use after a transaction fails for lack of gas.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "top_up_gas"
    },
    {
      "description": "Report what this session controls: the master account (its address in BOTH forms — cosmos rit1… and EVM 0x…, the same 20 bytes), the subaccount, whether it can trade or is read-only, and the exact on-chain authorization scope (which messages, which subaccount, and that it CANNOT withdraw/transfer). Also states what this session can NOT do: create wallets, reveal keys/mnemonics, or switch accounts. Call this first, and use it to answer \"what is my address?\".",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "whoami"
    }
  ]
}

What the leaf hashes

{"body":"db9d521ed5f2522a53459817ebdbd04ede7a547e036897d039d8625cb8d9524b","id":309429,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793058899186821,"prev":null,"subject":"11dfc139-4c3a-4fce-9e20-07d235fc5e62","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0xc3dfb892f28c7c9c0e0cb1cbf329cb3421acd36d3e14606e1e1425a09a87261d
  2. 0x22ecb0c1d79b294bb17ba7fc5f29069c80ee040139ee4f0ecdf7d4dec0f6d259
  3. 0xa9aa44c0c40406cf30dbe5fe5b8e8f23f78bbeff1fe67fbd2001fa008bbb40c5
  4. 0x84d7c2837ab5c698a8f41cfa5ba9261a09b45ad2784dfc86b204a098ebd1e8c5
  5. 0xab0deac1c6fcbdd3504ebbbe9ffbcd9f28f5c191d010cfcf3dafbd085af804a0
  6. 0x19b499978129059a471dfb630f9615bd4136c5b569848166117abeb07630dfdb
  7. 0x24a62e7276e6af5e67f022b6cb5627906f121cd00434754078c3cb7ba3ad62ef
  8. 0x43ca5f2c71067cfc9b7d53c8472dc77c0f9a17d42d54f2a9ad57a505ceb49029
  9. 0x96af53cab0b6484baa5b5de03c539cb87a76d8f71b3a639a422035419c9fbaf3
  10. 0xdc850e305944c852a3843d2749ca3439ee04fdbf864b6a8660cc3fd8b5aced96
  11. 0x2cd92a66ffb802d7ebc327d20fe07925be80289ee1c2910e6818dc40c67f2487
  12. 0x63002f2569d43725bbf2d04d90ec9e6cf925c96b6dda5e7e220ecfbdd9c2444d
  13. 0x641fba1f23ec69d96721e34ace1926954d835b9614cb5eae215a069c056399b8
  14. 0xdbe2e8dd65ea1248b2936612538f18268abd5cf27ebdab3737694571ad496004
  15. 0x9f68b5e15459cb62b8c0cd4c124fa61c74147b4a5755a200fbecd21a581635d1
  16. 0x123ec8bee20ddc55223eeef5a4f4d6c4b6416515adbb911c56759f5cde56e452
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON