← MCP Security Catalog

pmxt-mcp 2.54.0

npm · @pmxt/mcp · latest release

Scan failed
Security result
38
Observed tools
33
Version rating
100
Change risk

Independent inventory

Observed 2026-08-17T18:26:49.241Z using mcpSecurity-inventory. Protocol 2025-06-18.

ToolCategoryRisk
buildOrderBuild an order payload without submitting it to the exchange. Returns the exchange-native signed order or request body for inspection, forwarding through a middleware layer, or deferred submission via submitOrder().
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "marketId": {
      "type": "string",
      "description": "The market to trade on."
    },
    "outcomeId": {
      "type": "string",
      "description": "The outcome to trade."
    },
    "side": {
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ],
      "description": "Order side: buy or sell."
    },
    "type": {
      "type": "string",
      "enum": [
        "market",
        "limit"
      ],
      "description": "Order type: market (execute immediately) or limit (resting at a price)."
    },
    "amount": {
      "type": "number",
      "description": "Size of the order in contracts/shares."
    },
    "price": {
      "type": "number",
      "description": "Required for limit orders"
    },
    "denom": {
      "type": "string",
      "enum": [
        "usdc",
        "shares"
      ],
      "description": "Hosted mode: amount unit."
    },
    "slippage_pct": {
      "type": "number",
      "description": "Hosted mode: maximum market-order slippage percentage."
    },
    "fee": {
      "type": "number",
      "description": "Optional fee rate (e.g., 1000 for 0.1%)"
    },
    "builder": {
      "type": "string",
      "description": "Hyperliquid builder address to attach to the order action."
    },
    "builderFee": {
      "type": "number",
      "description": "Hyperliquid builder fee in tenths of a basis point (e.g. 10 = 1 bp)."
    },
    "tickSize": {
      "type": "number",
      "description": "Optional override for Limitless/Polymarket"
    },
    "negRisk": {
      "type": "boolean",
      "description": "Optional override to skip neg-risk lookup (Polymarket)"
    },
    "onBehalfOf": {
      "type": "number",
      "description": "Limitless delegated signing: profile ID to trade on behalf of"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "marketId",
    "outcomeId",
    "side",
    "type",
    "amount"
  ]
}
Annotations
{
  "idempotentHint": true,
  "readOnlyHint": false
}
cancelOrderCancel an existing open order.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "orderId": {
      "type": "string"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "orderId"
  ]
}
Annotations
{
  "destructiveHint": true
}
compareMarketPricesCompare live prices for the same market across venues. Finds identity matches and returns side-by-side best bid/ask prices so you can spot price differences at a glance.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "params": {
      "type": "object"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "params"
  ]
}
Annotations
{
  "readOnlyHint": true
}
createOrderPlace a new order on the exchange.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "marketId": {
      "type": "string",
      "description": "The market to trade on."
    },
    "outcomeId": {
      "type": "string",
      "description": "The outcome to trade."
    },
    "side": {
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ],
      "description": "Order side: buy or sell."
    },
    "type": {
      "type": "string",
      "enum": [
        "market",
        "limit"
      ],
      "description": "Order type: market (execute immediately) or limit (resting at a price)."
    },
    "amount": {
      "type": "number",
      "description": "Size of the order in contracts/shares."
    },
    "price": {
      "type": "number",
      "description": "Required for limit orders"
    },
    "denom": {
      "type": "string",
      "enum": [
        "usdc",
        "shares"
      ],
      "description": "Hosted mode: amount unit."
    },
    "slippage_pct": {
      "type": "number",
      "description": "Hosted mode: maximum market-order slippage percentage."
    },
    "fee": {
      "type": "number",
      "description": "Optional fee rate (e.g., 1000 for 0.1%)"
    },
    "builder": {
      "type": "string",
      "description": "Hyperliquid builder address to attach to the order action."
    },
    "builderFee": {
      "type": "number",
      "description": "Hyperliquid builder fee in tenths of a basis point (e.g. 10 = 1 bp)."
    },
    "tickSize": {
      "type": "number",
      "description": "Optional override for Limitless/Polymarket"
    },
    "negRisk": {
      "type": "boolean",
      "description": "Optional override to skip neg-risk lookup (Polymarket)"
    },
    "onBehalfOf": {
      "type": "number",
      "description": "Limitless delegated signing: profile ID to trade on behalf of"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "marketId",
    "outcomeId",
    "side",
    "type",
    "amount"
  ]
}
Annotations
{
  "destructiveHint": true
}
fetchAllOrdersFetch authenticated order history across open and closed orders.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "marketId": {
      "type": "string",
      "description": "required for Limitless (slug)"
    },
    "since": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records after this date"
    },
    "until": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records before this date"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchArbitrageFind Arbitrage Opportunities
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "minSpread": {
      "type": "number"
    },
    "category": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "relations": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "identity",
          "complement",
          "subset",
          "superset",
          "overlap",
          "disjoint"
        ]
      },
      "description": "Comma-separated relation types to include (default: 'identity')."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchBalanceFetch account balances.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "address": {
      "type": "string"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchClosedOrdersFetch authenticated closed orders.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "marketId": {
      "type": "string",
      "description": "required for Limitless (slug)"
    },
    "since": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records after this date"
    },
    "until": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records before this date"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchEventFetch a single event by lookup parameters. Convenience wrapper around fetchEvents() that returns a single result or throws EventNotFound.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "description": "Alias for `sourceExchange`."
    },
    "query": {
      "type": "string",
      "description": "For keyword search"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "cursor": {
      "type": "string",
      "description": "Opaque venue pagination cursor, where supported."
    },
    "offset": {
      "type": "number",
      "description": "Pagination offset — number of results to skip"
    },
    "sort": {
      "type": "string",
      "enum": [
        "volume",
        "liquidity",
        "newest"
      ],
      "description": "Sort order for results"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "closed",
        "all"
      ],
      "description": "Filter by event status (default: 'active', 'inactive' and 'closed' are interchangeable)"
    },
    "searchIn": {
      "type": "string",
      "enum": [
        "title",
        "description",
        "both"
      ],
      "description": "Where to search (default: 'title')"
    },
    "eventId": {
      "type": "string",
      "description": "Direct lookup by event ID"
    },
    "slug": {
      "type": "string",
      "description": "Lookup by event slug"
    },
    "series": {
      "type": "string",
      "description": "Filter events by their parent series. Accepts the venue-native series id / ticker / slug (e.g. Kalshi `\"KXATPMATCH\"`, Polymarket `\"wta\"`). Passed through to the vendor where supported, otherwise applied to `sourceMetadata` after fetch."
    },
    "filter": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EventFilterCriteria"
        }
      ],
      "description": "Optional client-side filter applied after fetching"
    },
    "category": {
      "type": "string",
      "description": "Filter by category. Each event belongs to a venue-assigned category such as \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi)."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a \"Politics\" event might carry tags [\"Politics\", \"Geopolitics\", \"Middle East\", \"Iran\"]. Common tags include \"Crypto\", \"Elections\", \"Fed Rates\", \"FIFA World Cup\", \"Trump\"."
    },
    "sourceExchange": {
      "type": "string",
      "description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchEventMatchesFind the same or related event on other venues. Two modes: **Lookup mode** (eventId/slug provided): Given an event on one venue, discover semantically equivalent events across every other venue PMXT ingests. **Browse mode** (no identifier): Returns all matched event pairs from the catalog. Supports query and category params for filtering.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "query": {
      "type": "string",
      "description": "Keyword search across matched event titles."
    },
    "category": {
      "type": "string",
      "description": "Filter matches by category."
    },
    "event": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UnifiedEvent"
        }
      ],
      "description": "Pass a UnifiedEvent directly instead of eventId/slug."
    },
    "eventId": {
      "type": "string",
      "description": "Lookup a specific event by ID. Omit for browse mode."
    },
    "slug": {
      "type": "string"
    },
    "relation": {
      "type": "string",
      "enum": [
        "identity",
        "complement",
        "subset",
        "superset",
        "overlap",
        "disjoint"
      ]
    },
    "minConfidence": {
      "type": "number"
    },
    "limit": {
      "type": "number"
    },
    "includePrices": {
      "type": "boolean"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchEventMetadataFetch venue-native metadata for a specific event when the exchange exposes a dedicated metadata endpoint. Kalshi implements this for `GET /events/{event_ticker}/metadata`.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "eventTicker": {
      "type": "string"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "eventTicker"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchEventsFetch events with optional keyword search. Events group related markets together (e.g., "Who will be Fed Chair?" contains multiple candidate markets).
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "description": "Alias for `sourceExchange`."
    },
    "query": {
      "type": "string",
      "description": "For keyword search"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "cursor": {
      "type": "string",
      "description": "Opaque venue pagination cursor, where supported."
    },
    "offset": {
      "type": "number",
      "description": "Pagination offset — number of results to skip"
    },
    "sort": {
      "type": "string",
      "enum": [
        "volume",
        "liquidity",
        "newest"
      ],
      "description": "Sort order for results"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "closed",
        "all"
      ],
      "description": "Filter by event status (default: 'active', 'inactive' and 'closed' are interchangeable)"
    },
    "searchIn": {
      "type": "string",
      "enum": [
        "title",
        "description",
        "both"
      ],
      "description": "Where to search (default: 'title')"
    },
    "eventId": {
      "type": "string",
      "description": "Direct lookup by event ID"
    },
    "slug": {
      "type": "string",
      "description": "Lookup by event slug"
    },
    "series": {
      "type": "string",
      "description": "Filter events by their parent series. Accepts the venue-native series id / ticker / slug (e.g. Kalshi `\"KXATPMATCH\"`, Polymarket `\"wta\"`). Passed through to the vendor where supported, otherwise applied to `sourceMetadata` after fetch."
    },
    "filter": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EventFilterCriteria"
        }
      ],
      "description": "Optional client-side filter applied after fetching"
    },
    "category": {
      "type": "string",
      "description": "Filter by category. Each event belongs to a venue-assigned category such as \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi)."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a \"Politics\" event might carry tags [\"Politics\", \"Geopolitics\", \"Middle East\", \"Iran\"]. Common tags include \"Crypto\", \"Elections\", \"Fed Rates\", \"FIFA World Cup\", \"Trump\"."
    },
    "sourceExchange": {
      "type": "string",
      "description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchEventsPaginatedPaginated variant of {@link fetchEvents}. On the first call (no `cursor`), all events are fetched from the exchange and cached in an in-memory snapshot. A cursor is returned along with the first page. Subsequent calls with that cursor serve additional pages directly from the cached snapshot -- no additional API calls are made. The snapshot is invalidated after `snapshotTTL` ms (configured via `ExchangeOptions` in the constructor). A request using a cursor from an expired snapshot throws `'Cursor has expired'`.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "limit": {
      "type": "number"
    },
    "cursor": {
      "type": "string"
    },
    "filter": {
      "$ref": "#/components/schemas/EventFilterCriteria"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchHedgesFind Hedging Opportunities
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "query": {
      "type": "string",
      "description": "Keyword search across matched market titles."
    },
    "category": {
      "type": "string",
      "description": "Filter matches by category."
    },
    "market": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UnifiedMarket"
        }
      ],
      "description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
    },
    "marketId": {
      "type": "string",
      "description": "Lookup a specific market by ID. Omit for browse mode."
    },
    "slug": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "relation": {
      "type": "string",
      "enum": [
        "identity",
        "complement",
        "subset",
        "superset",
        "overlap",
        "disjoint"
      ]
    },
    "minConfidence": {
      "type": "number"
    },
    "limit": {
      "type": "number"
    },
    "includePrices": {
      "type": "boolean"
    },
    "minDifference": {
      "type": "number",
      "description": "Minimum price difference between venues. Browse mode only."
    },
    "sort": {
      "type": "string",
      "enum": [
        "confidence",
        "volume",
        "priceDifference"
      ],
      "description": "Sort order. Browse mode only."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchMarketFetch a single market by lookup parameters. Convenience wrapper around fetchMarkets() that returns a single result or throws MarketNotFound.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "description": "Alias for `sourceExchange`."
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "offset": {
      "type": "number",
      "description": "Pagination offset — number of results to skip"
    },
    "sort": {
      "type": "string",
      "enum": [
        "volume",
        "liquidity",
        "newest"
      ],
      "description": "Sort order for results"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "closed",
        "all"
      ],
      "description": "Filter by market status (default: 'active', 'inactive' and 'closed' are interchangeable)"
    },
    "searchIn": {
      "type": "string",
      "enum": [
        "title",
        "description",
        "both"
      ],
      "description": "Where to search (default: 'title')"
    },
    "query": {
      "type": "string",
      "description": "For keyword search"
    },
    "slug": {
      "type": "string",
      "description": "For slug/ticker lookup"
    },
    "marketId": {
      "type": "string",
      "description": "Direct lookup by market ID"
    },
    "outcomeId": {
      "type": "string",
      "description": "Reverse lookup -- find market containing this outcome"
    },
    "eventId": {
      "type": "string",
      "description": "Find markets belonging to an event"
    },
    "page": {
      "type": "number",
      "description": "For pagination (used by Limitless)"
    },
    "similarityThreshold": {
      "type": "number",
      "description": "For semantic search (used by Limitless)"
    },
    "sourceExchange": {
      "type": "string",
      "description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchMarketMatchesFind the same or related market on other venues. Two modes: **Lookup mode** (marketId/slug/url provided): Given a market on one venue, discover semantically equivalent markets across every other venue PMXT ingests. **Browse mode** (no identifier): Returns all matched market pairs from the catalog. Supports query, category, minDifference, and sort params for filtering.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "query": {
      "type": "string",
      "description": "Keyword search across matched market titles."
    },
    "category": {
      "type": "string",
      "description": "Filter matches by category."
    },
    "market": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UnifiedMarket"
        }
      ],
      "description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
    },
    "marketId": {
      "type": "string",
      "description": "Lookup a specific market by ID. Omit for browse mode."
    },
    "slug": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "relation": {
      "type": "string",
      "enum": [
        "identity",
        "complement",
        "subset",
        "superset",
        "overlap",
        "disjoint"
      ]
    },
    "minConfidence": {
      "type": "number"
    },
    "limit": {
      "type": "number"
    },
    "includePrices": {
      "type": "boolean"
    },
    "minDifference": {
      "type": "number",
      "description": "Minimum price difference between venues. Browse mode only."
    },
    "sort": {
      "type": "string",
      "enum": [
        "confidence",
        "volume",
        "priceDifference"
      ],
      "description": "Sort order. Browse mode only."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchMarketsFetch markets with optional filtering, search, or slug lookup. Always hits the exchange API — results reflect the live state at the time of the call.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "description": "Alias for `sourceExchange`."
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "offset": {
      "type": "number",
      "description": "Pagination offset — number of results to skip"
    },
    "sort": {
      "type": "string",
      "enum": [
        "volume",
        "liquidity",
        "newest"
      ],
      "description": "Sort order for results"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "closed",
        "all"
      ],
      "description": "Filter by market status (default: 'active', 'inactive' and 'closed' are interchangeable)"
    },
    "searchIn": {
      "type": "string",
      "enum": [
        "title",
        "description",
        "both"
      ],
      "description": "Where to search (default: 'title')"
    },
    "query": {
      "type": "string",
      "description": "For keyword search"
    },
    "slug": {
      "type": "string",
      "description": "For slug/ticker lookup"
    },
    "marketId": {
      "type": "string",
      "description": "Direct lookup by market ID"
    },
    "outcomeId": {
      "type": "string",
      "description": "Reverse lookup -- find market containing this outcome"
    },
    "eventId": {
      "type": "string",
      "description": "Find markets belonging to an event"
    },
    "page": {
      "type": "number",
      "description": "For pagination (used by Limitless)"
    },
    "similarityThreshold": {
      "type": "number",
      "description": "For semantic search (used by Limitless)"
    },
    "sourceExchange": {
      "type": "string",
      "description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchMarketsPaginatedFetch markets with cursor-based pagination backed by a stable in-memory snapshot. On the first call (or when no cursor is supplied), fetches all markets once and caches them. Subsequent calls with a cursor returned from a previous call slice directly from the cached snapshot — no additional API calls are made. The snapshot is invalidated after `snapshotTTL` ms (configured via `ExchangeOptions` in the constructor). A request using a cursor from an expired snapshot throws `'Cursor has expired'`.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "limit": {
      "type": "number"
    },
    "cursor": {
      "type": "string"
    },
    "filter": {
      "$ref": "#/components/schemas/MarketFilterCriteria"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchMatchedMarketsMatched Markets
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "minDifference": {
      "type": "number"
    },
    "category": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "relations": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "identity",
          "complement",
          "subset",
          "superset",
          "overlap",
          "disjoint"
        ]
      },
      "description": "Comma-separated relation types to include (default: 'identity')."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchMatchedPricesCompare Matched Market Prices
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "minDifference": {
      "type": "number"
    },
    "category": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "relations": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "identity",
          "complement",
          "subset",
          "superset",
          "overlap",
          "disjoint"
        ]
      },
      "description": "Comma-separated relation types to include (default: 'identity')."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchMyTradesFetch authenticated user trade history.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "outcomeId": {
      "type": "string",
      "description": "filter to specific outcome/ticker"
    },
    "marketId": {
      "type": "string",
      "description": "filter to specific market"
    },
    "since": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records after this date"
    },
    "until": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records before this date"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "cursor": {
      "type": "string",
      "description": "for Kalshi cursor pagination"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchOHLCVFetch historical OHLCV (candlestick) price data for a specific market outcome.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "outcomeId": {
      "type": "string"
    },
    "resolution": {
      "type": "string",
      "description": "Required for candle aggregation"
    },
    "start": {
      "type": "string",
      "format": "date-time",
      "description": "Start of the time range"
    },
    "end": {
      "type": "string",
      "format": "date-time",
      "description": "End of the time range"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "outcomeId"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchOpenOrdersFetch all open orders, optionally filtered by market.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "marketId": {
      "type": "string"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchOrderFetch a specific order by ID.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "orderId": {
      "type": "string"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "orderId"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchOrderBookFetch the order book (bids/asks) for a specific outcome. Supports live and historical queries. For historical data, pass `since` to get a single snapshot, or `since` + `until` to get an array of fully reconstructed L2 books from the archive. Range queries return up to `limit` snapshots (default 100, max 1000).
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "outcomeId": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "side": {
      "type": "string",
      "enum": [
        "yes",
        "no"
      ],
      "description": "Outcome side: 'yes' or 'no'. Required for exchanges like Limitless where the API returns a single orderbook per market."
    },
    "outcome": {
      "type": "string",
      "description": "Outcome alias: 'yes' or 'no', or an outcome token ID. When set, the first argument is treated as a market ID and this value selects which outcome's order book to fetch. Accepts the literal strings 'yes'/'no' (resolved via a market lookup) or a raw outcome token ID."
    },
    "since": {
      "type": "number",
      "description": "Unix timestamp (ms) — fetch a historical snapshot at or before this time, or the start of a range when combined with `until` (hosted API only)."
    },
    "until": {
      "type": "number",
      "description": "Unix timestamp (ms) — end of a historical range. When combined with `since`, returns an array of reconstructed L2 OrderBook snapshots between `since` and `until` (hosted API only)."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "outcomeId"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchOrderBooksBatch variant of {@link fetchOrderBook}. Fetches order books for multiple outcomes in a single request where the exchange supports it.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "outcomeIds": {},
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "outcomeIds"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchPositionsFetch current user positions across all markets.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "address": {
      "type": "string"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchRelatedMarketsFind related markets across venues. Discovers subset/superset market relationships where one market's outcome implies another, with live prices.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "query": {
      "type": "string",
      "description": "Keyword search across matched market titles."
    },
    "category": {
      "type": "string",
      "description": "Filter matches by category."
    },
    "market": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UnifiedMarket"
        }
      ],
      "description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
    },
    "marketId": {
      "type": "string",
      "description": "Lookup a specific market by ID. Omit for browse mode."
    },
    "slug": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "relation": {
      "type": "string",
      "enum": [
        "identity",
        "complement",
        "subset",
        "superset",
        "overlap",
        "disjoint"
      ]
    },
    "minConfidence": {
      "type": "number"
    },
    "limit": {
      "type": "number"
    },
    "includePrices": {
      "type": "boolean"
    },
    "minDifference": {
      "type": "number",
      "description": "Minimum price difference between venues. Browse mode only."
    },
    "sort": {
      "type": "string",
      "enum": [
        "confidence",
        "volume",
        "priceDifference"
      ],
      "description": "Sort order. Browse mode only."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchSeriesFetch the recurring series (fourth tier above Event -> Market -> Outcome) that this venue exposes. Returns an empty array on venues without a series concept (Limitless, Smarkets, Probable, Metaculus, Baozi, Hyperliquid, SuiBets, Polymarket US). - `params.id` -> a single matching series with its events populated where supported. - no params -> the full list, typically without nested events for payload size.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
fetchTradesFetch raw trade history for a specific outcome.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "outcomeId": {
      "type": "string"
    },
    "start": {
      "type": "string",
      "format": "date-time",
      "description": "Start of the time range"
    },
    "end": {
      "type": "string",
      "format": "date-time",
      "description": "End of the time range"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return (max {@link MAX_TRADES_LIMIT})"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "outcomeId"
  ]
}
Annotations
{
  "readOnlyHint": true
}
getAuthNonceGet a cryptographic nonce for Web3 login.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "walletAddress": {
      "type": "string"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "walletAddress"
  ]
}
Annotations
{
  "readOnlyHint": true
}
getExecutionPriceCalculate the volume-weighted average execution price for a given order size. Returns 0 if the order cannot be fully filled.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "orderBook": {
      "type": "object",
      "description": "Order book with bids and asks arrays. Each level has price and size.",
      "properties": {
        "bids": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            }
          }
        },
        "asks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            }
          }
        }
      }
    },
    "side": {
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ]
    },
    "amount": {
      "type": "number"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "orderBook",
    "side",
    "amount"
  ]
}
Annotations
{
  "idempotentHint": true,
  "readOnlyHint": false
}
getExecutionPriceDetailedCalculate detailed execution price information including partial fill data.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "orderBook": {
      "type": "object",
      "description": "Order book with bids and asks arrays. Each level has price and size.",
      "properties": {
        "bids": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            }
          }
        },
        "asks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            }
          }
        }
      }
    },
    "side": {
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ]
    },
    "amount": {
      "type": "number"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "orderBook",
    "side",
    "amount"
  ]
}
Annotations
{
  "idempotentHint": true,
  "readOnlyHint": false
}
isSessionActiveCheck if a session is active for the given wallet address.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "walletAddress": {
      "type": "string"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "walletAddress"
  ]
}
Annotations
{
  "readOnlyHint": true
}
loadMarketsLoad and cache all markets from the exchange into `this.markets` and `this.marketsBySlug`. Subsequent calls return the cached result without hitting the API again. This is the correct way to paginate or iterate over markets without drift. Because `fetchMarkets()` always hits the API, repeated calls with different `offset` values may return inconsistent results if the exchange reorders or adds markets between requests. Use `loadMarkets()` once to get a stable snapshot, then paginate over `Object.values(exchange.markets)` locally.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "reload": {
      "type": "boolean"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "idempotentHint": true,
  "readOnlyHint": false
}
loginWithSignatureLogin with a signed nonce to obtain session credentials.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "walletAddress": {
      "type": "string"
    },
    "signature": {
      "type": "string"
    },
    "nonce": {
      "type": "string"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "walletAddress",
    "signature",
    "nonce"
  ]
}
Annotations
{
  "readOnlyHint": true
}
logoutLogout and invalidate the current session.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "walletAddress": {
      "type": "string"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
submitOrderSubmit a pre-built order returned by buildOrder().
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "built": {
      "type": "object",
      "properties": {
        "exchange": {
          "type": "string",
          "description": "The exchange name this order was built for."
        },
        "params": {
          "allOf": [
            {
              "$ref": "#/components/schemas/CreateOrderParams"
            }
          ],
          "description": "The original params used to build this order."
        },
        "signedOrder": {
          "type": "object",
          "additionalProperties": {},
          "description": "For CLOB exchanges (Polymarket): the EIP-712 signed order ready to POST to the exchange's order endpoint."
        },
        "tx": {
          "type": "object",
          "properties": {
            "to": {
              "type": "string"
            },
            "data": {
              "type": "string"
            },
            "value": {
              "type": "string"
            },
            "chainId": {
              "type": "number"
            }
          },
          "required": [
            "to",
            "data",
            "value",
            "chainId"
          ],
          "description": "For on-chain AMM exchanges: the EVM transaction payload. Reserved for future exchanges; no current exchange populates this."
        },
        "raw": {
          "description": "The raw, exchange-native payload. Always present."
        },
        "expiry": {
          "type": "number",
          "description": "Unix epoch (ms) when this built order expires server-side. Submitting after expiry returns BUILT_ORDER_EXPIRED."
        }
      },
      "required": [
        "exchange",
        "params",
        "raw"
      ],
      "description": "The built order object from buildOrder."
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "built"
  ]
}
Annotations
{
  "destructiveHint": true
}

Resources 0

Resource templates 0

Prompts 0

Changes from previous version

Compared with initial baseline using full_baseline.

RiskChangeSubject
No material changes recorded.

Confirmed vulnerabilities

SeverityFindingAdvisory
No confirmed vulnerability is published for this version.

Provenance

Artifact SHA-256: 5b9933b8ee0c51f6f8c93464d017dd7632464383b96540642e4daa4e2b295916

Scanner: mcp-proof-engine 0.1.0.

Let’s talk about MCP security.

Share your details and our security team will contact you.