chainpeek: cross-venue perpetual funding carry ranking across Binance, Bybit, OKX, Hyperliquid and dYdX
rank_funding_carryRank cross-venue perpetual funding carry by annualized spread across Binance, Bybit, OKX, Hyperliquid, and dYdX, returning long/short venue pairs gross and net of taker fees.
Instructions
chainpeek: Rank cross-venue perpetual funding carry. For Hyperliquid against dYdX alone use compare_funding_rates; for market data use get_perp_markets. Returns the best long and short venue pair per asset across Binance USDT-M, Bybit, OKX, Hyperliquid and dYdX v4, with the annualised funding spread gross and net of taker fees. Net subtracts four taker legs (open and close on both venues) at taker_fee_bps, spread over holding_days; with the default 0 bps net equals gross. Rates are normalised to hourly and annualised (simple); a venue that is down is listed in venues_failed. Cached up to 60 s. Data only, not trading advice. Bad input is a 422 (not charged). Typically 1-5 s. Price: USD 0.005. Free: 10 chain reads per IP per UTC day. Docs: https://tanod.dev/learn/funding-rate-arbitrage-api.html
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows returned, 1-100 (default 20). | |
| venues | No | Optional subset of hyperliquid, dydx, binance, bybit, okx (at least two). Default: all five. | |
| symbols | No | Optional: only these base assets (case-insensitive, at most 50), such as BTC. Names listed on fewer than two of the chosen venues are returned in symbols_not_found. | |
| holding_days | No | Days the position is held; the fees are amortised over it (default 7). | |
| taker_fee_bps | No | Taker fee per side in basis points (default 0). Net APR subtracts 4 taker legs (open and close on both venues): 4 x bps / 100 x 365 / holding_days. | |
| min_volume_usd | No | A venue is only used for a symbol when its 24 h volume there reaches this (USD), so it applies to both legs. Default 0. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| pair | No | ||
| cache | No | ||
| count | No | ||
| error | No | Only on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object. | |
| source | No | ||
| markets | No | ||
| sorted_by | No | ||
| rate_basis | No | ||
| net_formula | No | ||
| venues_used | No | ||
| holding_days | No | ||
| annualization | No | ||
| taker_fee_bps | No | ||
| venues_failed | No | ||
| intervals_note | No | ||
| markets_ranked | No | ||
| intervals_unknown | No | ||
| symbols_not_found | No | ||
| fee_cost_annualized_pct | No |