Polymarket + Hyperliquid + macro for AI agents. 38 tools, signal backtest, SSE streaming. Free tier.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
API key from predmcp.com/signup (free tier: 100 calls/day)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Generate a free PredMCP API key. Requires an email. Returns the key and ready-to-use MCP config. Free tier: 100 calls/day, one key per IP.
Your email address — used to identify your key and for account recovery
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Generate a free PredMCP API key. Requires an email. Returns the key and ready-to-use MCP config. Free tier: 100 calls/day, one key per IP.
| Argument | Type | Description |
|---|---|---|
| email* | string | Your email address — used to identify your key and for account recovery |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "Your email address — used to identify your key and for account recovery"
}
},
"additionalProperties": false
}DXY, US10Y yield, S&P 500, gold, VIX — direct from free Yahoo Finance. Raw values + 1d change. Pro adds BTC dominance, ETH/BTC, total crypto mcap, and a RISK_ON/OFF regime classifier.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Funding carry NET of costs: annualized funding minus (spread + 2x slippage at your size), with break-even holding period and a 7d funding-stability score from our snapshots. get_top_funding_rates shows gross — nobody trades gross.
| Argument | Type | Description |
|---|---|---|
| top_n | integer | How many candidates to fully cost out (default 8 — each costs an orderbook call) |
| size_usdc | number | Intended position size in USDC — costs are computed at this size |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"top_n": {
"type": "integer",
"default": 8,
"maximum": 15,
"minimum": 1,
"description": "How many candidates to fully cost out (default 8 — each costs an orderbook call)"
},
"size_usdc": {
"type": "number",
"default": 10000,
"minimum": 100,
"description": "Intended position size in USDC — costs are computed at this size"
}
},
"additionalProperties": false
}Net ETH outflows across known CEX hot wallets (Binance, Coinbase, OKX, Kraken, Bitfinex) over a window. Outflow = bullish (BTC moving to cold storage). Inflow = distribution pressure. Etherscan free tier.
| Argument | Type | Description |
|---|---|---|
| exchange | string | Filter to a single exchange or aggregate all (default: all) |
| window_hours | number | Lookback window in hours (default: 24h, max: 7d) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"exchange": {
"enum": [
"Binance",
"Coinbase",
"OKX",
"Kraken",
"Bitfinex",
"all"
],
"type": "string",
"default": "all",
"description": "Filter to a single exchange or aggregate all (default: all)"
},
"window_hours": {
"type": "number",
"default": 24,
"maximum": 168,
"minimum": 1,
"description": "Lookback window in hours (default: 24h, max: 7d)"
}
},
"additionalProperties": false
}Aggregates funding outlier, whale imbalance, OI/volume ratio, and momentum into a single directional score (-100 short ↔ +100 long) plus a 0-100 strength score. One call replaces 6+ lookups, returns a clean number for LLM decisions.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Asset ticker to analyze, e.g. "BTC", "ETH", "HYPE" |
| whale_window_minutes | integer | Lookback window for whale trades (default: 60min) |
| min_whale_notional_usdc | number | Whale trade threshold in USDC (default: 25,000) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset"
],
"properties": {
"asset": {
"type": "string",
"description": "Asset ticker to analyze, e.g. \"BTC\", \"ETH\", \"HYPE\""
},
"whale_window_minutes": {
"type": "integer",
"default": 60,
"maximum": 240,
"minimum": 5,
"description": "Lookback window for whale trades (default: 60min)"
},
"min_whale_notional_usdc": {
"type": "number",
"default": 25000,
"maximum": 1000000,
"minimum": 1000,
"description": "Whale trade threshold in USDC (default: 25,000)"
}
},
"additionalProperties": false
}Predicted funding spreads between Hyperliquid, Binance, and Bybit per asset (from HL's predictedFundings feed). Surfaces delta-neutral carry: long the venue with lowest funding, short the highest, collect the spread. Sorted by annualized spread.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max rows (default 15) |
| min_spread_annual_pct | number | Minimum annualized funding spread between venues to report (default 5%) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 15,
"maximum": 50,
"minimum": 1,
"description": "Max rows (default 15)"
},
"min_spread_annual_pct": {
"type": "number",
"default": 5,
"minimum": 0,
"description": "Minimum annualized funding spread between venues to report (default 5%)"
}
},
"additionalProperties": false
}Term-structure analysis of Hyperliquid funding for an asset: current vs 8h avg vs 24h avg vs 7d baseline. Flags spikes, regime shifts, sign contradictions. More nuanced than raw funding rate.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Asset ticker, e.g. "BTC", "HYPE" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset"
],
"properties": {
"asset": {
"type": "string",
"description": "Asset ticker, e.g. \"BTC\", \"HYPE\""
}
},
"additionalProperties": false
}Hyperliquid perps whose current funding rate deviates significantly from their 7-day average. A spike vs baseline is a stronger signal than raw rate.
| Argument | Type | Description |
|---|---|---|
| days | integer | Historical window in days to compute the baseline average (default: 7) |
| min_deviation_factor | number | Minimum ratio of |current_rate| / |avg_rate| to qualify as outlier (default: 2x) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"days": {
"type": "integer",
"default": 7,
"maximum": 30,
"minimum": 1,
"description": "Historical window in days to compute the baseline average (default: 7)"
},
"min_deviation_factor": {
"type": "number",
"default": 2,
"description": "Minimum ratio of |current_rate| / |avg_rate| to qualify as outlier (default: 2x)"
}
},
"additionalProperties": false
}Current funding rates for Hyperliquid perpetuals. Positive rate = longs pay shorts (bearish bias); negative = shorts pay longs (bullish bias).
| Argument | Type | Description |
|---|---|---|
| coins | array | List of asset tickers to fetch, e.g. ["BTC", "ETH"]. Omit to fetch all available assets. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"coins": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of asset tickers to fetch, e.g. [\"BTC\", \"ETH\"]. Omit to fetch all available assets."
}
},
"additionalProperties": false
}Finds the same underlying market priced on both HIP-4 (on-chain Hyperliquid) and Polymarket, flagging spreads above threshold. A spread means one venue is mispriced relative to the other.
| Argument | Type | Description |
|---|---|---|
| min_spread_pct | number | Minimum spread between HIP-4 and Polymarket YES prices to flag (percentage points, default: 3) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"min_spread_pct": {
"type": "number",
"default": 3,
"maximum": 20,
"minimum": 0.5,
"description": "Minimum spread between HIP-4 and Polymarket YES prices to flag (percentage points, default: 3)"
}
},
"additionalProperties": false
}Sports prediction markets on Polymarket closing within a few hours with a high-certainty leading outcome. Targets near-certain resolution for late-game positioning.
| Argument | Type | Description |
|---|---|---|
| hours_max | number | Maximum hours until market closes (default: 6h) |
| certainty_pct | number | Minimum leading outcome probability as percentage, e.g. 85 = 85% (default: 85) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hours_max": {
"type": "number",
"default": 6,
"maximum": 24,
"minimum": 0.5,
"description": "Maximum hours until market closes (default: 6h)"
},
"certainty_pct": {
"type": "number",
"default": 85,
"maximum": 99,
"minimum": 50,
"description": "Minimum leading outcome probability as percentage, e.g. 85 = 85% (default: 85)"
}
},
"additionalProperties": false
}Estimated price levels where mass liquidations concentrate for a given Hyperliquid perp, computed from mark price and standard leverage multiples. Higher nearby orderbook liquidity = stronger support/resistance.
| Argument | Type | Description |
|---|---|---|
| coin* | string | Asset ticker to analyze, e.g. "BTC", "ETH", "SOL" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"coin"
],
"properties": {
"coin": {
"type": "string",
"description": "Asset ticker to analyze, e.g. \"BTC\", \"ETH\", \"SOL\""
}
},
"additionalProperties": false
}Live macro snapshot: DXY, US10Y yield, S&P 500, gold, VIX (Yahoo Finance free) + BTC dominance, ETH/BTC, total crypto market cap (CoinGecko free). Plus a coarse RISK_ON / RISK_OFF / MIXED regime.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Fiat-to-crypto liquidity gauge: BTC + ETH spot ETF flows (Farside) plus on-chain USDT + USDC mint/burn (Etherscan). Net inflow = bullish for risk assets.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Unified intelligence snapshot for any topic, asset, or keyword: all matching Polymarket and HIP-4 prediction markets combined with live Hyperliquid perp data (price, funding, OI). One call replaces 3+ separate lookups.
| Argument | Type | Description |
|---|---|---|
| query* | string | Topic, asset, or keyword to look up — e.g. "BTC", "Iran", "Fed rate cut", "Trump" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Topic, asset, or keyword to look up — e.g. \"BTC\", \"Iran\", \"Fed rate cut\", \"Trump\""
}
},
"additionalProperties": false
}Universal fair-value anchor for ONE market of ANY category. Pass the question (+ optional strike/comparator/expiry/underlying for price markets, + yes_price). Dispatches to the best anchor: options/vol fair value (crypto price), a confident Polymarket twin (events/politics/sports), or a soft news lean. Returns { method, confidence, anchor_prob, hip4_yes, edge_pt, verdict, source_ref, note }. edge_pt = (anchor_prob - hip4_yes)*100; positive = YES cheap; null for untraded/synthetic prices.
| Argument | Type | Description |
|---|---|---|
| strike | number | Strike/threshold for price markets. |
| vol_24h | number | 24h traded volume of the market. REQUIRED for an edge/verdict: absent (or 0) the YES price is treated as untraded and only the anchor is returned. |
| question* | string | The market question, e.g. "BTC above $70,000 at Aug 21 06:00 UTC?" or "Will Fed cut rates in September?" |
| is_traded | boolean | Explicit attestation that the YES price comes from a real traded book. Alternative to vol_24h. |
| yes_price | number | Current on-chain YES price (0..1). Edge is only computed for a real traded price (0.5 exactly is treated as synthetic/untraded). |
| comparator | string | Price-market shape. |
One-call universal mispricing scanner across ALL HIP-4 market types (crypto price, sports, politics, macro, events). Resolves every market to its best anchor (options / Polymarket twin / news lean / none) and ranks by |edge|. Filter with method / min_edge_pt / limit. Returns by_method counts + ranked markets. Superset of get_outcome_edges.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max markets to return (default 30, max 100). |
| method | string | Filter to markets resolved via one anchor method. Passing "news" also enables the (slower) news lean. |
| min_edge_pt | number | Only return markets whose |edge| in probability points is at least this (default 0 = whole board). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 30,
"maximum": 100,
"minimum": 1,
"description": "Max markets to return (default 30, max 100)."
},
"method": {
"enum": [
"options",
"polymarket",
"odds",
"news"
],
"type": "string",
"description": "Filter to markets resolved via one anchor method. Passing \"news\" also enables the (slower) news lean."
},
"min_edge_pt": {
"type": "number",
"default": 0,
"maximum": 100,
"minimum": 0,
"description": "Only return markets whose |edge| in probability points is at least this (default 0 = whole board)."
}
},
"additionalProperties": false
}One-call market regime classifier: RISK_ON_TRENDING / RISK_OFF / SQUEEZE_RISK / CHOP_LOW_VOL / MIXED. Combines BTC trend + realized vol, Deribit IV premium, funding breadth, and OI-weighted crowding across the top 50 perps. Call this FIRST each session to condition strategy choice.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Live prediction markets from Polymarket and/or HIP-4, sorted by volume. Returns title, YES/NO prices, 24h volume, and expiry.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of markets to return (1–100, default: 20) |
| active | boolean | Filter to active/open markets only (default: true) |
| platform | string | Data source: "polymarket", "hip4", or "all" (default) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Number of markets to return (1–100, default: 20)"
},
"active": {
"type": "boolean",
"default": true,
"description": "Filter to active/open markets only (default: true)"
},
"platform": {
"enum": [
"polymarket",
"hip4",
"all"
],
"type": "string",
"default": "all",
"description": "Data source: \"polymarket\", \"hip4\", or \"all\" (default)"
}
},
"additionalProperties": false
}Polymarket markets resolving within the next N hours with a leading probability above threshold. Useful for resolution arbitrage and last-minute positioning.
| Argument | Type | Description |
|---|---|---|
| hours | number | Maximum hours until resolution (default: 24h, max: 168h = 7 days) |
| min_prob | number | Minimum leading outcome probability to include (default: 0.7 = 70%) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hours": {
"type": "number",
"default": 24,
"maximum": 168,
"minimum": 0.5,
"description": "Maximum hours until resolution (default: 24h, max: 168h = 7 days)"
},
"min_prob": {
"type": "number",
"default": 0.7,
"maximum": 1,
"minimum": 0,
"description": "Minimum leading outcome probability to include (default: 0.7 = 70%)"
}
},
"additionalProperties": false
}Top prediction markets ranked by 24h volume spike or biggest YES/NO price swing. Surfaces breaking news bets and momentum plays across Polymarket and HIP-4.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of top movers to return (1–20, default: 10) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1,
"description": "Number of top movers to return (1–20, default: 10)"
}
},
"additionalProperties": false
}Recent crypto news headlines mentioning an asset (CoinDesk, The Block, Decrypt, Cointelegraph) paired with the 1h price move that followed each. Lets agents filter news bias.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Asset ticker, e.g. "BTC", "ETH", "HYPE" |
| hours_back | integer | Lookback window for headlines (default: 24h, max: 7d) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset"
],
"properties": {
"asset": {
"type": "string",
"description": "Asset ticker, e.g. \"BTC\", \"ETH\", \"HYPE\""
},
"hours_back": {
"type": "integer",
"default": 24,
"maximum": 168,
"minimum": 1,
"description": "Lookback window for headlines (default: 24h, max: 7d)"
}
},
"additionalProperties": false
}Recent headlines across crypto, finance and sports RSS feeds, unfiltered and unclassified. Unlike get_recent_news it does not filter by asset ticker, so it also covers the sports, macro and event markets that make up most of a HIP-4 board. Match the headlines against your own market list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max headlines returned (default 40, max 100). |
| category | string | Restrict to one feed category (default: all). |
| hours_back | integer | Lookback window in hours (default 24, max 168). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 40,
"maximum": 100,
"minimum": 1,
"description": "Max headlines returned (default 40, max 100)."
},
"category": {
"enum": [
"crypto",
"finance",
"sports",
"all"
],
"type": "string",
"default": "all",
"description": "Restrict to one feed category (default: all)."
},
"hours_back": {
"type": "integer",
"default": 24,
"maximum": 168,
"minimum": 1,
"description": "Lookback window in hours (default 24, max 168)."
}
},
"additionalProperties": false
}News → markets recommender: pulls recent crypto headlines, classifies each event type (depeg/hack_exploit/listing/delisting/unlock/regulatory/partnership/outage/hype/fud/macro), extracts the assets, maps to affected HIP-4 markets, and assigns a directional lean (YES up / YES down). Heuristic, low/medium confidence, NOT financial advice; war/hard-politics excluded. Powers a live "event → affected markets → lean" feed. Filter with hours / event_type / min_confidence / limit.
| Argument | Type | Description |
|---|---|---|
| hours | integer | Lookback window for headlines (default 24h, max 72h). |
| limit | integer | Max signals to return (default 20, max 50). |
| event_type | string | Filter to one event type. |
| min_confidence | string | Minimum confidence to include (default: low). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hours": {
"type": "integer",
"default": 24,
"maximum": 72,
"minimum": 1,
"description": "Lookback window for headlines (default 24h, max 72h)."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Max signals to return (default 20, max 50)."
},
"event_type": {
"enum": [
"depeg",
"hack_exploit",
"delisting",
"listing",
"unlock",
"outage",
"regulatory",
"partnership",
"hype",
"fud",
"macro"
],
"type": "string",
"description": "Filter to one event type."
},
"min_confidence": {
"enum": [
"low",
"medium"
],
"type": "string",
"description": "Minimum confidence to include (default: low)."
}
},
"additionalProperties": false
}Current YES/NO prices and implied probability for any Polymarket or HIP-4 market token.
| Argument | Type | Description |
|---|---|---|
| platform* | string | Platform the market is on: "polymarket" or "hip4" |
| identifier* | string | For Polymarket: the token_id of the YES or NO outcome. For HIP-4: the base asset ticker (e.g. "BTC") |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"platform",
"identifier"
],
"properties": {
"platform": {
"enum": [
"polymarket",
"hip4"
],
"type": "string",
"description": "Platform the market is on: \"polymarket\" or \"hip4\""
},
"identifier": {
"type": "string",
"description": "For Polymarket: the token_id of the YES or NO outcome. For HIP-4: the base asset ticker (e.g. \"BTC\")"
}
},
"additionalProperties": false
}Price-vs-OI regime per coin from our continuous snapshots: NEW_LONGS / SHORT_SQUEEZE / NEW_SHORTS / LONG_LIQUIDATION. Scan all tracked coins or analyze one. Impossible without OI history, which no public API provides — only predmcp records it.
| Argument | Type | Description |
|---|---|---|
| coin | string | One coin (e.g. "BTC") — omit to scan all tracked coins |
| hours | integer | Lookback window in hours (default 24, max 90d) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"coin": {
"type": "string",
"description": "One coin (e.g. \"BTC\") — omit to scan all tracked coins"
},
"hours": {
"type": "integer",
"default": 24,
"maximum": 2160,
"minimum": 1,
"description": "Lookback window in hours (default 24, max 90d)"
}
},
"additionalProperties": false
}Open-interest time series for a coin over the last 24h, from our continuous 5-min collector. Hyperliquid has NO OI-history endpoint — this data exists only on predmcp. Includes price + funding at each point. Pro tool get_oi_divergence classifies price-vs-OI regimes (squeeze/liquidation/new positioning) across all coins.
| Argument | Type | Description |
|---|---|---|
| coin* | string | Coin, e.g. "BTC" (top ~30 by OI are tracked) |
| hours | integer | Lookback window in hours (free tier max: 24) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"coin"
],
"properties": {
"coin": {
"type": "string",
"description": "Coin, e.g. \"BTC\" (top ~30 by OI are tracked)"
},
"hours": {
"type": "integer",
"default": 24,
"maximum": 24,
"minimum": 1,
"description": "Lookback window in hours (free tier max: 24)"
}
},
"additionalProperties": false
}Lists Hyperliquid perps that are currently at the open interest cap — new long positions cannot be opened. Use as a blacklist to avoid getting rejected on entry.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}BTC or ETH options snapshot via free Deribit feed: ATM implied volatility, put-call skew, term structure, total OI and 24h volume. Useful as a sentiment gauge — IV high = market expects big moves; skew indicates direction of hedging.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Underlying — Deribit only supports BTC and ETH for the free public feed. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset"
],
"properties": {
"asset": {
"enum": [
"BTC",
"ETH"
],
"type": "string",
"description": "Underlying — Deribit only supports BTC and ETH for the free public feed."
}
},
"additionalProperties": false
}Full orderbook depth (bids + asks) for any Polymarket market token. Shows liquidity at each price level.
| Argument | Type | Description |
|---|---|---|
| token_id* | string | Polymarket token ID for the YES or NO side of a market |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token_id"
],
"properties": {
"token_id": {
"type": "string",
"description": "Polymarket token ID for the YES or NO side of a market"
}
},
"additionalProperties": false
}Full orderbook depth + slippage estimate for any Hyperliquid perp or HIP-4 market. Returns top of book, spread, cumulative depth at $100/$500/$1k/$5k tiers, and estimated slippage for a given order size. Critical for HIP-4 farming and low-liquidity assets where market orders get destroyed by slippage.
| Argument | Type | Description |
|---|---|---|
| coin* | string | Asset ticker (BTC, ETH, SOL) or HIP-4 contract name (e.g. "BTC>81041@20260512-0600") |
| side | string | Order side: "buy" (taker into asks) or "sell" (taker into bids) |
| size_usdc | number | Order size in USDC to estimate slippage for (default: 200) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"coin"
],
"properties": {
"coin": {
"type": "string",
"description": "Asset ticker (BTC, ETH, SOL) or HIP-4 contract name (e.g. \"BTC>81041@20260512-0600\")"
},
"side": {
"enum": [
"buy",
"sell"
],
"type": "string",
"default": "buy",
"description": "Order side: \"buy\" (taker into asks) or \"sell\" (taker into bids)"
},
"size_usdc": {
"type": "number",
"default": 200,
"maximum": 1000000,
"minimum": 10,
"description": "Order size in USDC to estimate slippage for (default: 200)"
}
},
"additionalProperties": false
}One-call mispricing scanner for autonomous agents: every live HIP-4 PRICE market, each priced against its options/vol-implied fair value and ranked by |edge|. BTC/ETH use the Deribit IV smile; other assets use Hyperliquid realized vol (iv_source labels which). edge_pt = (implied_prob - yes_price)*100, computed only where a real traded YES price exists (synthetic/untraded 0.5 placeholders return edge_pt:null so no fake edge is surfaced). Filter with min_edge_pt / underlying. The whole board without looping.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max markets to return (default 30, max 100). |
| underlying | string | Filter to one underlying ticker, e.g. "BTC". |
| min_edge_pt | number | Only return markets whose |edge| in probability points is at least this (default 0 = the whole board). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 30,
"maximum": 100,
"minimum": 1,
"description": "Max markets to return (default 30, max 100)."
},
"underlying": {
"type": "string",
"description": "Filter to one underlying ticker, e.g. \"BTC\"."
},
"min_edge_pt": {
"type": "number",
"default": 0,
"maximum": 100,
"minimum": 0,
"description": "Only return markets whose |edge| in probability points is at least this (default 0 = the whole board)."
}
},
"additionalProperties": false
}Options/vol-implied fair value for a HIP-4 binary/range/touch PRICE market ("<asset> above $X at time T?"). Returns the risk-neutral probability the market resolves YES, and — if you pass market_yes_price — the signed edge in probability points and a YES cheap/rich/fair verdict. BTC/ETH price off the live Deribit IV smile (interpolated to strike + DTE); ANY other asset falls back to Hyperliquid 30d realized vol. iv_source labels which was used (smile/term_interp/skew_adj/atm/realized_vol). The touch case uses the correct drifted first-passage formula. Approximations are listed in caveats.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Underlying ticker, e.g. "BTC", "ETH", "SOL", "HYPE". BTC/ETH use the Deribit IV smile; others use Hyperliquid realized vol. |
| strike* | number | The market's strike / threshold price, e.g. 70000. |
| comparator* | string | Market shape: above/below a strike, inside a range [strike, strike_high], or touches the strike before expiry. |
| expiry_iso* | string | Market resolution time as an ISO 8601 string, e.g. "2026-08-21T06:00:00Z". |
| strike_high | number | Upper bound for range markets (must be > strike). Ignored otherwise. |
| market_yes_price |
Markets where Polymarket implied probability diverges from Hyperliquid perpetual funding direction — e.g. PM prices bullish outcome but HL funding shows crowded longs (bearish pressure). The hardest signal to compute manually.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of divergences to return (default: 15) |
| min_pct | number | Minimum divergence percentage between PM implied probability and HL pricing to flag (default: 10%) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 15,
"maximum": 30,
"minimum": 1,
"description": "Number of divergences to return (default: 15)"
},
"min_pct": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Minimum divergence percentage between PM implied probability and HL pricing to flag (default: 10%)"
}
},
"additionalProperties": false
}Risk analytics for a list of positions: per-position beta to BTC and ETH, sector concentration, pairwise correlation matrix, portfolio annualized volatility, 1-day 95% parametric VaR. Uses 14d of 1h Hyperliquid candles.
| Argument | Type | Description |
|---|---|---|
| positions* | array | Array of positions: { asset, side, notional_usd }. Max 20. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"positions"
],
"properties": {
"positions": {
"type": "array",
"items": {
"type": "object",
"required": [
"asset",
"side",
"notional_usd"
],
"properties": {
"side": {
"enum": [
"long",
"short"
],
"type": "string"
},
"asset": {
"type": "string"
},
"notional_usd": {
"type": "number",
"minimum": 1
}
},
"additionalProperties": false
},
"maxItems": 20,
"minItems": 1,
"description": "Array of positions: { asset, side, notional_usd }. Max 20."
}
},
"additionalProperties": false
}Turn a signal + bankroll into a concrete position: fractional-Kelly size capped by orderbook liquidity, ATR-based stop, liquidation price at chosen leverage, funding carry cost, and % bankroll at risk. Warns when liquidation sits inside the stop. Ground win_rate_pct with get_signal_performance or get_signal_backtest first.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Asset, e.g. "BTC" |
| leverage | number | Intended leverage (default 3x) |
| direction* | string | Trade direction |
| payoff_ratio | number | Avg win / avg loss ratio (default 1.5) |
| win_rate_pct | number | Estimated win probability % (use get_signal_performance or get_signal_backtest to ground this) |
| bankroll_usdc* | number | Total capital available in USDC |
| kelly_fraction | number | Fraction of full Kelly to use (default 0.25 — quarter Kelly) |
| max_slippage_pct | number |
One-call snapshot for an asset: mark price, 24h and 7d returns, 30d high/low, drawdown from high, rally from low, annualized realised volatility. Computed from 30d of HL hourly candles.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Asset ticker, e.g. "BTC", "HYPE" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset"
],
"properties": {
"asset": {
"type": "string",
"description": "Asset ticker, e.g. \"BTC\", \"HYPE\""
}
},
"additionalProperties": false
}Recent crypto news headlines matching an asset ticker, from CoinDesk + The Block + Decrypt + Cointelegraph RSS feeds. Pro adds the 1h price move that followed each headline.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Asset ticker to filter on, e.g. "BTC", "ETH", "HYPE" |
| limit | integer | Max headlines returned (default: 10) |
| hours_back | integer | Lookback window in hours (default: 24, max: 168 = 7 days) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset"
],
"properties": {
"asset": {
"type": "string",
"description": "Asset ticker to filter on, e.g. \"BTC\", \"ETH\", \"HYPE\""
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 30,
"minimum": 1,
"description": "Max headlines returned (default: 10)"
},
"hours_back": {
"type": "integer",
"default": 24,
"maximum": 168,
"minimum": 1,
"description": "Lookback window in hours (default: 24, max: 168 = 7 days)"
}
},
"additionalProperties": false
}Server-detected events from the last hour: funding outliers (≥3x 7d baseline), whale trades (≥$100k), OI caps reached. Cursor-based — pass next_cursor back as since_id to receive only new events. The polling equivalent of the /sse/signals stream. Pro tool get_signal_history covers 7 days with forward-return outcomes.
| Argument | Type | Description |
|---|---|---|
| coin | string | Filter to one coin, e.g. "BTC" |
| limit | integer | Max events (free tier cap: 20) |
| since_id | integer | Cursor from a previous call — returns only events with id > since_id. Omit on first call. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"coin": {
"type": "string",
"description": "Filter to one coin, e.g. \"BTC\""
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 20,
"minimum": 1,
"description": "Max events (free tier cap: 20)"
},
"since_id": {
"type": "integer",
"description": "Cursor from a previous call — returns only events with id > since_id. Omit on first call."
}
},
"additionalProperties": false
}Execution-quality score (0-100, A-F grade) for entering a position right now: spread, slippage at desired size, orderbook depth, volatility regime, trend alignment, support/resistance proximity. Different from conviction (direction) — this scores ENTRY conditions.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Asset ticker, e.g. "BTC", "HYPE" |
| direction* | string | Trade direction you are considering |
| size_usdc | number | Order size in USDC to evaluate slippage for (default: 200) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset",
"direction"
],
"properties": {
"asset": {
"type": "string",
"description": "Asset ticker, e.g. \"BTC\", \"HYPE\""
},
"direction": {
"enum": [
"long",
"short"
],
"type": "string",
"description": "Trade direction you are considering"
},
"size_usdc": {
"type": "number",
"default": 200,
"maximum": 1000000,
"minimum": 10,
"description": "Order size in USDC to evaluate slippage for (default: 200)"
}
},
"additionalProperties": false
}Find historical instances of a signal type on an asset over the last N days and compute forward returns (1h/4h/24h), win rate, and Sharpe. Lets an agent reason about EV before trading. Killer feature: turns predmcp from data API into edge-proven intelligence.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Asset ticker, e.g. "BTC", "HYPE" |
| z_score | number | For funding_outlier: minimum deviation factor vs the rolling mean (default: 3×) |
| signal_type* | string | Which signal to backtest. funding_outlier = funding >= z×baseline; funding_extreme = abs(funding) >= threshold. |
| min_abs_rate | number | For funding_extreme: minimum absolute funding rate (default: 0.0005 = 0.05%) |
| lookback_days | integer | How many days of history to scan (default: 90, max: 180) |
| min_separation_hours | integer | Cluster consecutive triggers — at least N hours apart (default: 8h) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"signal_type",
"asset"
],
"properties": {
"asset": {
"type": "string",
"description": "Asset ticker, e.g. \"BTC\", \"HYPE\""
},
"z_score": {
"type": "number",
"default": 3,
"maximum": 20,
"minimum": 1,
"description": "For funding_outlier: minimum deviation factor vs the rolling mean (default: 3×)"
},
"signal_type": {
"enum": [
"funding_outlier",
"funding_extreme"
],
"type": "string",
"description": "Which signal to backtest. funding_outlier = funding >= z×baseline; funding_extreme = abs(funding) >= threshold."
},
"min_abs_rate": {
"type": "number",
"default": 0.0005,
"maximum": 0.01,
"minimum": 0,
"description": "For funding_extreme: minimum absolute funding rate (default: 0.0005 = 0.05%)"
},
"lookback_days": {
"type": "integer",
"default": 90,
"maximum": 180,
"minimum": 7,
"description": "How many days of history to scan (default: 90, max: 180)"
},
"min_separation_hours": {
"type": "integer",
"default": 8,
"maximum": 72,
"minimum": 1,
"description": "Cluster consecutive triggers — at least N hours apart (default: 8h)"
}
},
"additionalProperties": false
}Server-detected signal events over up to 7 days (funding outliers, whale trades ≥$100k, OI caps), each joined with its measured forward returns (1h/4h/24h) once mature. Cursor-based. "What happened last time funding spiked on HYPE — and did it matter?" in one call.
| Argument | Type | Description |
|---|---|---|
| coin | string | Filter to one coin, e.g. "BTC" |
| limit | integer | Max events (default 50) |
| since_id | integer | Cursor — only events with id > since_id |
| hours_back | integer | Lookback window in hours (default 24, max 168 = 7d) |
| signal_types | array | Filter to specific signal types |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"coin": {
"type": "string",
"description": "Filter to one coin, e.g. \"BTC\""
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1,
"description": "Max events (default 50)"
},
"since_id": {
"type": "integer",
"description": "Cursor — only events with id > since_id"
},
"hours_back": {
"type": "integer",
"default": 24,
"maximum": 168,
"minimum": 1,
"description": "Lookback window in hours (default 24, max 168 = 7d)"
},
"signal_types": {
"type": "array",
"items": {
"enum": [
"funding_outlier_new",
"whale_trade",
"oi_cap_reached"
],
"type": "string"
},
"description": "Filter to specific signal types"
}
},
"additionalProperties": false
}Hit rates and average forward returns per signal type, measured on OUR actually-emitted production signals (not a backtest reconstruction). Use this to ground win_rate inputs for get_position_size. Sample sizes included — treat n < 10 as anecdotal.
| Argument | Type | Description |
|---|---|---|
| coin | string | Filter to one coin, e.g. "BTC" |
| days | integer | Lookback window (default 30, max 90) |
| signal_type | string | Filter to one signal type (default: all) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"coin": {
"type": "string",
"description": "Filter to one coin, e.g. \"BTC\""
},
"days": {
"type": "integer",
"default": 30,
"maximum": 90,
"minimum": 1,
"description": "Lookback window (default 30, max 90)"
},
"signal_type": {
"enum": [
"funding_outlier_new",
"whale_trade",
"oi_cap_reached"
],
"type": "string",
"description": "Filter to one signal type (default: all)"
}
},
"additionalProperties": false
}BTC or ETH options snapshot via free Deribit public feed: ATM implied volatility, total OI, 24h volume. Pro adds put-call skew + full term structure parsing.
| Argument | Type | Description |
|---|---|---|
| asset* | string | Underlying — Deribit free feed supports BTC and ETH. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset"
],
"properties": {
"asset": {
"enum": [
"BTC",
"ETH"
],
"type": "string",
"description": "Underlying — Deribit free feed supports BTC and ETH."
}
},
"additionalProperties": false
}Top Hyperliquid perps ranked by absolute funding rate, with OI and annualized yield. Useful for finding the most overcrowded longs/shorts and carry opportunities.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of top results to return (default: 10) |
| min_abs_rate | number | Minimum absolute funding rate to include, e.g. 0.0001. Omit to include all. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Number of top results to return (default: 10)"
},
"min_abs_rate": {
"type": "number",
"default": 0,
"description": "Minimum absolute funding rate to include, e.g. 0.0001. Omit to include all."
}
},
"additionalProperties": false
}Lists upcoming market catalysts for an asset within a horizon: token unlocks, governance votes (Tally), ETF/SEC deadlines, FOMC dates. Helps agents avoid blind trades into known events. Free data sources (Tally + curated DB).
| Argument | Type | Description |
|---|---|---|
| asset* | string | Asset ticker, e.g. "ARB", "SOL", "BTC" |
| horizon_hours | integer | Horizon in hours (default: 168 = 7 days, max: 720 = 30 days) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset"
],
"properties": {
"asset": {
"type": "string",
"description": "Asset ticker, e.g. \"ARB\", \"SOL\", \"BTC\""
},
"horizon_hours": {
"type": "integer",
"default": 168,
"maximum": 720,
"minimum": 1,
"description": "Horizon in hours (default: 168 = 7 days, max: 720 = 30 days)"
}
},
"additionalProperties": false
}Polymarket markets with abnormal 24h volume vs their 7-day daily average. Volume spikes typically precede news events or informed positioning.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of results to return (default: 15) |
| min_ratio | number | Minimum ratio of 24h volume vs 7-day daily average to qualify as a spike (default: 3x) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 15,
"maximum": 50,
"minimum": 1,
"description": "Number of results to return (default: 15)"
},
"min_ratio": {
"type": "number",
"default": 3,
"minimum": 1,
"description": "Minimum ratio of 24h volume vs 7-day daily average to qualify as a spike (default: 3x)"
}
},
"additionalProperties": false
}Cumulative whale buy/sell imbalance over hours-to-days from the durable trade tape (≥$25k trades persisted continuously, restart-proof). Returns imbalance ratio (-1..+1), BUY/SELL_DOMINANT verdict, and the largest recent prints. Longer horizons than get_whale_trades (1h buffer).
| Argument | Type | Description |
|---|---|---|
| coin* | string | Coin, e.g. "BTC" (top ~10 by OI are taped) |
| hours | integer | Lookback window in hours (default 24) |
| min_notional_usdc | number | Threshold for the sample trades list (tape floor: $25k) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"coin"
],
"properties": {
"coin": {
"type": "string",
"description": "Coin, e.g. \"BTC\" (top ~10 by OI are taped)"
},
"hours": {
"type": "integer",
"default": 24,
"maximum": 2160,
"minimum": 1,
"description": "Lookback window in hours (default 24)"
},
"min_notional_usdc": {
"type": "number",
"default": 100000,
"minimum": 25000,
"description": "Threshold for the sample trades list (tape floor: $25k)"
}
},
"additionalProperties": false
}Look up an Ethereum address against our curated label DB (CEX hot wallets, known market makers, suspected funds). Lets agents distinguish mechanical MM flow from alpha-generating activity.
| Argument | Type | Description |
|---|---|---|
| address* | string | Ethereum address to look up (0x-prefixed, 40 hex chars). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "Ethereum address to look up (0x-prefixed, 40 hex chars)."
}
},
"additionalProperties": false
}Positions of a specific Polymarket wallet, optionally filtered to one market. The /positions API requires a user (no public "all holders by market" endpoint), so pass the wallet address of the trader you want to inspect.
| Argument | Type | Description |
|---|---|---|
| user* | string | Polygon wallet address (0x…) of the user whose positions you want. |
| condition_id | string | Optional — filter results to a specific market by condition_id. |
| min_size_usdc | number | Minimum position size in USDC to include in results (default: 1,000). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"user"
],
"properties": {
"user": {
"type": "string",
"description": "Polygon wallet address (0x…) of the user whose positions you want."
},
"condition_id": {
"type": "string",
"description": "Optional — filter results to a specific market by condition_id."
},
"min_size_usdc": {
"type": "number",
"default": 1000,
"description": "Minimum position size in USDC to include in results (default: 1,000)."
}
},
"additionalProperties": false
}Recent large trades on Hyperliquid perps above a notional threshold. Includes side (long/short), size, price, and timestamp.
| Argument | Type | Description |
|---|---|---|
| coin* | string | Asset ticker to fetch whale trades for, e.g. "BTC", "ETH" |
| min_notional_usdc | number | Minimum trade size in USDC to qualify as a whale trade (default: 50,000) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"coin"
],
"properties": {
"coin": {
"type": "string",
"description": "Asset ticker to fetch whale trades for, e.g. \"BTC\", \"ETH\""
},
"min_notional_usdc": {
"type": "number",
"default": 50000,
"description": "Minimum trade size in USDC to qualify as a whale trade (default: 50,000)"
}
},
"additionalProperties": false
}Full-text search across all Polymarket and HIP-4 prediction markets. Returns ranked results with current odds.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return (1–50, default: 10) |
| query* | string | Keywords to search in market names and descriptions, e.g. "bitcoin ETF", "US election", "Fed pivot" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Maximum number of results to return (1–50, default: 10)"
},
"query": {
"type": "string",
"description": "Keywords to search in market names and descriptions, e.g. \"bitcoin ETF\", \"US election\", \"Fed pivot\""
}
},
"additionalProperties": false
}| expiry_iso |
| string |
| Resolution time (ISO 8601) for price markets. |
| underlying | string | Underlying ticker for price markets, e.g. "BTC". |
| strike_high | number | Upper bound for range price markets. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"question"
],
"properties": {
"strike": {
"type": "number",
"description": "Strike/threshold for price markets.",
"exclusiveMinimum": 0
},
"vol_24h": {
"type": "number",
"minimum": 0,
"description": "24h traded volume of the market. REQUIRED for an edge/verdict: absent (or 0) the YES price is treated as untraded and only the anchor is returned."
},
"question": {
"type": "string",
"description": "The market question, e.g. \"BTC above $70,000 at Aug 21 06:00 UTC?\" or \"Will Fed cut rates in September?\""
},
"is_traded": {
"type": "boolean",
"description": "Explicit attestation that the YES price comes from a real traded book. Alternative to vol_24h."
},
"yes_price": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Current on-chain YES price (0..1). Edge is only computed for a real traded price (0.5 exactly is treated as synthetic/untraded)."
},
"comparator": {
"enum": [
"above",
"below",
"range",
"touch"
],
"type": "string",
"description": "Price-market shape."
},
"expiry_iso": {
"type": "string",
"description": "Resolution time (ISO 8601) for price markets."
},
"underlying": {
"type": "string",
"description": "Underlying ticker for price markets, e.g. \"BTC\"."
},
"strike_high": {
"type": "number",
"description": "Upper bound for range price markets.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}| number |
| Current on-chain YES price (0..1) to compute the edge against fair value. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset",
"strike",
"expiry_iso",
"comparator"
],
"properties": {
"asset": {
"type": "string",
"description": "Underlying ticker, e.g. \"BTC\", \"ETH\", \"SOL\", \"HYPE\". BTC/ETH use the Deribit IV smile; others use Hyperliquid realized vol."
},
"strike": {
"type": "number",
"description": "The market's strike / threshold price, e.g. 70000.",
"exclusiveMinimum": 0
},
"comparator": {
"enum": [
"above",
"below",
"range",
"touch"
],
"type": "string",
"description": "Market shape: above/below a strike, inside a range [strike, strike_high], or touches the strike before expiry."
},
"expiry_iso": {
"type": "string",
"description": "Market resolution time as an ISO 8601 string, e.g. \"2026-08-21T06:00:00Z\"."
},
"strike_high": {
"type": "number",
"description": "Upper bound for range markets (must be > strike). Ignored otherwise.",
"exclusiveMinimum": 0
},
"market_yes_price": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Current on-chain YES price (0..1) to compute the edge against fair value."
}
},
"additionalProperties": false
}| Max acceptable slippage % — caps size by orderbook depth |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset",
"direction",
"bankroll_usdc"
],
"properties": {
"asset": {
"type": "string",
"description": "Asset, e.g. \"BTC\""
},
"leverage": {
"type": "number",
"default": 3,
"maximum": 50,
"minimum": 1,
"description": "Intended leverage (default 3x)"
},
"direction": {
"enum": [
"long",
"short"
],
"type": "string",
"description": "Trade direction"
},
"payoff_ratio": {
"type": "number",
"default": 1.5,
"maximum": 20,
"minimum": 0.1,
"description": "Avg win / avg loss ratio (default 1.5)"
},
"win_rate_pct": {
"type": "number",
"default": 55,
"maximum": 99,
"minimum": 1,
"description": "Estimated win probability % (use get_signal_performance or get_signal_backtest to ground this)"
},
"bankroll_usdc": {
"type": "number",
"minimum": 10,
"description": "Total capital available in USDC"
},
"kelly_fraction": {
"type": "number",
"default": 0.25,
"maximum": 1,
"minimum": 0.05,
"description": "Fraction of full Kelly to use (default 0.25 — quarter Kelly)"
},
"max_slippage_pct": {
"type": "number",
"default": 0.3,
"maximum": 5,
"minimum": 0.01,
"description": "Max acceptable slippage % — caps size by orderbook depth"
}
},
"additionalProperties": false
}