mcp-server
Crypto yield data for AI agents: lending, savings, staking, borrowing & stablecoin rates. 18 tools.
Should I use this
Quality & Safety
Findings (10)
- LOWin get_coin
- LOWin top_coins
- LOWin similar_coins
- LOWin coin_history
- LOWin fear_greed_index
- LOWin top_movers
- LOWin stablecoin_index
- LOWin stablecoin_peg_stability
- LOWin resolve_symbol
- LOWin stablecoin_earn_benchmark
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"@bitcompare/mcp-server"
]
}
}
}Runnable packages
1.1.0stdioRemote endpoints
https://api.bitcompare.net/mcpstreamable-httpWhat it can do
Tool inventory
Tools (21)
🟢get_rates(symbol, category, provider, limit)
List current rates across providers, optionally filtered by symbol, category, or provider. For "what is the best yield on BTC right now?" style questions, ALWAYS pass category="lending"/"borrowing"/"staking" — an unfiltered call mostly returns spot prices (category="price"), not yields.
Input Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Filter by coin symbol, case-insensitive (e.g. \"btc\" or \"BTC\")"
},
"category": {
"type": "string",
"enum": [
"lending",
"borrowing",
"staking",
"price"
],
"description": "Filter by product category. IMPORTANT for yield questions: without this filter, most returned rows are category=\"price\" (spot prices), not yields. Pass category=\"lending\", \"borrowing\", or \"staking\" to get APY/interest-rate data."
},
"provider": {
"type": "string",
"description": "Filter by provider slug, case-insensitive"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"description": "Max results, default 100"
}
},
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"rates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"description": "Provider slug, e.g. `nexo`"
},
"symbol": {
"type": "string",
"description": "Coin symbol, e.g. `btc`"
},
"category": {
"type": "string",
"enum": [
"lending",
"borrowing",
"staking",
"price"
],
"description": "Product category"
},
"rate": {
"type": "number",
"description": "Rate value; semantics depend on unitType (percentage APY vs absolute price)"
},
"coinId": {
"type": [
"string",
"null"
],
"description": "Canonical coin id, e.g. `bitcoin` (nullable)"
},
"providerSymbol": {
"type": [
"string",
"null"
]
},
"metadata": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"unitType": {
"type": "string",
"enum": [
"percentage",
"absolute",
"ratio"
]
},
"unitSymbol": {
"type": [
"string",
"null"
]
},
"lastUpdated": {
"type": "string",
"description": "ISO-8601 timestamp of the most recent rate refresh"
},
"ageSeconds": {
"type": "integer",
"description": "Seconds since lastUpdated — use this to discount stale rows rather than trusting them as current"
},
"stale": {
"type": "boolean",
"description": "True when this row is old enough that it should be treated with caution (audit BC-9)"
}
},
"required": [
"provider",
"symbol",
"category",
"rate",
"coinId",
"lastUpdated"
],
"additionalProperties": true
},
"description": "Matching rate entries"
},
"count": {
"type": "number",
"description": "Number of rates returned"
},
"timestamp": {
"type": "string",
"description": "ISO-8601 response timestamp (omitted on /rates/{symbol})"
},
"symbol": {
"type": "string",
"description": "Present on the /rates/{symbol} variant"
}
},
"required": [
"rates",
"count"
],
"additionalProperties": true
}
},
"required": [
"data"
],
"additionalProperties": true
}🟢get_rate_by_symbol(symbol, category)
Fetch all provider rates for a specific coin symbol. Optionally filter by category — pass category="lending"/"borrowing"/"staking" for yield questions, since unfiltered results mix in spot prices (category="price").
Input Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Coin symbol, case-insensitive (e.g. \"btc\" or \"eth\")"
},
"category": {
"type": "string",
"enum": [
"lending",
"borrowing",
"staking",
"price"
],
"description": "Filter to a single product category. Without it, results mix spot prices (category=\"price\") in with yields — pass \"lending\"/\"borrowing\"/\"staking\" for yield-only results."
}
},
"required": [
"symbol"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"rates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"description": "Provider slug, e.g. `nexo`"
},
"symbol": {
"type": "string",
"description": "Coin symbol, e.g. `btc`"
},
"category": {
"type": "string",
"enum": [
"lending",
"borrowing",
"staking",
"price"
],
"description": "Product category"
},
"rate": {
"type": "number",
"description": "Rate value; semantics depend on unitType (percentage APY vs absolute price)"
},
"coinId": {
"type": [
"string",
"null"
],
"description": "Canonical coin id, e.g. `bitcoin` (nullable)"
},
"providerSymbol": {
"type": [
"string",
"null"
]
},
"metadata": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"unitType": {
"type": "string",
"enum": [
"percentage",
"absolute",
"ratio"
]
},
"unitSymbol": {
"type": [
"string",
"null"
]
},
"lastUpdated": {
"type": "string",
"description": "ISO-8601 timestamp of the most recent rate refresh"
},
"ageSeconds": {
"type": "integer",
"description": "Seconds since lastUpdated — use this to discount stale rows rather than trusting them as current"
},
"stale": {
"type": "boolean",
"description": "True when this row is old enough that it should be treated with caution (audit BC-9)"
}
},
"required": [
"provider",
"symbol",
"category",
"rate",
"coinId",
"lastUpdated"
],
"additionalProperties": true
},
"description": "Matching rate entries"
},
"count": {
"type": "number",
"description": "Number of rates returned"
},
"timestamp": {
"type": "string",
"description": "ISO-8601 response timestamp (omitted on /rates/{symbol})"
},
"symbol": {
"type": "string",
"description": "Present on the /rates/{symbol} variant"
}
},
"required": [
"rates",
"count"
],
"additionalProperties": true
}
},
"required": [
"data"
],
"additionalProperties": true
}🟢get_rate_history(symbol, provider, days)
Historical rate timeseries for a symbol. Recent history (~30 days) is per-tick; older history is daily granularity. Depth is clamped to your plan (up to 365 days on Pro) and bounded by how far back data has been recorded. (Current plan: up to 1825 days of history.)
Input Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Coin symbol, case-insensitive"
},
"provider": {
"type": "string",
"description": "Provider slug to scope to, case-insensitive"
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 1825,
"description": "Days of history. Clamped server-side to your plan (Free 7, Starter 30, Growth 90, Pro 365, Enterprise 1825) and bounded by available data. Points within ~30 days are per-tick; older points are daily."
}
},
"required": [
"symbol"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"symbol": {
"type": "string"
},
"history": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"symbol": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"lending",
"borrowing",
"staking",
"price"
]
},
"rate": {
"type": "number"
},
"metadata": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"timestamp": {
"type": "string",
"description": "ISO-8601 observation time (oldest → newest)"
},
"createdAt": {
"type": "string"
},
"coinId": {
"type": [
"string",
"null"
]
},
"providerSymbol": {
"type": [
"string",
"null"
]
}
},
"required": [
"provider",
"symbol",
"category",
"rate",
"timestamp",
"createdAt",
"coinId"
],
"additionalProperties": true
}
},
"count": {
"type": "number"
}
},
"required": [
"symbol",
"history",
"count"
],
"additionalProperties": true
}
},
"required": [
"data"
],
"additionalProperties": true
}🟢list_providers(category, limit)
All rate providers, optionally filtered by product category.
Input Schema
{
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"lending",
"borrowing",
"staking",
"price"
],
"description": "Filter to providers that offer this category"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"description": "Max results, default 100"
}
},
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"providers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Stable identifier (e.g. `nexo`)"
},
"name": {
"type": "string",
"description": "Display name"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Categories this provider offers"
}
},
"required": [
"slug",
"name"
],
"additionalProperties": true
}
}
},
"required": [
"providers"
],
"additionalProperties": true
}🟢get_coin(coinId)
Full metadata for a coin: description, links, categories, market data, developer stats.
Input Schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical coin id or slug (e.g. \"bitcoin\")"
}
},
"required": [
"coinId"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Canonical coin ID (e.g. `bitcoin`)"
},
"symbol": {
"type": "string",
"description": "Trading symbol (e.g. `btc`)"
},
"name": {
"type": "string",
"description": "Human-readable name (e.g. `Bitcoin`)"
},
"marketCap": {
"type": "number",
"description": "Market cap in USD"
},
"rank": {
"type": "integer",
"description": "Market cap rank (1 = largest)"
},
"price": {
"type": "number",
"description": "Current spot price in USD"
}
},
"required": [
"id",
"symbol",
"name"
],
"additionalProperties": true
}🟢list_coins(page, limit, search)
Paginated list of coins with optional name/symbol search.
Input Schema
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"description": "Page, default 1"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"description": "Page size, default 20"
},
"search": {
"type": "string",
"description": "Search by name or symbol"
}
},
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"coins": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Canonical coin ID (e.g. `bitcoin`)"
},
"symbol": {
"type": "string",
"description": "Trading symbol (e.g. `btc`)"
},
"name": {
"type": "string",
"description": "Human-readable name (e.g. `Bitcoin`)"
},
"marketCap": {
"type": "number",
"description": "Market cap in USD"
},
"rank": {
"type": "integer",
"description": "Market cap rank (1 = largest)"
},
"price": {
"type": "number",
"description": "Current spot price in USD"
}
},
"required": [
"id",
"symbol",
"name"
],
"additionalProperties": true
}
}
},
"required": [
"coins"
],
"additionalProperties": true
}🟢top_coins(limit)
Top N coins ordered by market capitalisation.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"description": "Number of coins, default 100"
}
},
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"coins": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Canonical coin ID (e.g. `bitcoin`)"
},
"symbol": {
"type": "string",
"description": "Trading symbol (e.g. `btc`)"
},
"name": {
"type": "string",
"description": "Human-readable name (e.g. `Bitcoin`)"
},
"marketCap": {
"type": "number",
"description": "Market cap in USD"
},
"rank": {
"type": "integer",
"description": "Market cap rank (1 = largest)"
},
"price": {
"type": "number",
"description": "Current spot price in USD"
}
},
"required": [
"id",
"symbol",
"name"
],
"additionalProperties": true
}
}
},
"required": [
"coins"
],
"additionalProperties": true
}🟢similar_coins(coinId, limit)
Coins related to the given coin by category/sector similarity.
Input Schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical coin id to find related coins for (e.g. \"bitcoin\")"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Max related coins to return, default 10"
}
},
"required": [
"coinId"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"coins": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Canonical coin ID (e.g. `bitcoin`)"
},
"symbol": {
"type": "string",
"description": "Trading symbol (e.g. `btc`)"
},
"name": {
"type": "string",
"description": "Human-readable name (e.g. `Bitcoin`)"
},
"marketCap": {
"type": "number",
"description": "Market cap in USD"
},
"rank": {
"type": "integer",
"description": "Market cap rank (1 = largest)"
},
"price": {
"type": "number",
"description": "Current spot price in USD"
}
},
"required": [
"id",
"symbol",
"name"
],
"additionalProperties": true
}
}
},
"required": [
"coins"
],
"additionalProperties": true
}🟢coin_history(coinId, days)
Historical price timeseries for a coin. (Current plan: up to 1825 days of history.)
Input Schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical coin id (e.g. \"bitcoin\")"
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 1825,
"description": "Days of history"
}
},
"required": [
"coinId"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"coinId": {
"type": "string"
},
"days": {
"type": "integer"
},
"source": {
"type": "string",
"enum": [
"rate_history",
"cache",
"coingecko"
],
"description": "Where the data came from"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "number",
"description": "Unix epoch milliseconds"
},
"price": {
"type": "number"
},
"volume": {
"type": "number"
},
"marketCap": {
"type": "number"
}
},
"required": [
"timestamp",
"price"
],
"additionalProperties": true
},
"description": "Price points, oldest → newest"
},
"lastUpdated": {
"type": "string",
"description": "ISO-8601 timestamp of the most recent refresh"
}
},
"required": [
"coinId",
"days",
"source",
"prices",
"lastUpdated"
],
"additionalProperties": true
}
},
"required": [
"data"
],
"additionalProperties": true
}🟢get_price(symbols, vs)
Current aggregated price for one or more symbols, computed from multiple exchange feeds.
Input Schema
{
"type": "object",
"properties": {
"symbols": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Single symbol or array of symbols (e.g. \"btc\" or [\"btc\",\"eth\"])"
},
"vs": {
"type": "string",
"description": "Quote currency, default \"usd\""
}
},
"required": [
"symbols"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"prices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Coin symbol"
},
"price": {
"type": "number",
"description": "Aggregated price in `currency` (default USD)"
},
"currency": {
"type": "string",
"description": "ISO 4217 currency code the price is denominated in"
},
"providers": {
"type": "integer",
"description": "Number of providers included in the aggregation"
},
"min": {
"type": "number",
"description": "Lowest provider price after outlier filtering"
},
"max": {
"type": "number",
"description": "Highest provider price after outlier filtering"
},
"median": {
"type": "number",
"description": "Median provider price"
},
"timestamp": {
"type": "string",
"description": "ISO-8601 timestamp of the aggregation"
}
},
"required": [
"symbol",
"price",
"currency",
"providers",
"min",
"max",
"median",
"timestamp"
],
"additionalProperties": true
}
},
"count": {
"type": "integer"
},
"timestamp": {
"type": "string"
}
},
"required": [
"prices",
"count",
"timestamp"
],
"additionalProperties": true
}🟢get_price_by_symbol(symbol, region, vs)
Aggregated exchange price for one symbol, plus the raw per-provider prices that fed the aggregate. Use get_price for multiple symbols in one call.
Input Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Single coin symbol, e.g. \"btc\""
},
"region": {
"type": "string",
"description": "Optional region filter for provider selection"
},
"vs": {
"type": "string",
"description": "Quote currency, default \"usd\""
}
},
"required": [
"symbol"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"symbol": {
"type": "string"
},
"aggregated": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Coin symbol"
},
"price": {
"type": "number",
"description": "Aggregated price in `currency` (default USD)"
},
"currency": {
"type": "string",
"description": "ISO 4217 currency code the price is denominated in"
},
"providers": {
"type": "integer",
"description": "Number of providers included in the aggregation"
},
"min": {
"type": "number",
"description": "Lowest provider price after outlier filtering"
},
"max": {
"type": "number",
"description": "Highest provider price after outlier filtering"
},
"median": {
"type": "number",
"description": "Median provider price"
},
"timestamp": {
"type": "string",
"description": "ISO-8601 timestamp of the aggregation"
}
},
"required": [
"symbol",
"price",
"currency",
"providers",
"min",
"max",
"median",
"timestamp"
],
"additionalProperties": true
},
"providers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"symbol": {
"type": "string"
},
"price": {
"type": "number"
},
"category": {
"type": "string"
},
"updatedAt": {
"type": "string"
}
},
"required": [
"provider",
"symbol",
"price",
"category",
"updatedAt"
],
"additionalProperties": true
},
"description": "Per-provider prices that fed the aggregate"
}
},
"required": [
"symbol",
"aggregated",
"providers"
],
"additionalProperties": true
}
},
"required": [
"data"
],
"additionalProperties": true
}🟢market_summary
One-call summary of total market cap, 24h volume, BTC/ETH dominance, and recent trend.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"totalMarketCapUsd": {
"type": "number",
"description": "Combined market cap of all tracked coins"
},
"volume24hUsd": {
"type": "number",
"description": "Combined 24h trading volume"
},
"btcDominance": {
"type": "number",
"description": "BTC share of total market cap, 0-100"
},
"ethDominance": {
"type": "number",
"description": "ETH share of total market cap, 0-100"
},
"trend24h": {
"type": "number",
"description": "24h trend as a decimal (0.02 = +2%)"
}
},
"required": [
"totalMarketCapUsd",
"volume24hUsd",
"btcDominance",
"ethDominance"
],
"additionalProperties": true
}🟢fear_greed_index
Current Fear & Greed index value and historical trend.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Current index, 0 (extreme fear) to 100 (extreme greed)"
},
"classification": {
"type": "string",
"description": "Label, e.g. `Greed`, `Neutral`, `Extreme Fear`"
},
"updatedAt": {
"type": "string"
},
"history": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "ISO-8601 timestamp of the data point"
},
"value": {
"type": "number",
"description": "The recorded numeric value"
}
},
"required": [
"timestamp",
"value"
],
"additionalProperties": true
},
"description": "Recent trend of the index"
}
},
"required": [
"value",
"classification"
],
"additionalProperties": true
}🟢top_movers(segment, limit)
Biggest 24h gainers and losers within a rank segment.
Input Schema
{
"type": "object",
"properties": {
"segment": {
"type": "string",
"enum": [
"top10",
"top100",
"top1000"
],
"description": "Rank segment, default \"top100\""
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Number of gainers and losers to return on each side, default 10"
}
},
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"gainers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Canonical coin ID (e.g. `bitcoin`)"
},
"symbol": {
"type": "string",
"description": "Trading symbol (e.g. `btc`)"
},
"name": {
"type": "string",
"description": "Human-readable name (e.g. `Bitcoin`)"
},
"marketCap": {
"type": "number",
"description": "Market cap in USD"
},
"rank": {
"type": "integer",
"description": "Market cap rank (1 = largest)"
},
"price": {
"type": "number",
"description": "Current spot price in USD"
}
},
"required": [
"id",
"symbol",
"name"
],
"additionalProperties": true
},
"description": "Top 24h gainers in the requested segment"
},
"losers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Canonical coin ID (e.g. `bitcoin`)"
},
"symbol": {
"type": "string",
"description": "Trading symbol (e.g. `btc`)"
},
"name": {
"type": "string",
"description": "Human-readable name (e.g. `Bitcoin`)"
},
"marketCap": {
"type": "number",
"description": "Market cap in USD"
},
"rank": {
"type": "integer",
"description": "Market cap rank (1 = largest)"
},
"price": {
"type": "number",
"description": "Current spot price in USD"
}
},
"required": [
"id",
"symbol",
"name"
],
"additionalProperties": true
},
"description": "Top 24h losers in the requested segment"
}
},
"required": [
"gainers",
"losers"
],
"additionalProperties": true
}🟢stablecoin_index(limit)
Ranked stablecoin leaderboard with stability scores, peg deviation, and market cap.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"description": "Default 50"
}
},
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"stablecoins": {
"type": "array",
"items": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Stablecoin symbol (e.g. `usdc`)"
},
"name": {
"type": "string",
"description": "Human-readable name"
},
"marketCap": {
"type": "number",
"description": "Market cap in USD"
},
"pegDeviation": {
"type": "number",
"description": "Current peg deviation from target (typically $1.00) in basis points"
},
"stabilityScore": {
"type": "number",
"description": "Stability score 0-100, higher is more stable"
}
},
"required": [
"symbol",
"name"
],
"additionalProperties": true
},
"description": "Ranked stablecoin leaderboard"
}
},
"required": [
"stablecoins"
],
"additionalProperties": true
}🟢stablecoin_peg_stability(symbol, period)
Peg deviation history and stability stats for a stablecoin.
Input Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Stablecoin symbol (e.g. \"usdt\", \"usdc\")"
},
"period": {
"type": "string",
"enum": [
"7d",
"30d",
"90d"
],
"description": "Stability window, default \"30d\""
}
},
"required": [
"symbol"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string"
},
"pegTarget": {
"type": "number",
"description": "Target peg in USD (typically 1.0)"
},
"deviation": {
"type": "number",
"description": "Current peg deviation in basis points"
},
"history": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "ISO-8601 timestamp of the data point"
},
"value": {
"type": "number",
"description": "The recorded numeric value"
}
},
"required": [
"timestamp",
"value"
],
"additionalProperties": true
},
"description": "Recent peg deviation samples"
}
},
"required": [
"symbol",
"pegTarget",
"deviation",
"history"
],
"additionalProperties": true
}🟢resolve_symbol(symbol, context)
Map an exchange-specific or ambiguous symbol to bitcompare's canonical coin id. Useful when an exchange uses a non-standard ticker.
Input Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Exchange-specific or ambiguous symbol"
},
"context": {
"type": "string",
"description": "Source exchange or quote currency to disambiguate (e.g. \"kraken\", \"binance\")"
}
},
"required": [
"symbol"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"input": {
"type": "string",
"description": "The raw symbol that was queried"
},
"coinId": {
"type": "string",
"description": "Canonical Bitcompare coin ID"
},
"symbol": {
"type": "string",
"description": "Canonical symbol"
},
"name": {
"type": "string",
"description": "Coin display name"
}
},
"required": [
"input",
"coinId",
"symbol",
"name"
],
"additionalProperties": true
}🟢resolve_symbols_batch(symbols, context)
Resolve up to 100 symbols in a single request. Requires a plan with bulk endpoints enabled.
Input Schema
{
"type": "object",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 100,
"description": "Up to 100 symbols to resolve in a single request"
},
"context": {
"type": "string",
"description": "Source exchange or quote currency applied to every input symbol"
}
},
"required": [
"symbols"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"resolved": {
"type": "array",
"items": {
"type": "object",
"properties": {
"input": {
"type": "string",
"description": "The raw symbol that was queried"
},
"coinId": {
"type": "string",
"description": "Canonical Bitcompare coin ID"
},
"symbol": {
"type": "string",
"description": "Canonical symbol"
},
"name": {
"type": "string",
"description": "Coin display name"
}
},
"required": [
"input",
"coinId",
"symbol",
"name"
],
"additionalProperties": true
}
}
},
"required": [
"resolved"
],
"additionalProperties": true
}🟢stablecoin_earn_benchmark(segment, history_days)
The Bitcompare Earn Index for stablecoins: median USDC/USDT lending APY across servable providers, with CeFi/DeFi splits, TVL-weighted variant, deltas, and an immutable daily history. Use for "what does stablecoin yield pay right now / how has it trended?" — this is the citable market reference, not a single provider quote.
Input Schema
{
"type": "object",
"properties": {
"segment": {
"type": "string",
"enum": [
"overall",
"cefi",
"defi"
],
"description": "Restrict to one segment. Omit for the headline across overall + CeFi + DeFi."
},
"history_days": {
"type": "integer",
"minimum": 1,
"maximum": 1825,
"description": "Request the daily series for the last N days instead of the headline. Anonymous/free access is clamped to the most recent 90 days."
}
},
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"benchmarkKey": {
"type": "string"
},
"name": {
"type": "string"
},
"methodologyVersion": {
"type": "string"
},
"methodologyUrl": {
"type": "string"
},
"segments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"segment": {
"type": "string",
"enum": [
"overall",
"cefi",
"defi"
]
},
"day": {
"type": "string"
},
"medianRate": {
"type": "number"
},
"tvlWeightedRate": {
"type": [
"number",
"null"
]
},
"constituentCount": {
"type": "integer"
},
"providerCount": {
"type": "integer"
},
"dayChange": {
"type": [
"number",
"null"
]
},
"weekChange": {
"type": [
"number",
"null"
]
},
"monthChange": {
"type": [
"number",
"null"
]
},
"sparkline": {
"type": "array",
"items": {
"type": "object",
"properties": {
"day": {
"type": "string"
},
"medianRate": {
"type": "number"
},
"backfilled": {
"type": "boolean"
}
},
"required": [
"day",
"medianRate",
"backfilled"
],
"additionalProperties": true
}
}
},
"required": [
"segment",
"day",
"medianRate",
"tvlWeightedRate",
"constituentCount",
"providerCount",
"dayChange",
"weekChange",
"monthChange",
"sparkline"
],
"additionalProperties": true
}
},
"updatedAt": {
"type": "string"
},
"segment": {
"type": "string",
"enum": [
"overall",
"cefi",
"defi"
]
},
"prints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"day": {
"type": "string"
},
"medianRate": {
"type": "number"
}
},
"required": [
"day",
"medianRate"
],
"additionalProperties": true
}
},
"count": {
"type": "integer"
},
"clamped": {
"type": "boolean"
}
},
"required": [
"benchmarkKey"
],
"additionalProperties": true
}
},
"required": [
"data"
],
"additionalProperties": true
}🟢get_rate_changes(since, until, provider, symbol, category, ...)
The immutable rate-change log: every material yield move with full provenance (previous rate, raw value, multiplier, collection method, confidence, base/bonus split). Time-ascending pages via cursor. Unfiltered windows are capped at 31 days — filter by provider or symbol to walk deep history. Use for "what changed since X?" and audit trails.
Input Schema
{
"type": "object",
"properties": {
"since": {
"type": "string",
"description": "ISO date/datetime lower bound (required), e.g. \"2026-08-01\""
},
"until": {
"type": "string",
"description": "ISO upper bound, default now"
},
"provider": {
"type": "string",
"description": "Filter to one provider (enables deep ranges)"
},
"symbol": {
"type": "string",
"description": "Filter to one symbol, e.g. \"USDC\""
},
"category": {
"type": "string",
"enum": [
"lending",
"borrowing",
"staking"
]
},
"cursor": {
"type": "string",
"description": "Opaque cursor from a previous page"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"description": "Page size, default 100"
}
},
"required": [
"since"
],
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"time": {
"type": "string"
},
"provider": {
"type": "string"
},
"symbol": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"lending",
"borrowing",
"staking"
]
},
"rate": {
"type": "number"
},
"previousRate": {
"type": [
"number",
"null"
]
},
"change": {
"type": [
"number",
"null"
]
},
"collectionMethod": {
"type": "string"
},
"confidence": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"baseRate": {
"type": [
"number",
"null"
]
},
"bonusRate": {
"type": [
"number",
"null"
]
}
},
"required": [
"time",
"provider",
"symbol",
"category",
"rate",
"previousRate",
"change",
"collectionMethod",
"confidence",
"baseRate",
"bonusRate"
],
"additionalProperties": true
}
},
"pagination": {
"type": "object",
"properties": {
"nextCursor": {
"type": [
"string",
"null"
]
},
"hasMore": {
"type": "boolean"
},
"limit": {
"type": "integer"
}
},
"required": [
"nextCursor",
"hasMore",
"limit"
],
"additionalProperties": true
}
},
"required": [
"data",
"pagination"
],
"additionalProperties": true
}🟢list_earn_products(provider, symbol, category, min_confidence, limit, ...)
The canonical earn product graph: products (provider × asset × category) with their term variants — lockups, tiers, minimum deposits, payout schedules, withdrawal notice, TVL, promo flags — each carrying collection method, confidence (0-100 with bands), verification timestamps, and geo eligibility resolved from variant overrides or provider defaults. Use for "what are the actual terms behind this rate?"
Input Schema
{
"type": "object",
"properties": {
"provider": {
"type": "string",
"description": "Filter to one provider, e.g. \"nexo\""
},
"symbol": {
"type": "string",
"description": "Filter to one symbol, e.g. \"BTC\""
},
"category": {
"type": "string",
"enum": [
"lending",
"borrowing",
"staking"
]
},
"min_confidence": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Only products with at least one variant at/above this confidence"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"description": "Page size, default 50"
},
"offset": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": true
}Output Schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"provider": {
"type": "string"
},
"symbol": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"lending",
"borrowing",
"staking"
]
},
"status": {
"type": "string"
},
"variants": {
"type": "array",
"items": {
"type": "object",
"properties": {
"variantKey": {
"type": "string"
}
},
"required": [
"variantKey"
],
"additionalProperties": true
}
}
},
"required": [
"id",
"provider",
"symbol",
"category",
"status"
],
"additionalProperties": true
}
},
"pagination": {
"type": "object",
"properties": {
"total": {
"type": "integer"
},
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"total",
"limit",
"offset",
"hasMore"
],
"additionalProperties": true
}
},
"required": [
"products",
"pagination"
],
"additionalProperties": true
}
},
"required": [
"data"
],
"additionalProperties": true
}Community
Evidence