Crypto Data & Market Analysis Agent
此 MCP 可以做什么
Provides live cryptocurrency markets, derivatives, on-chain activity, DeFi, sentiment, macroeconomic data, execution costs, and deterministic market briefs.
工具
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'properties': {'hashRate': {'type': 'number'}, 'difficulty': {'type': 'number'}, 'txCount24h': {'type': 'number'}, 'marketPrice': {'type': 'number'}, 'tradeVolumeUsd': {'type': 'number'}, 'btcLargeMempool': {'type': 'array', 'items': {'type': 'object', 'required': ['txHash', 'totalBtc', 'timestamp'], 'properties': {'txHash': {'type': 'string'}, 'totalBtc': {'type': 'number'}, 'timestamp': {'type': 'number'}}}, 'description': 'Largest transactions currently waiting in the mempool.'}, 'minersRevenueUsd': {'type': ['number', 'null'], 'description': 'null when the source does not publish it. Never 0 - miner revenue cannot be zero while blocks are produced.'}, 'estimatedTxVolumeUsd': {'type': 'number'}}}
输入模式
{'type': 'object', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'description': "Coin IDs as lowercase slugs, e.g. ['bitcoin','ethereum','solana']"}, 'vs_currency': {'type': 'string', 'description': "Quote currency, defaults to 'usd'"}}}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'symbol', 'name', 'price'], 'properties': {'id': {'type': 'string', 'description': 'Coin id, e.g. `bitcoin`.'}, 'name': {'type': 'string'}, 'price': {'type': 'number'}, 'symbol': {'type': 'string'}, 'change7d': {'type': ['number', 'null'], 'description': 'Percent.'}, 'change24h': {'type': ['number', 'null'], 'description': 'Percent.'}, 'marketCap': {'type': ['number', 'null']}, 'volume24h': {'type': ['number', 'null']}}}}}}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'source', 'url', 'publishedAt'], 'properties': {'url': {'type': 'string'}, 'title': {'type': 'string'}, 'source': {'type': 'string'}, 'summary': {'type': 'string'}, 'publishedAt': {'type': 'string'}}}, 'description': 'Recent headlines, newest first. Summaries are our own words, not article text.'}}}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'required': ['totalTvl', 'topChains'], 'properties': {'totalTvl': {'type': 'number', 'description': 'Total value locked across DeFi, in USD.'}, 'topChains': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'tvl'], 'properties': {'tvl': {'type': 'number'}, 'name': {'type': 'string'}}}}, 'stablecoinMarketCap': {'type': ['number', 'null'], 'description': 'Dry powder waiting on the sidelines.'}}}
输入模式
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'description': 'Coin or pair, e.g. BTC, BTCUSDT, ETH'}}}
输出模式
{'type': 'object', 'required': ['coin', 'perExchange', 'exchangeCount'], 'properties': {'coin': {'type': 'string'}, 'perExchange': {'type': 'array', 'items': {'type': 'object', 'required': ['exchange'], 'properties': {'exchange': {'enum': ['Binance', 'Bybit', 'OKX', 'Hyperliquid'], 'type': 'string', 'description': 'Venue name. Hyperliquid is the only DEX in the set; its native hourly funding is already converted to the same percent-per-8h unit as the others.'}, 'fundingRate': {'type': ['number', 'null'], 'description': 'Percent per 8 hours.'}, 'openInterestUsd': {'type': ['number', 'null']}}}, 'description': "Per-venue breakdown, from each venue's largest-open-interest perpetual."}, 'exchangeCount': {'type': 'number', 'description': 'How many major venues backed the numbers.'}, 'fundingSpread': {'type': ['number', 'null'], 'description': 'Highest minus lowest venue funding. A wide spread marks localised positioning.'}, 'avgFundingRate': {'type': ['number', 'null'], 'description': 'Percent per 8 hours. 0.0067 means 0.0067%, not 0.67%.'}, 'totalOpenInterestUsd': {'type': ['number', 'null'], 'description': 'Summed across the major venues.'}, 'avgFundingAnnualizedPct': {'type': ['number', 'null'], 'description': 'The same funding as a yearly percentage, comparable to any other yield.'}}}
输入模式
{'type': 'object', 'properties': {'coins': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Base coins, e.g. ["BTC","ETH","SOL"]. Maximum 10. Defaults to BTC and ETH.'}}}
输出模式
{'type': 'object', 'required': ['coins', 'unavailable'], 'properties': {'coins': {'type': 'array', 'items': {'type': 'object', 'required': ['coin', 'exchangeCount'], 'properties': {'coin': {'type': 'string'}, 'exchangeCount': {'type': 'number', 'description': 'How many major venues backed the numbers.'}, 'fundingSpread': {'type': ['number', 'null'], 'description': 'Highest minus lowest venue funding. A wide spread marks localised positioning.'}, 'avgFundingRate': {'type': ['number', 'null'], 'description': 'Percent per 8 hours. 0.0067 means 0.0067%, not 0.67%.'}, 'totalOpenInterestUsd': {'type': ['number', 'null'], 'description': 'Summed across the major venues.'}, 'avgFundingAnnualizedPct': {'type': ['number', 'null'], 'description': 'The same funding as a yearly percentage, comparable to any other yield.'}}}}, 'unavailable': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Requested coins with no major-venue perpetual. Never silently dropped.'}}}
输入模式
{'type': 'object', 'properties': {'days': {'type': 'number', 'description': 'How many days ahead to cover, defaults to 14'}}}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'required': ['event', 'country', 'time', 'impact'], 'properties': {'time': {'type': 'string'}, 'event': {'type': 'string'}, 'actual': {'type': ['number', 'null'], 'description': 'Null until the release lands.'}, 'impact': {'type': 'string'}, 'country': {'type': 'string'}, 'estimate': {'type': ['number', 'null']}, 'previous': {'type': ['number', 'null']}}}, 'description': 'Scheduled macro releases ahead, soonest first.'}}}
输入模式
{'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'Ethereum address (0x...)'}}}
输出模式
{'type': 'object', 'required': ['address', 'balanceEth', 'recentLargeTransfers'], 'properties': {'address': {'type': 'string'}, 'balanceEth': {'type': 'number'}, 'recentLargeTransfers': {'type': 'array', 'items': {'type': 'object', 'required': ['hash', 'from', 'to', 'valueEth', 'timestamp', 'direction'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'hash': {'type': 'string'}, 'valueEth': {'type': 'number'}, 'direction': {'enum': ['in', 'out'], 'type': 'string'}, 'timestamp': {'type': 'number', 'description': 'Unix seconds.'}}}, 'description': 'Transfers above 1 ETH, newest first.'}}}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'required': ['flows', 'windowMinutes', 'coverage', 'unavailable'], 'properties': {'flows': {'type': 'array', 'items': {'type': 'object', 'required': ['exchange', 'valueEth', 'direction', 'timestamp', 'hash'], 'properties': {'hash': {'type': 'string'}, 'exchange': {'type': 'string'}, 'valueEth': {'type': 'number'}, 'direction': {'enum': ['in', 'out'], 'type': 'string', 'description': '`in` is flow toward the exchange (distribution pressure), `out` is away.'}, 'timestamp': {'type': 'number', 'description': 'Unix seconds.'}, 'counterparty': {'type': 'string', 'description': 'The non-exchange side of the transfer.'}}}, 'description': 'Large ETH transfers to and from known exchange wallets, largest first.'}, 'coverage': {'type': 'array', 'items': {'type': 'object', 'required': ['exchange', 'minutesCovered', 'truncated'], 'properties': {'exchange': {'type': 'string'}, 'truncated': {'type': 'boolean', 'description': 'true means the wallet is too busy for a single page, so older transfers in the window were not seen.'}, 'minutesCovered': {'type': 'number'}}}, 'description': 'How much of that window each wallet could actually be read back over. A busy wallet can exhaust one page before reaching the far end.'}, 'unavailable': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Exchange wallets that could not be read. An empty flows list with entries here means nothing was read, not that nothing moved.'}, 'windowMinutes': {'type': 'number', 'description': 'The window asked for, in minutes.'}}}
输入模式
{'type': 'object', 'required': ['coin'], 'properties': {'coin': {'type': 'string', 'description': 'Coin symbol, e.g. "BTC", "ETH", "SOL". The USDT perpetual is read.'}, 'sizesUsd': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Trade sizes to price, in US dollars. Defaults to 10000, 50000 and 250000. At most five.'}}}
输出模式
{'type': 'object', 'required': ['coin', 'sizesUsd', 'venues', 'unavailable', 'cheapest'], 'properties': {'coin': {'type': 'string'}, 'venues': {'type': 'array', 'items': {'type': 'object', 'required': ['venue', 'symbol', 'mid', 'spreadBps', 'buy', 'sell'], 'properties': {'buy': {'type': 'array', 'items': {'type': 'object', 'required': ['notionalUsd', 'filledUsd', 'avgPrice', 'slippageBps', 'costUsd', 'filled'], 'properties': {'filled': {'type': 'boolean', 'description': 'false means the book ran out before the requested size; the price is NOT extrapolated.'}, 'costUsd': {'type': 'number', 'description': 'The same cost in dollars.'}, 'avgPrice': {'type': 'number', 'description': 'Volume-weighted price the order would actually get.'}, 'filledUsd': {'type': 'number', 'description': 'How much of the size the book could actually absorb. Equals notionalUsd only when filled is true.'}, 'notionalUsd': {'type': 'number'}, 'slippageBps': {'type': 'number', 'description': 'Cost against mid in basis points. Always positive, for buys and sells alike.'}}}}, 'mid': {'type': 'number'}, 'sell': {'type': 'array', 'items': {'type': 'object', 'required': ['notionalUsd', 'filledUsd', 'avgPrice', 'slippageBps', 'costUsd', 'filled'], 'properties': {'filled': {'type': 'boolean', 'description': 'false means the book ran out before the requested size; the price is NOT extrapolated.'}, 'costUsd': {'type': 'number', 'description': 'The same cost in dollars.'}, 'avgPrice': {'type': 'number', 'description': 'Volume-weighted price the order would actually get.'}, 'filledUsd': {'type': 'number', 'description': 'How much of the size the book could actually absorb. Equals notionalUsd only when filled is true.'}, 'notionalUsd': {'type': 'number'}, 'slippageBps': {'type': 'number', 'description': 'Cost against mid in basis points. Always positive, for buys and sells alike.'}}}}, 'venue': {'enum': ['Bybit', 'OKX'], 'type': 'string'}, 'levels': {'type': 'object', 'properties': {'asks': {'type': 'number'}, 'bids': {'type': 'number'}}}, 'symbol': {'type': 'string'}, 'bestAsk': {'type': 'number'}, 'bestBid': {'type': 'number'}, 'spreadBps': {'type': 'number', 'description': 'Quoted spread in basis points. Half of it is the floor for any slippage.'}, 'askDepthUsd': {'type': 'number'}, 'bidDepthUsd': {'type': 'number', 'description': 'Notional resting within bandPct of mid on the bid side, in USD.'}}}}, 'bandPct': {'type': 'number', 'description': 'Half-width of the depth band around mid, in percent.'}, 'cheapest': {'type': 'array', 'items': {'type': 'object', 'required': ['notionalUsd', 'buyVenue', 'sellVenue'], 'properties': {'buyVenue': {'type': ['string', 'null']}, 'sellVenue': {'type': ['string', 'null']}, 'notionalUsd': {'type': 'number'}, 'buySlippageBps': {'type': ['number', 'null']}, 'sellSlippageBps': {'type': ['number', 'null']}}}, 'description': 'Per requested size, the venue with the lowest slippage among those that can fill it.'}, 'sizesUsd': {'type': 'array', 'items': {'type': 'number'}}, 'unavailable': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Venues with no usable book for this coin. Never dropped silently.'}, 'unavailableDetail': {'type': 'array', 'items': {'type': 'object', 'required': ['venue', 'reason'], 'properties': {'venue': {'type': 'string'}, 'reason': {'type': 'string'}}}, 'description': 'The same venues with the reason each one failed, so a missing venue is diagnosable.'}}}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'required': ['value', 'classification', 'history'], 'properties': {'value': {'type': 'number', 'description': '0-100. Low is fear, high is greed.'}, 'history': {'type': 'array', 'items': {'type': 'object', 'required': ['time', 'value'], 'properties': {'time': {'type': 'number'}, 'value': {'type': 'number'}}}}, 'previousValue': {'type': ['number', 'null']}, 'classification': {'type': 'string'}, 'previousClassification': {'type': ['string', 'null']}}}
输入模式
{'type': 'object', 'properties': {'coins': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Coins, e.g. ["BTC","ETH"]. Defaults to both. Only BTC and ETH have a published index.'}, 'windowDays': {'type': 'number', 'description': 'How many days the percentile distribution covers. Defaults to 30, maximum 365.'}}}
输出模式
{'type': 'object', 'required': ['windowDays', 'coins', 'unavailable'], 'properties': {'coins': {'type': 'array', 'items': {'type': 'object', 'required': ['coin', 'current', 'percentile', 'samples'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'coin': {'type': 'string'}, 'median': {'type': 'number'}, 'current': {'type': 'number', 'description': '30-day implied volatility, annualized, in percent. 34.95 means 34.95%, not 0.3495.'}, 'samples': {'type': 'number', 'description': 'Measurements backing the distribution.'}, 'percentile': {'type': 'number', 'description': '0-100. Where `current` sits in its own distribution over the window.'}, 'expectedMove1d': {'type': 'number', 'description': 'Expected move over 1 day, plus or minus percent. Scales with sqrt(time).'}, 'expectedMove7d': {'type': 'number'}, 'expectedMove30d': {'type': 'number'}}}}, 'windowDays': {'type': 'number'}, 'unavailable': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Requested coins with no published volatility index. Never silently dropped.'}}}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'properties': {'m2': {'type': ['object', 'null'], 'required': ['value', 'date'], 'properties': {'date': {'type': 'string', 'description': 'ISO date of the observation.'}, 'value': {'type': 'number'}, 'previous': {'type': ['number', 'null'], 'description': 'Prior observation, for direction.'}}}, 'vix': {'type': ['object', 'null'], 'required': ['value', 'date'], 'properties': {'date': {'type': 'string', 'description': 'ISO date of the observation.'}, 'value': {'type': 'number'}, 'previous': {'type': ['number', 'null'], 'description': 'Prior observation, for direction.'}}}, 'ust2y': {'type': ['object', 'null'], 'required': ['value', 'date'], 'properties': {'date': {'type': 'string', 'description': 'ISO date of the observation.'}, 'value': {'type': 'number'}, 'previous': {'type': ['number', 'null'], 'description': 'Prior observation, for direction.'}}}, 'cpiYoY': {'type': ['object', 'null'], 'required': ['value', 'date'], 'properties': {'date': {'type': 'string', 'description': 'ISO date of the observation.'}, 'value': {'type': 'number'}, 'previous': {'type': ['number', 'null'], 'description': 'Prior observation, for direction.'}}}, 'ust10y': {'type': ['object', 'null'], 'required': ['value', 'date'], 'properties': {'date': {'type': 'string', 'description': 'ISO date of the observation.'}, 'value': {'type': 'number'}, 'previous': {'type': ['number', 'null'], 'description': 'Prior observation, for direction.'}}}, 'fedFunds': {'type': ['object', 'null'], 'required': ['value', 'date'], 'properties': {'date': {'type': 'string', 'description': 'ISO date of the observation.'}, 'value': {'type': 'number'}, 'previous': {'type': ['number', 'null'], 'description': 'Prior observation, for direction.'}}}, 'dollarIndex': {'type': ['object', 'null'], 'required': ['value', 'date'], 'properties': {'date': {'type': 'string', 'description': 'ISO date of the observation.'}, 'value': {'type': 'number'}, 'previous': {'type': ['number', 'null'], 'description': 'Prior observation, for direction.'}}}, 'yieldCurve2s10s': {'type': ['object', 'null'], 'required': ['value', 'inverted'], 'properties': {'value': {'type': 'number'}, 'inverted': {'type': 'boolean'}, 'previous': {'type': ['number', 'null']}, 'direction': {'enum': ['steepening', 'flattening', 'flat', None], 'type': ['string', 'null']}}, 'description': '10Y minus 2Y. Inversion has preceded every recent US recession.'}}}
输入模式
{'type': 'object', 'properties': {'coin': {'type': 'string', 'description': 'Coin, e.g. "BTC" (default), "ETH", "SOL".'}, 'sizeUsd': {'type': 'number', 'description': 'Trade size the execution cost is measured at, in US dollars. Defaults to 100000.'}}}
输出模式
{'type': 'object', 'required': ['coin', 'asOf', 'stance', 'confidence', 'verdict', 'drivers', 'invalidation', 'missing'], 'properties': {'asOf': {'type': 'string', 'description': 'ISO timestamp the brief was computed at.'}, 'coin': {'type': 'string'}, 'stance': {'enum': ['risk-on', 'risk-off', 'fragile', 'neutral'], 'type': 'string', 'description': 'fragile is a state, not a direction: crowded positioning together with cheap implied volatility.'}, 'drivers': {'type': 'array', 'items': {'type': 'object', 'required': ['signal', 'value', 'reading', 'direction'], 'properties': {'value': {'type': 'string'}, 'signal': {'type': 'string'}, 'reading': {'type': 'string'}, 'direction': {'type': 'number', 'description': '-1 toward risk, +1 toward support, 0 relevant but neutral.'}}}, 'description': 'Every signal that fed the verdict, so it can be argued with instead of taken on faith.'}, 'missing': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Sources that did not answer. A missing signal is never counted as a neutral one.'}, 'verdict': {'type': 'string', 'description': 'The read in one or two sentences.'}, 'tradeable': {'type': ['object', 'null'], 'properties': {'venue': {'type': 'string'}, 'costBps': {'type': 'number'}, 'sizeUsd': {'type': 'number'}}, 'description': 'null when no venue could be read.'}, 'confidence': {'enum': ['low', 'medium', 'high'], 'type': 'string'}, 'invalidation': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Concrete, numeric conditions that would make this verdict wrong.'}}}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'properties': {'btcDominance': {'type': ['number', 'null']}, 'ethDominance': {'type': ['number', 'null']}, 'usdtDominance': {'type': ['number', 'null']}}, 'description': 'Share of total crypto market cap, in percent.'}
输入模式
{'type': 'object', 'properties': {'hours': {'type': 'number', 'description': 'How many hours back the window covers. Defaults to 24, maximum 168.'}}}
输出模式
{'type': 'object', 'required': ['windowHours', 'samples', 'from', 'to'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'funding': {'type': 'object', 'required': ['current', 'median', 'min', 'max', 'percentile'], 'properties': {'max': {'type': ['number', 'null']}, 'min': {'type': ['number', 'null']}, 'median': {'type': ['number', 'null']}, 'current': {'type': ['number', 'null']}, 'samples': {'type': 'number', 'description': "How many measurements back these numbers. Lower than the window's total when the series has gaps â\x80\x94 or, for open interest, when older readings came from a different set of venues and are therefore not comparable."}, 'percentile': {'type': ['number', 'null'], 'description': '0-100. Where `current` sits among the samples.'}}, 'description': 'Current reading placed in its own distribution over the window.'}, 'samples': {'type': 'number', 'description': 'Snapshots in the window, captured every ~10 minutes.'}, 'fearGreed': {'type': 'object', 'required': ['current', 'median', 'min', 'max', 'percentile'], 'properties': {'max': {'type': ['number', 'null']}, 'min': {'type': ['number', 'null']}, 'median': {'type': ['number', 'null']}, 'current': {'type': ['number', 'null']}, 'samples': {'type': 'number', 'description': "How many measurements back these numbers. Lower than the window's total when the series has gaps â\x80\x94 or, for open interest, when older readings came from a different set of venues and are therefore not comparable."}, 'percentile': {'type': ['number', 'null'], 'description': '0-100. Where `current` sits among the samples.'}}, 'description': 'Current reading placed in its own distribution over the window.'}, 'windowHours': {'type': 'number'}, 'btcDominance': {'type': 'object', 'required': ['current', 'median', 'min', 'max', 'percentile'], 'properties': {'max': {'type': ['number', 'null']}, 'min': {'type': ['number', 'null']}, 'median': {'type': ['number', 'null']}, 'current': {'type': ['number', 'null']}, 'samples': {'type': 'number', 'description': "How many measurements back these numbers. Lower than the window's total when the series has gaps â\x80\x94 or, for open interest, when older readings came from a different set of venues and are therefore not comparable."}, 'percentile': {'type': ['number', 'null'], 'description': '0-100. Where `current` sits among the samples.'}}, 'description': 'Current reading placed in its own distribution over the window.'}, 'openInterestUsd': {'type': 'object', 'required': ['current', 'median', 'min', 'max', 'percentile'], 'properties': {'max': {'type': ['number', 'null']}, 'min': {'type': ['number', 'null']}, 'median': {'type': ['number', 'null']}, 'current': {'type': ['number', 'null']}, 'samples': {'type': 'number', 'description': "How many measurements back these numbers. Lower than the window's total when the series has gaps â\x80\x94 or, for open interest, when older readings came from a different set of venues and are therefore not comparable."}, 'percentile': {'type': ['number', 'null'], 'description': '0-100. Where `current` sits among the samples.'}}, 'description': 'Current reading placed in its own distribution over the window.'}}}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'required': ['quotes'], 'properties': {'quotes': {'type': 'array', 'items': {'type': 'object', 'required': ['symbol', 'name', 'price'], 'properties': {'name': {'type': 'string'}, 'time': {'type': ['number', 'null'], 'description': 'Unix seconds.'}, 'price': {'type': ['number', 'null']}, 'change': {'type': ['number', 'null']}, 'symbol': {'type': 'string'}, 'changePercent': {'type': ['number', 'null']}, 'previousClose': {'type': ['number', 'null']}}}}}}
近期工具变更
类似的 MCP 服务器
DeltaSignal ATLAS-7
Analyzes SEC and XBRL data for crypto-related public companies, including fundamentals, issuer signals, peer comparisons, stress …
intel
Provides multi-chain market intelligence, blockchain activity metrics, trading and portfolio planning, sanctions clearance, agent…
Market Intelligence API
Analyzes crypto and tokenized-asset markets using DEX flows, perpetual positioning, smart-money activity, token risk, market news…
Gate MCP
Provides public Gate exchange market data for spot, futures, delivery, margin, options, Alpha, Earn products, order books, candle…
AgentFeed
Provides crypto market data on liquidations, funding, open interest, order books, spreads, liquidation forecasts, and tokenized-a…
whale-insights
Provides read-only crypto market and on-chain intelligence, including whale activity, analyst signals, prices, funding rates, gas…
Okx
Provides public OKX market data for crypto instruments, including candles, prices, order books, funding rates, open interest, pos…
mcp
Provides crypto derivatives and market-structure data including funding, open interest, liquidations, options, ETF flows, leverag…