# Strike Edge Find the better trade. Strike fast. > Strike Edge shows where a perp trade costs less across Strike, Hyperliquid and OKX, after funding, fees, spread and slippage. Every number is an honest estimate. > Information only: no trading, no wallets, no logins, no user funds. Strike is at > strikefinance.org. schema_version: 1.0 Interactive docs: https://strike-edge.onrender.com/docs OpenAPI: https://strike-edge.onrender.com/openapi.json Health: https://strike-edge.onrender.com/healthz Web dashboard: https://strike-edge.onrender.com/ Historical report: https://strike-edge.onrender.com/report ## Endpoints (all GET, JSON, CORS open) 1. https://strike-edge.onrender.com/api/v1/snapshot Live funding, marks, volume and order-book depth for every Strike market on each venue. Params: notional (USD, default 10000), hours (default 24). Real response (abridged to the ETH-USD market; captured 2026-10-21T17:54:15.613Z): { "schema_version": "1.0", "generated_at_ms": 1792605255626, "generated_at_iso": "2026-10-21T17:54:15.626Z", "venues": { "strike": { "venue": "strike", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605226701, "source_ts_iso": "2026-10-21T17:53:46.701Z", "age_seconds": 28.9, "last_error": null }, "hyperliquid": { "venue": "hyperliquid", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605227477, "source_ts_iso": "2026-10-21T17:53:47.477Z", "age_seconds": 28.1, "last_error": null }, "okx": { "venue": "okx", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605197878, "source_ts_iso": "2026-10-21T17:53:17.878Z", "age_seconds": 57.7, "last_error": null } }, "assumptions": { "notional_usd": 10000.0, "hours": 24.0, "fee_mode": "taker", "fee_rates": { "strike": 0.0005, "hyperliquid": 0.00045, "okx": 0.0005 }, "preset_hours": { "1d": 24.0, "1w": 168.0, "1m": 720.0 }, "slippage_model": "Taker: walk each venue's order book for the notional; slippage = average fill vs book mid, on entry and exit. Maker: slippage assumed zero and fills are not guaranteed. A book too thin for the notional is marked insufficient liquidity and excluded from rankings.", "funding_model": "Current hourly-normalized funding rate is assumed to persist for the whole period. Positive rate: longs pay shorts. Funding, basis and liquidity change; these are estimates.", "hl_hip3_fee_multiplier": 1.0, "notes": [ "Estimates, not profit or guaranteed arbitrage. Information only.", "Past funding does not predict future funding.", "Stale venue data (older than 5 minutes) is excluded from rankings." ] }, "disclaimer": "Estimates only, not financial advice. Funding, prices and liquidity change; results are not guaranteed.", "markets": [ { "symbol": "ETH-USD", "asset_class": "crypto", "is_tradfi": false, "ticker_only": false, "strike_only": false, "market_open": true, "market_closed_reason": null, "note": "", "trade_url": "https://v2.strikefinance.org", "venues": { "strike": { "native_symbol": "ETH-USD", "mark_price_usd": 2513.85978928, "index_price_usd": 2514.63096815, "funding_rate_per_interval": -2.06813635735744e-05, "funding_interval_hours": 1.0, "funding_rate_per_hour": -2.06813635735744e-05, "funding_paid_by_long_usd": -4.963527257657857, "funding_apr": -0.18116874490451174, "volume_24h_usd": 111110.4571, "avg_buy_fill_price_usd": 2514.410084695371, "avg_sell_fill_price_usd": 2513.8198840702717, "buy_slippage_bps": 1.2334, "sell_slippage_bps": 1.1142, "liquidity_ok": true, "source_ts_ms": 1792605226701, "source_ts_iso": "2026-10-21T17:53:46.701Z", "book_source_ts_ms": 1792605240903, "stale": false, "hl_fee_unverified": false }, "hyperliquid": { "native_symbol": "ETH", "mark_price_usd": 2516.2, "index_price_usd": 2516.7, "funding_rate_per_interval": 1.25e-05, "funding_interval_hours": 1.0, "funding_rate_per_hour": 1.25e-05, "funding_paid_by_long_usd": 3.0, "funding_apr": 0.10950000000000001, "volume_24h_usd": 831961673.8509591, "avg_buy_fill_price_usd": 2517.0, "avg_sell_fill_price_usd": 2516.9, "buy_slippage_bps": 0.1987, "sell_slippage_bps": 0.1987, "liquidity_ok": true, "source_ts_ms": 1792605227477, "source_ts_iso": "2026-10-21T17:53:47.477Z", "book_source_ts_ms": 1792605243117, "stale": false, "hl_fee_unverified": false }, "okx": { "native_symbol": "ETH-USDT-SWAP", "mark_price_usd": 2515.7, "index_price_usd": null, "funding_rate_per_interval": 1.24577612367e-05, "funding_interval_hours": 8.0, "funding_rate_per_hour": 1.5572201545875e-06, "funding_paid_by_long_usd": 0.373732837101, "funding_apr": 0.013641248554186502, "volume_24h_usd": 5922215068.86487, "avg_buy_fill_price_usd": 2515.98, "avg_sell_fill_price_usd": 2515.97, "buy_slippage_bps": 0.0199, "sell_slippage_bps": 0.0199, "liquidity_ok": true, "source_ts_ms": 1792605196151, "source_ts_iso": "2026-10-21T17:53:16.151Z", "book_source_ts_ms": 1792605242007, "stale": false, "hl_fee_unverified": false } } } ] } 2. https://strike-edge.onrender.com/api/v1/opportunities Two-leg strategy: long one venue, short another, equal notional. Always involves Strike. Ranked by estimated net USD after fees and slippage on all four fills (never raw spread). Params: min_net_usd, notional, hours, fee_mode=taker|maker, direction=long_strike_short_other|long_other_short_strike, symbol, include_unverified. Example: https://strike-edge.onrender.com/api/v1/opportunities?symbol=BTC-USD¬ional=10000&hours=24&fee_mode=taker Real response (abridged: lists shortened to the top row; captured 2026-10-21T17:54:15.613Z): { "schema_version": "1.0", "generated_at_ms": 1792605255613, "generated_at_iso": "2026-10-21T17:54:15.613Z", "venues": { "strike": { "venue": "strike", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605226701, "source_ts_iso": "2026-10-21T17:53:46.701Z", "age_seconds": 28.9, "last_error": null }, "hyperliquid": { "venue": "hyperliquid", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605227477, "source_ts_iso": "2026-10-21T17:53:47.477Z", "age_seconds": 28.1, "last_error": null }, "okx": { "venue": "okx", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605197878, "source_ts_iso": "2026-10-21T17:53:17.878Z", "age_seconds": 57.7, "last_error": null } }, "assumptions": { "notional_usd": 10000.0, "hours": 168.0, "fee_mode": "taker", "fee_rates": { "strike": 0.0005, "hyperliquid": 0.00045, "okx": 0.0005 }, "preset_hours": { "1d": 24.0, "1w": 168.0, "1m": 720.0 }, "slippage_model": "Taker: walk each venue's order book for the notional; slippage = average fill vs book mid, on entry and exit. Maker: slippage assumed zero and fills are not guaranteed. A book too thin for the notional is marked insufficient liquidity and excluded from rankings.", "funding_model": "Current hourly-normalized funding rate is assumed to persist for the whole period. Positive rate: longs pay shorts. Funding, basis and liquidity change; these are estimates.", "hl_hip3_fee_multiplier": 1.0, "notes": [ "Estimates, not profit or guaranteed arbitrage. Information only.", "Past funding does not predict future funding.", "Stale venue data (older than 5 minutes) is excluded from rankings." ] }, "disclaimer": "Estimates only, not financial advice. Funding, prices and liquidity change; results are not guaranteed.", "opportunities": [ { "rank": 1, "symbol": "ETH-USD", "asset_class": "crypto", "direction": "long_strike_short_other", "long_venue": "strike", "short_venue": "hyperliquid", "net_usd": 33.99982229076046, "net_usd_by_period": { "1d": -13.781341255186677, "1w": 33.99982229076046, "1m": 217.16094921689117 }, "carry_usd_per_hour": 0.331813635735744, "funding_net_usd": 55.744690803604996, "fees_usd": 19.0, "slippage_usd": 2.7448685128445334, "round_trip_cost_usd": 21.744868512844533, "break_even_hours": 65.53337829118668, "basis_bps": -9.304902200118523, "confidence": "High", "confidence_reasons": [], "stale": false, "stale_venues": [], "liquidity_ok": true, "ticker_only": false, "hl_fee_unverified": false, "market_open": true, "market_closed_reason": null, "exclusion_reason": null, "long_leg": { "venue": "strike", "native_symbol": "ETH-USD", "funding_rate_per_interval": -2.06813635735744e-05, "funding_interval_hours": 1.0, "funding_rate_per_hour": -2.06813635735744e-05, "mark_price_usd": 2513.85978928, "fee_rate": 0.0005, "stale": false, "source_ts_ms": 1792605226701, "source_ts_iso": "2026-10-21T17:53:46.701Z", "liquidity_ok": true }, "short_leg": { "venue": "hyperliquid", "native_symbol": "ETH", "funding_rate_per_interval": 1.25e-05, "funding_interval_hours": 1.0, "funding_rate_per_hour": 1.25e-05, "mark_price_usd": 2516.2, "fee_rate": 0.00045, "stale": false, "source_ts_ms": 1792605227477, "source_ts_iso": "2026-10-21T17:53:47.477Z", "liquidity_ok": true }, "line_items": [ { "label": "Funding, long leg on strike", "usd": 34.744690803604996 }, { "label": "Funding, short leg on hyperliquid", "usd": 21.0 }, { "label": "Fees on strike (entry + exit, taker)", "usd": -10.0 }, { "label": "Fees on hyperliquid (entry + exit, taker)", "usd": -9.0 }, { "label": "Slippage on strike (entry + exit)", "usd": -2.34756224931165 }, { "label": "Slippage on hyperliquid (entry + exit)", "usd": -0.3973062635328833 }, { "label": "Estimated net", "usd": 33.99982229076046 } ], "trade_url": "https://v2.strikefinance.org", "note": "" } ], "unranked": [], "count": 4 } 3. https://strike-edge.onrender.com/api/v1/holding-cost Where is it cheapest to hold ONE long or short position? Entry + exit fees + slippage + funding over the holding period, per venue, with best and worst venue and the gap. Params: symbol (required), side=long|short (required), notional, hours, fee_mode. Example: https://strike-edge.onrender.com/api/v1/holding-cost?symbol=ETH-USD&side=long&hours=168 Real response (captured 2026-10-21T17:54:15.613Z): { "schema_version": "1.0", "generated_at_ms": 1792605255619, "generated_at_iso": "2026-10-21T17:54:15.619Z", "venues": { "strike": { "venue": "strike", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605226701, "source_ts_iso": "2026-10-21T17:53:46.701Z", "age_seconds": 28.9, "last_error": null }, "hyperliquid": { "venue": "hyperliquid", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605227477, "source_ts_iso": "2026-10-21T17:53:47.477Z", "age_seconds": 28.1, "last_error": null }, "okx": { "venue": "okx", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605197878, "source_ts_iso": "2026-10-21T17:53:17.878Z", "age_seconds": 57.7, "last_error": null } }, "assumptions": { "notional_usd": 10000.0, "hours": 168.0, "fee_mode": "taker", "fee_rates": { "strike": 0.0005, "hyperliquid": 0.00045, "okx": 0.0005 }, "preset_hours": { "1d": 24.0, "1w": 168.0, "1m": 720.0 }, "slippage_model": "Taker: walk each venue's order book for the notional; slippage = average fill vs book mid, on entry and exit. Maker: slippage assumed zero and fills are not guaranteed. A book too thin for the notional is marked insufficient liquidity and excluded from rankings.", "funding_model": "Current hourly-normalized funding rate is assumed to persist for the whole period. Positive rate: longs pay shorts. Funding, basis and liquidity change; these are estimates.", "hl_hip3_fee_multiplier": 1.0, "notes": [ "Estimates, not profit or guaranteed arbitrage. Information only.", "Past funding does not predict future funding.", "Stale venue data (older than 5 minutes) is excluded from rankings." ] }, "disclaimer": "Estimates only, not financial advice. Funding, prices and liquidity change; results are not guaranteed.", "symbol": "ETH-USD", "side": "long", "venues_ranked": [ { "venue": "strike", "native_symbol": "ETH-USD", "funding_rate_per_interval": -2.06813635735744e-05, "funding_interval_hours": 1.0, "funding_rate_per_hour": -2.06813635735744e-05, "fee_rate": 0.0005, "entry_fee_usd": 5.0, "exit_fee_usd": 5.0, "entry_slippage_usd": 1.2333825041612823, "exit_slippage_usd": 1.1141797451503674, "funding_cost_usd": -34.744690803604996, "total_cost_usd": -22.397128554293346, "liquidity_ok": true, "stale": false, "ranked": true, "exclusion_reason": null, "confidence": "High", "confidence_reasons": [], "source_ts_ms": 1792605226701, "source_ts_iso": "2026-10-21T17:53:46.701Z", "hl_fee_unverified": false }, { "venue": "okx", "native_symbol": "ETH-USDT-SWAP", "funding_rate_per_interval": 1.24577612367e-05, "funding_interval_hours": 8.0, "funding_rate_per_hour": 1.5572201545875e-06, "fee_rate": 0.0005, "entry_fee_usd": 5.0, "exit_fee_usd": 5.0, "entry_slippage_usd": 0.019873011457224893, "exit_slippage_usd": 0.019873011457224893, "funding_cost_usd": 2.616129859707, "total_cost_usd": 12.65587588262145, "liquidity_ok": true, "stale": false, "ranked": true, "exclusion_reason": null, "confidence": "High", "confidence_reasons": [], "source_ts_ms": 1792605196151, "source_ts_iso": "2026-10-21T17:53:16.151Z", "hl_fee_unverified": false }, { "venue": "hyperliquid", "native_symbol": "ETH", "funding_rate_per_interval": 1.25e-05, "funding_interval_hours": 1.0, "funding_rate_per_hour": 1.25e-05, "fee_rate": 0.00045, "entry_fee_usd": 4.5, "exit_fee_usd": 4.5, "entry_slippage_usd": 0.19865313176734503, "exit_slippage_usd": 0.19865313176553825, "funding_cost_usd": 21.0, "total_cost_usd": 30.397306263532883, "liquidity_ok": true, "stale": false, "ranked": true, "exclusion_reason": null, "confidence": "High", "confidence_reasons": [], "source_ts_ms": 1792605227477, "source_ts_iso": "2026-10-21T17:53:47.477Z", "hl_fee_unverified": false } ], "best_venue": "strike", "best_total_cost_usd": -22.397128554293346, "worst_venue": "hyperliquid", "worst_total_cost_usd": 30.397306263532883, "best_vs_worst_gap_usd": 52.79443481782623, "market_open": true, "market_closed_reason": null, "ticker_only": false } 4. https://strike-edge.onrender.com/api/v1/switch Should I move my position to Strike? You already hold a long or short on Hyperliquid or OKX. Compares STAYING there with CLOSING it and reopening on Strike, over `hours`. Stay = funding on the current venue plus its exit fee and slippage at the end (no entry fee, the position is open). Switch = close on the current venue now, open on Strike now, funding on Strike, close on Strike at the end. Returns stay_cost_usd, switch_cost_usd, estimated_saving_usd (stay minus switch; negative means staying is cheaper), switching_cost_upfront_usd, break_even_hours (only when Strike's hourly funding advantage is positive), a plain-language summary, confidence, stale flags, line items, and strike_cheaper_share_30d (fraction of the last 30 days' hours Strike was cheaper for this side, funding only). Params: symbol, side=long|short, from_venue=hyperliquid|okx (all required), notional, hours (default 336 = 2 weeks), fee_mode. Example: https://strike-edge.onrender.com/api/v1/switch?symbol=ETH-USD&side=long&from_venue=hyperliquid¬ional=50000 Real response (captured 2026-10-21T17:54:15.613Z): { "schema_version": "1.0", "generated_at_ms": 1792714534998, "generated_at_iso": "2026-10-23T00:15:34.998Z", "venues": { "strike": { "venue": "strike", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792714524030, "source_ts_iso": "2026-10-23T00:15:24.030Z", "age_seconds": 11.0, "last_error": null }, "hyperliquid": { "venue": "hyperliquid", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792714524058, "source_ts_iso": "2026-10-23T00:15:24.058Z", "age_seconds": 10.9, "last_error": null }, "okx": { "venue": "okx", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792714470170, "source_ts_iso": "2026-10-23T00:14:30.170Z", "age_seconds": 64.8, "last_error": null } }, "assumptions": { "notional_usd": 50000.0, "hours": 336.0, "fee_mode": "taker", "fee_rates": { "strike": 0.0005, "hyperliquid": 0.00045, "okx": 0.0005 }, "preset_hours": { "1d": 24.0, "1w": 168.0, "1m": 720.0 }, "slippage_model": "Taker: walk each venue's order book for the notional; slippage = average fill vs book mid, on entry and exit. Maker: slippage assumed zero and fills are not guaranteed. A book too thin for the notional is marked insufficient liquidity and excluded from rankings.", "funding_model": "Current hourly-normalized funding rate is assumed to persist for the whole period. Positive rate: longs pay shorts. Funding, basis and liquidity change; these are estimates.", "hl_hip3_fee_multiplier": 1.0, "notes": [ "Estimates, not profit or guaranteed arbitrage. Information only.", "Past funding does not predict future funding.", "Stale venue data (older than 5 minutes) is excluded from rankings." ] }, "disclaimer": "Estimates only, not financial advice. Funding, prices and liquidity change; results are not guaranteed.", "symbol": "ETH-USD", "side": "long", "from_venue": "hyperliquid", "notional_usd": 50000.0, "hours": 336.0, "period_label": "2 weeks", "summary": "Staying on Hyperliquid is cheaper right now, by about $170 over 2 weeks.", "staying_is_cheaper": true, "stay_cost_usd": 131.08663210782817, "switch_cost_usd": 301.15855583658816, "estimated_saving_usd": -170.07192372876, "switching_cost_upfront_usd": 57.63641669922845, "funding_advantage_usd_per_hour": -0.3049450000000001, "break_even_hours": null, "stay_line_items": [ { "label": "Funding on Hyperliquid over 2 weeks", "usd": -107.53847999999999 }, { "label": "Close on Hyperliquid at the end (fee)", "usd": -22.5 }, { "label": "Close on Hyperliquid at the end (slippage)", "usd": -1.0481521078281693 }, { "label": "Cost of staying", "usd": -131.08663210782817 } ], "switch_line_items": [ { "label": "Close on Hyperliquid now (fee)", "usd": -22.5 }, { "label": "Close on Hyperliquid now (slippage)", "usd": -1.0481521078281693 }, { "label": "Open on Strike now (fee)", "usd": -25.0 }, { "label": "Open on Strike now (slippage)", "usd": -9.088264591400273 }, { "label": "Funding on Strike over 2 weeks", "usd": -210.0 }, { "label": "Close on Strike at the end (fee)", "usd": -25.0 }, { "label": "Close on Strike at the end (slippage)", "usd": -8.522139137359721 }, { "label": "Cost of moving to Strike", "usd": -301.15855583658816 } ], "from_leg": { "venue": "hyperliquid", "native_symbol": "ETH", "funding_rate_per_interval": 6.4011e-06, "funding_interval_hours": 1.0, "funding_rate_per_hour": 6.4011e-06, "mark_price_usd": 2386.26, "fee_rate": 0.00045, "stale": false, "source_ts_ms": 1792714524058, "source_ts_iso": "2026-10-23T00:15:24.058Z", "liquidity_ok": true }, "strike_leg": { "venue": "strike", "native_symbol": "ETH-USD", "funding_rate_per_interval": 1.25e-05, "funding_interval_hours": 1.0, "funding_rate_per_hour": 1.25e-05, "mark_price_usd": 2383.3, "fee_rate": 0.0005, "stale": false, "source_ts_ms": 1792714524030, "source_ts_iso": "2026-10-23T00:15:24.030Z", "liquidity_ok": true }, "confidence": "Low", "confidence_reasons": [ "Funding direction was not consistent over the last 24h" ], "stale": false, "stale_venues": [], "liquidity_ok": true, "market_open": true, "market_closed_reason": null, "ticker_only": false, "hl_fee_unverified": false, "strike_cheaper_share_30d": 0.8328690807799443, "strike_cheaper_hours_compared_30d": 718, "history_loading": false, "trade_url": "https://v2.strikefinance.org", "note": "" } 5. https://strike-edge.onrender.com/api/v1/report 30-day history: share of hours the two-leg carry was positive, days to cover round-trip taker fees, cumulative estimated net over 7 and 30 days, longest favorable stretch, and the share of hours Strike was the cheaper venue for longs and shorts. Returns history_loading=true while the background backfill is still running. Real response (abridged to ETH-USD, 3 summary lines, 1 finding; captured 2026-10-21T17:54:15.613Z): { "schema_version": "1.0", "generated_at_ms": 1792605255798, "generated_at_iso": "2026-10-21T17:54:15.798Z", "venues": { "strike": { "venue": "strike", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605226701, "source_ts_iso": "2026-10-21T17:53:46.701Z", "age_seconds": 29.1, "last_error": null }, "hyperliquid": { "venue": "hyperliquid", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605227477, "source_ts_iso": "2026-10-21T17:53:47.477Z", "age_seconds": 28.3, "last_error": null }, "okx": { "venue": "okx", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605197878, "source_ts_iso": "2026-10-21T17:53:17.878Z", "age_seconds": 57.9, "last_error": null } }, "assumptions": { "notional_usd": 10000.0, "hours": 24.0, "fee_mode": "taker", "fee_rates": { "strike": 0.0005, "hyperliquid": 0.00045, "okx": 0.0005 }, "preset_hours": { "1d": 24.0, "1w": 168.0, "1m": 720.0 }, "slippage_model": "Taker: walk each venue's order book for the notional; slippage = average fill vs book mid, on entry and exit. Maker: slippage assumed zero and fills are not guaranteed. A book too thin for the notional is marked insufficient liquidity and excluded from rankings.", "funding_model": "Current hourly-normalized funding rate is assumed to persist for the whole period. Positive rate: longs pay shorts. Funding, basis and liquidity change; these are estimates.", "hl_hip3_fee_multiplier": 1.0, "notes": [ "Estimates, not profit or guaranteed arbitrage. Information only.", "Past funding does not predict future funding.", "Stale venue data (older than 5 minutes) is excluded from rankings." ] }, "disclaimer": "Estimates only, not financial advice. Funding, prices and liquidity change; results are not guaranteed.", "history_loading": false, "backfill": { "total": 90, "done": 90, "failed": 0, "skipped": 0, "running": false }, "window_days": 30, "window_start_ms": 1790010000000, "window_end_ms": 1792602000000, "notional_usd": 10000.0, "headline": "Last 30 days: Strike XRP, SOL, PUMP and ETH longs were cheaper to hold than on other venues in most hours, but shorts cost more.", "key_findings": [ { "kind": "below_index", "title": "Strike perps below index: longs cheaper, shorts costlier", "text": "Strike's XRP, SOL, PUMP and ETH perps traded below their index price in most hours (Sep 21 to Oct 21; Strike funding was negative in 80%, 80%, 59% and 63% of hours). Longs were cheaper to hold on Strike than on the other venues in most hours, and shorts were more expensive.", "markets": [ "XRP-USD", "SOL-USD", "PUMP-USD", "ETH-USD" ], "details": [ "XRP: Strike funding negative in 80% and positive in 20% of hours; Strike cheaper for longs in at least 97% and for shorts in at least 2% of hours.", "SOL: Strike funding negative in 80% and positive in 20% of hours; Strike cheaper for longs in at least 90% and for shorts in at least 7% of hours.", "PUMP: Strike funding negative in 59% and positive in 41% of hours; Strike cheaper for longs in at least 77% and for shorts in at least 6% of hours.", "ETH: Strike funding negative in 63% and positive in 37% of hours; Strike cheaper for longs in at least 72% and for shorts in at least 15% of hours." ], "caveat": "A discount or premium to index can change quickly, and it also affects entry and exit prices (basis). Past funding does not predict future funding." } ], "summary": [ "Over the last 30 days, Strike was the cheaper venue for 48% of hours for BTC shorts vs Hyperliquid, 51% vs OKX (funding only).", "Over the last 30 days, Strike was the cheaper venue for 52% of hours for BTC longs vs Hyperliquid, 49% vs OKX (funding only).", "Over the last 30 days, Strike was the cheaper venue for 15% of hours for ETH shorts vs Hyperliquid, 28% vs OKX (funding only)." ], "slippage_note": "Slippage per fill is the current order-book walk at the report notional (average of buy and sell, floor 2 bps). It reflects current depth, not historical depth.", "report_assumptions": { "notional_usd": 10000.0, "window_days": 30, "fees_taker": { "strike": 0.0005, "hyperliquid": 0.00045, "okx": 0.0005 }, "slippage_floor_bps_per_fill": 2.0, "slippage_note": "Slippage per fill is the current order-book walk at the report notional (average of buy and sell, floor 2 bps). It reflects current depth, not historical depth.", "fills_per_round_trip": 4, "low_confidence_rule": "Low confidence: thin liquidity or extreme funding: |30-day net| above 5% of notional, or book thin at the notional. Flagged pairs stay in the tables but are excluded from the summary.", "hl_hip3_fee_multiplier": 1.0, "notes": [ "Past funding does not predict future funding.", "Round-trip costs are paid once; cumulative net adds hourly carry on top.", "Hours missing on either venue are skipped, never counted as zero funding.", "OKX payments are spread evenly over the hours of their interval.", "Basis and execution prices at close are not modelled." ] }, "markets": [ { "symbol": "ETH-USD", "asset_class": "crypto", "ticker_only": false, "notes": "", "hours_with_data": { "strike": 720, "hyperliquid": 720, "okx": 719 }, "slippage_used": { "strike": { "bps": 2.0, "source": "floor applied (measured 1.17 bps)", "measured_bps": 1.173781124655825, "thin": false }, "hyperliquid": { "bps": 2.0, "source": "floor applied (measured 0.20 bps)", "measured_bps": 0.19865313176644164, "thin": false }, "okx": { "bps": 2.0, "source": "floor applied (measured 0.02 bps)", "measured_bps": 0.019873011457224893, "thin": false } }, "pairs": [ { "symbol": "ETH-USD", "other_venue": "hyperliquid", "direction": "long_strike_short_other", "notional_usd": 10000.0, "hours_compared": 720, "pct_hours_positive": 0.8458333333333333, "avg_carry_usd_per_hour": 0.1723613899861111, "round_trip_cost_usd": 27.0, "days_to_cover_costs": 6.526983798927664, "cum_net_7d_usd": 9.491973049999999, "cum_net_30d_usd": 97.10020079, "longest_favorable_hours": 271, "slippage_bps_strike": 2.0, "slippage_bps_other": 2.0, "low_confidence": false, "low_confidence_reason": null }, { "symbol": "ETH-USD", "other_venue": "hyperliquid", "direction": "long_other_short_strike", "notional_usd": 10000.0, "hours_compared": 720, "pct_hours_positive": 0.15416666666666667, "avg_carry_usd_per_hour": -0.1723613899861111, "round_trip_cost_usd": 27.0, "days_to_cover_costs": null, "cum_net_7d_usd": -63.49197305, "cum_net_30d_usd": -151.10020079, "longest_favorable_hours": 36, "slippage_bps_strike": 2.0, "slippage_bps_other": 2.0, "low_confidence": false, "low_confidence_reason": null }, { "symbol": "ETH-USD", "other_venue": "okx", "direction": "long_strike_short_other", "notional_usd": 10000.0, "hours_compared": 719, "pct_hours_positive": 0.7246175243393602, "avg_carry_usd_per_hour": 0.11665237900521261, "round_trip_cost_usd": 28.0, "days_to_cover_costs": 10.001224806692834, "cum_net_7d_usd": 6.841676070359128, "cum_net_30d_usd": 55.87306050474787, "longest_favorable_hours": 176, "slippage_bps_strike": 2.0, "slippage_bps_other": 2.0, "low_confidence": false, "low_confidence_reason": null }, { "symbol": "ETH-USD", "other_venue": "okx", "direction": "long_other_short_strike", "notional_usd": 10000.0, "hours_compared": 719, "pct_hours_positive": 0.2753824756606398, "avg_carry_usd_per_hour": -0.11665237900521261, "round_trip_cost_usd": 28.0, "days_to_cover_costs": null, "cum_net_7d_usd": -62.84167607035913, "cum_net_30d_usd": -111.87306050474787, "longest_favorable_hours": 37, "slippage_bps_strike": 2.0, "slippage_bps_other": 2.0, "low_confidence": false, "low_confidence_reason": null } ], "view_a": [ { "other_venue": "hyperliquid", "hours_compared": 720, "long_strike_cheaper_pct": 0.8458333333333333, "short_strike_cheaper_pct": 0.15416666666666667, "equal_pct": 0.0 }, { "other_venue": "okx", "hours_compared": 719, "long_strike_cheaper_pct": 0.7246175243393602, "short_strike_cheaper_pct": 0.2753824756606398, "equal_pct": 0.0 } ], "strike_hours": 720, "strike_negative_pct": 0.6305555555555555, "strike_positive_pct": 0.36944444444444446 } ] } 6. https://strike-edge.onrender.com/api/v1/history?symbol=BTC-USD&days=30 Hourly-normalized funding per venue. null means no data for that hour. Also returns cumulative_net_usd_on_10k, the running estimated net used by the report chart. Real response (abridged to 3 points per series; captured 2026-10-21T17:54:15.613Z): { "schema_version": "1.0", "generated_at_ms": 1792605255633, "generated_at_iso": "2026-10-21T17:54:15.633Z", "venues": { "strike": { "venue": "strike", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605226701, "source_ts_iso": "2026-10-21T17:53:46.701Z", "age_seconds": 28.9, "last_error": null }, "hyperliquid": { "venue": "hyperliquid", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605227477, "source_ts_iso": "2026-10-21T17:53:47.477Z", "age_seconds": 28.2, "last_error": null }, "okx": { "venue": "okx", "enabled": true, "stale": false, "degraded": false, "source_ts_ms": 1792605197878, "source_ts_iso": "2026-10-21T17:53:17.878Z", "age_seconds": 57.8, "last_error": null } }, "assumptions": { "notional_usd": 10000.0, "hours": 24.0, "fee_mode": "taker", "fee_rates": { "strike": 0.0005, "hyperliquid": 0.00045, "okx": 0.0005 }, "preset_hours": { "1d": 24.0, "1w": 168.0, "1m": 720.0 }, "slippage_model": "Taker: walk each venue's order book for the notional; slippage = average fill vs book mid, on entry and exit. Maker: slippage assumed zero and fills are not guaranteed. A book too thin for the notional is marked insufficient liquidity and excluded from rankings.", "funding_model": "Current hourly-normalized funding rate is assumed to persist for the whole period. Positive rate: longs pay shorts. Funding, basis and liquidity change; these are estimates.", "hl_hip3_fee_multiplier": 1.0, "notes": [ "Estimates, not profit or guaranteed arbitrage. Information only.", "Past funding does not predict future funding.", "Stale venue data (older than 5 minutes) is excluded from rankings." ] }, "disclaimer": "Estimates only, not financial advice. Funding, prices and liquidity change; results are not guaranteed.", "symbol": "ETH-USD", "days": 1, "resolution": "1h", "unit": "fraction per hour; positive means longs pay shorts", "venues_history": { "strike": [ { "ts_ms": 1792515600000, "funding_rate_per_hour": -2.3552757e-05 }, { "ts_ms": 1792519200000, "funding_rate_per_hour": -2.6622155e-05 }, { "ts_ms": 1792522800000, "funding_rate_per_hour": -2.8765519e-05 } ], "hyperliquid": [ { "ts_ms": 1792515600000, "funding_rate_per_hour": 1.25e-05 }, { "ts_ms": 1792519200000, "funding_rate_per_hour": 1.25e-05 }, { "ts_ms": 1792522800000, "funding_rate_per_hour": 1.25e-05 } ], "okx": [ { "ts_ms": 1792515600000, "funding_rate_per_hour": 1.2104025656025e-05 }, { "ts_ms": 1792519200000, "funding_rate_per_hour": 1.2104025656025e-05 }, { "ts_ms": 1792522800000, "funding_rate_per_hour": 1.2104025656025e-05 } ] }, "history_loading": false, "cumulative_net_usd_on_10k": { "hyperliquid": { "long_strike_short_other": [ { "ts_ms": 1792515600000, "cumulative_net_usd": -27.0 }, { "ts_ms": 1792519200000, "cumulative_net_usd": -26.63947243 } ], "long_other_short_strike": [ { "ts_ms": 1792515600000, "cumulative_net_usd": -27.0 }, { "ts_ms": 1792519200000, "cumulative_net_usd": -27.36052757 } ] }, "okx": { "long_strike_short_other": [ { "ts_ms": 1792515600000, "cumulative_net_usd": -28.0 }, { "ts_ms": 1792519200000, "cumulative_net_usd": -27.64343217343975 } ], "long_other_short_strike": [ { "ts_ms": 1792515600000, "cumulative_net_usd": -28.0 }, { "ts_ms": 1792519200000, "cumulative_net_usd": -28.35656782656025 } ] } }, "note": "OKX payments are spread evenly over the hours of their interval." } 7. https://strike-edge.onrender.com/healthz Per-venue status, last error, freshness and upstream request counts. Real response (captured 2026-10-21T17:54:15.613Z): { "schema_version": "1.0", "status": "ok", "generated_at_ms": 1792605255804, "generated_at_iso": "2026-10-21T17:54:15.804Z", "poll_cycles": 2, "last_cycle_ms": 1792605223302, "venues": { "strike": { "venue": "strike", "enabled": true, "status": "ok", "stale": false, "degraded": false, "last_success_ms": 1792605227011, "last_success_iso": "2026-10-21T17:53:47.011Z", "freshness_seconds": 29.1, "last_error": null, "last_error_ms": null, "upstream_requests_last_minute": 42, "upstream_requests_per_minute": { "2026-10-21T17:51Z": 41, "2026-10-21T17:52Z": 34, "2026-10-21T17:53Z": 33, "2026-10-21T17:54Z": 9 }, "rate_limit_headers": {} }, "hyperliquid": { "venue": "hyperliquid", "enabled": true, "status": "ok", "stale": false, "degraded": false, "last_success_ms": 1792605227478, "last_success_iso": "2026-10-21T17:53:47.478Z", "freshness_seconds": 28.3, "last_error": null, "last_error_ms": null, "upstream_requests_last_minute": 53, "upstream_requests_per_minute": { "2026-10-21T17:51Z": 11, "2026-10-21T17:52Z": 41, "2026-10-21T17:53Z": 42, "2026-10-21T17:54Z": 11 }, "rate_limit_headers": {} }, "okx": { "venue": "okx", "enabled": true, "status": "ok", "stale": false, "degraded": false, "last_success_ms": 1792605226930, "last_success_iso": "2026-10-21T17:53:46.930Z", "freshness_seconds": 57.9, "last_error": null, "last_error_ms": null, "upstream_requests_last_minute": 42, "upstream_requests_per_minute": { "2026-10-21T17:51Z": 42, "2026-10-21T17:52Z": 35, "2026-10-21T17:53Z": 34, "2026-10-21T17:54Z": 8 }, "rate_limit_headers": {} } }, "history": { "total": 90, "done": 90, "failed": 0, "skipped": 0, "running": false }, "history_loading": false, "snapshots_stored": 18, "inbound_rate_limit_per_minute": 60 } ## MCP server (for AI assistants) 8. https://strike-edge.onrender.com/mcp Remote MCP endpoint (Streamable HTTP, stateless JSON, no auth, read-only). Tools: get_opportunities(min_net_usd, notional, hours, fee_mode, direction, symbol, include_unverified), get_holding_cost(symbol, side, notional, hours, fee_mode), get_report(symbol optional), get_switch_estimate(symbol, side, from_venue, notional, hours, fee_mode). They call the same logic as the /api/v1 endpoints, with the same validation and the same numbers; unknown symbols and bad arguments come back as tool errors with the same messages. Every tool description states units, that results are estimates, the freshness rules and the restricted-jurisdictions notice. The inbound rate limit applies to /mcp too. Add it in a client that supports remote MCP servers. Claude Code example: claude mcp add --transport http strike-edge https://strike-edge.onrender.com/mcp Local alternative over stdio (runs its own live poller; first data after about 60 seconds, get_report after about 3 minutes of history backfill): python -m app.mcp ## Units and sign conventions - Field names carry units: *_usd (US dollars), *_bps (basis points), *_rate_per_hour (fraction per hour, 0.0001 = 0.01% per hour), *_hours, *_ms (UTC epoch milliseconds), *_iso (ISO 8601 UTC). - Funding: a POSITIVE rate means longs pay shorts. A long on a venue with rate +r pays r x notional per hour. A short receives it. Negative rates reverse this. - Raw funding is reported per interval (Strike 1h, Hyperliquid 1h, OKX usually 8h but derived per instrument) and normalized to per hour (per interval / interval hours). - net_usd is an estimate: funding on both legs minus fees on four fills minus slippage on four fills, assuming the CURRENT funding rate persists. Past funding does not predict future funding. Basis and funding can change, and closing prices may differ. - null means missing data. It is never 0. Zero funding is reported as 0. - break_even_hours = round-trip costs / net hourly carry; null if carry is not positive. - Maker figures assume resting orders fill (not guaranteed) with zero slippage. ## Freshness, confidence and exclusions - Each venue has source timestamps. Data older than 5 minutes is stale (stale=true) and is excluded from rankings. Poll cycle is 60 seconds; order books are staggered across it. - confidence is High, Medium or Low (with confidence_reasons) from data freshness (all legs under 2 minutes), book depth at your size, and how consistent the funding sign was over the last 24h. Low is forced when the underlying market is closed (stocks, indices, commodities), for ticker-only matches, and lowered one level when the Hyperliquid HIP-3 deployer fee is unverified (hl_fee_unverified=true). - Rows with insufficient liquidity at your notional are excluded from rankings. - Ticker-only matches (CXMT, DRAM, MINIMAX, SPCX, UNITREE, ZHIPU) are not ranked unless you pass include_unverified=true; they still appear in the unranked list. ## Rate limits - https://strike-edge.onrender.com allows about 60 requests per minute per client. Over the limit you get HTTP 429 with a Retry-After header and {"error": "rate_limited", "detail": "..."}. - Responses under /api/v1 are cached for about 30 seconds; polling faster gains nothing. - /healthz is exempt from the limit. - Errors always look like {"error": "", "detail": ""}. ## Disclaimer Estimates only, not financial advice. Funding, prices and liquidity change; results are not guaranteed. Strike is not available to persons in restricted jurisdictions. See https://www.strikefinance.org/restricted