BitcoinYield
Server Details
Best live crypto yield at each A-D risk grade on BTC, ETH, SOL and stablecoins, DeFi and CeFi.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
Both tools return yield data with risk grades, so there is real conceptual overlap, but the descriptions explicitly contrast them ('list_yields gives one pick per asset') and each has a distinct scope (per-asset top offers vs. one best pick per asset). An agent can tell them apart after reading, though the boundary requires reading the long descriptions rather than being obvious from names alone.
Both tools use the same list_<resource> snake_case pattern (list_offers, list_yields), which is fully consistent and predictable for a read-only lookup server.
Two tools is thin for a yield-aggregation domain that also involves assets, platforms, chains, and historicals. The pair is coherent as a read-only surface but feels like a minimal slice rather than a well-rounded toolkit.
The core job — comparing yields at offer level and asset level, with risk and filtering — is covered with no dead ends for the stated purpose. Gaps exist (no platform-centric lookup, no asset discovery outside the headline list, no historical/statistical view), but agents can work around them.
Available Tools
2 toolslist_offersList the top live offers for one assetARead-onlyIdempotentInspect
The top live yield offers for one asset (5 by default, up to 20) in BitcoinYield's own order: rate and risk together, with offers that have a month of steady history and $10M+ of liquidity first. Each offer carries its platform, chain, product type, rate (APY or APR), organic versus incentive split, 30-day average, liquidity, A-D risk grade with its main reasons, US availability, investor access, the platform's own deposit link and the page to cite. Filter by chain or a risk ceiling. Use it to compare options; list_yields gives one pick per asset. Rates are variable and not advice. No key required. When nothing matches, the answer says why: the filters, a dollar that lost its peg, or no live quote on the asset.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The asset's symbol, e.g. BTC, USDC or USDE. | |
| chain | No | Only offers on this chain, e.g. Ethereum, Base, Arbitrum or Solana (case-insensitive). Centralized (CeFi) offers have no chain. | |
| limit | No | How many offers to return, 1 to 20 (default 5). | |
| max_risk | No | Only offers graded at or below this letter: A (lower risk), B (moderate), C (elevated), D (higher). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The asset's full comparison on BitcoinYield. |
| asset | Yes | |
| count | Yes | |
| stale | No | True when part of this snapshot is over 6 hours old (a scheduled refresh was missed). |
| offers | Yes | |
| partial | No | True when a data source was missing from this snapshot. |
| updated_at | No | When the feed was last refreshed (ISO 8601). It refreshes every 3 hours. |
| degraded_sources | No | The sources missing from this snapshot, if any. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (read-only, idempotent, non-destructive), and the description adds real behavior: the ranking rule (rate and risk together, month of steady history and $10M+ liquidity first), auth needs ('No key required'), rate variability/disclaimer, and the empty-result contract explaining why nothing matched. It does not describe pagination beyond the limit parameter, but the added context is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the routing sentence is well placed. It is dense but single-paragraph and mostly earns its place; the long enumeration of return fields is partially redundant given a full output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with a full output schema and 100% parameter coverage, the description adds the ranking logic, empty-state explanation, disclaimer, and auth note. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (including asset enum, chain, limit bounds, and risk grade meanings), so the schema already carries parameter meaning. The description only restates the limit default and filter axes ('Filter by chain or a risk ceiling') without adding syntax or format detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('top live yield offers for one asset') plus scope and default sizing (5 by default, up to 20), and explicitly contrasts itself with the sibling: 'list_yields gives one pick per asset.' An agent can route between the two without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a direct when-to-use ('Use it to compare options') and names the alternative tool plus the condition that selects it (one pick per asset). Also states filtering options (chain, risk ceiling) and access requirements ('No key required').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_yieldsList the best yield per assetARead-onlyIdempotentInspect
One entry per asset (Bitcoin, ETH, SOL, USDC, USDT and every other tracked stablecoin, tokenized Treasury and L1) with its best current yield across DeFi and CeFi under BitcoinYield's risk-weighted ranking, its A-D risk grade, and a link to the full comparison. by_grade gives the best proven rate at grade A, B and C (A = lower risk), the tradeoff a holder chooses between: a grade is null when nothing proven at it pays materially more (at least 0.05 points and 5%) than a safer grade. best_apy and each by_grade rate are in percent, as the asset page shows them (today's rate, or its 7-day average when that is lower), and rate_basis says whether the source quotes an APY or an APR. To answer 'what is the best yield on X', quote by_grade, the lowest-risk grade first: best_apy is the top of the risk-weighted ranking and can be a higher-risk offer, or one closed to US residents. Set max_risk to limit every pick to offers graded at or below that letter. Rates are variable and not advice. No key required. With no asset or stablecoin filter this tool answers the headline assets (BTC, ETH, SOL, USDC, USDT, DAI, USDe, USD1, USDG, PYUSD, RLUSD); set all to true for every asset with a live yield.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Set to true for every asset with a live yield (about 60 entries, a large answer) instead of the headline assets. Ignored when asset or stablecoin is set. | |
| asset | No | Filter to one asset by its symbol, e.g. BTC, USDC or USDE. | |
| max_risk | No | Only consider offers graded at or below this letter: A (lower risk), B (moderate), C (elevated), D (higher). | |
| stablecoin | No | Set to true to return only stablecoin assets. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| stale | No | True when part of this snapshot is over 6 hours old (a scheduled refresh was missed). |
| yields | Yes | |
| partial | No | True when a data source was missing from this snapshot. |
| updated_at | No | When the feed was last refreshed (ISO 8601). It refreshes every 3 hours. |
| degraded_sources | No | The sources missing from this snapshot, if any. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, idempotent read, and the description adds substantial context beyond them: rates are variable and not advice, no API key is required, rate_basis discloses APY vs APR quoting, and a grade is null when nothing proven beats a safer grade by 0.05 points and 5%. It also discloses that some top-ranked offers are closed to US residents, a caveat an agent would otherwise miss.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, but the rest is one undifferentiated block that interleaves return-field semantics, parameter behavior, and disclaimers. Given 100% schema coverage and an output schema, some field-level explanation (rate_basis, by_grade nulls) is longer than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers defaults, filter interactions, risk-grade meaning, and interpretation caveats thoroughly for a 4-parameter tool with an output schema. The only real omission is what distinguishes it from list_offers, leaving the agent to guess between the two.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: max_risk is described as a ceiling applied to every pick rather than a filter on the entry, and all is described as ignored when asset or stablecoin is set. It also explains the default headline-asset behavior, which the schema does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb+resource and spells out exactly what one entry contains: best current yield per asset, A-D risk grade, and a comparison link. It is unambiguous what the tool returns. It never names or contrasts with the sibling list_offers, so an agent must infer that this is the per-asset rollup versus a per-offer listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Strong operational guidance: 'To answer what is the best yield on X, quote by_grade, the lowest-risk grade first', use max_risk to bound risk, and set all=true for the full ~60-asset list. It also warns that best_apy can be a higher-risk or US-restricted offer. It stops short of an explicit when-to-use-this-vs-list_offers routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
list_offers1 field changed- changed
Input schema / properties / asset / enumPrevious value: -[ - "BTC", - "ETH", - "SOL", - "USDC", - "USDT", - "DAI", - "USDE", - "GHO", - "CRVUSD", - "PYUSD", - "RLUSD", - "FRAX", - "USD1", - "USDY", - "USDG", - "AUSD", - "USDD", - "USD3", - "REUSD", - "USDX", - "USDF", - "USDAI", - "AVUSD", - "BNB", - "AVAX", - "TRX", - "HYPE", - "LINK", - "XRP", - "POL", - "SKY", - "CRV", - "SUI", - "CVX", - "AERO", - "USYC", - "USTB", - "OUSG", - "USCC", - "TBILL", - "THBILL", - "ONYC", - "STBT", - "DOLA", - "FRXUSD", - "MSUSD", - "FXUSD", - "APXUSD", - "APYUSD", - "STRUSD", - "SYZUSD", - "STCUSD", - "USDU", - "SRUSD", - "BOLD", - "LISUSD", - "YUSD", - "BUCK", - "EURC", - "EURE" -]New value: +[ + "BTC", + "ETH", + "SOL", + "USDC", + "USDT", + "DAI", + "USDE", + "GHO", + "CRVUSD", + "PYUSD", + "RLUSD", + "FRAX", + "USD1", + "USDY", + "USDG", + "AUSD", + "USDD", + "USD3", + "REUSD", + "USDX", + "USDF", + "USDAI", + "JUPUSD", + "AVUSD", + "BNB", + "AVAX", + "TRX", + "HYPE", + "LINK", + "XRP", + "POL", + "SKY", + "CRV", + "SUI", + "CVX", + "AERO", + "USYC", + "USTB", + "OUSG", + "USCC", + "TBILL", + "THBILL", + "ONYC", + "STBT", + "DOLA", + "FRXUSD", + "MSUSD", + "FXUSD", + "APXUSD", + "APYUSD", + "STRUSD", + "SYZUSD", + "STCUSD", + "USDU", + "SRUSD", + "BOLD", + "LISUSD", + "YUSD", + "BUCK", + "EURC", + "EURE" +]
- Changed
list_yields1 field changed- changed
Input schema / properties / asset / enumPrevious value: -[ - "BTC", - "ETH", - "SOL", - "USDC", - "USDT", - "DAI", - "USDE", - "GHO", - "CRVUSD", - "PYUSD", - "RLUSD", - "FRAX", - "USD1", - "USDY", - "USDG", - "AUSD", - "USDD", - "USD3", - "REUSD", - "USDX", - "USDF", - "USDAI", - "AVUSD", - "BNB", - "AVAX", - "TRX", - "HYPE", - "LINK", - "XRP", - "POL", - "SKY", - "CRV", - "SUI", - "CVX", - "AERO", - "USYC", - "USTB", - "OUSG", - "USCC", - "TBILL", - "THBILL", - "ONYC", - "STBT", - "DOLA", - "FRXUSD", - "MSUSD", - "FXUSD", - "APXUSD", - "APYUSD", - "STRUSD", - "SYZUSD", - "STCUSD", - "USDU", - "SRUSD", - "BOLD", - "LISUSD", - "YUSD", - "BUCK", - "EURC", - "EURE" -]New value: +[ + "BTC", + "ETH", + "SOL", + "USDC", + "USDT", + "DAI", + "USDE", + "GHO", + "CRVUSD", + "PYUSD", + "RLUSD", + "FRAX", + "USD1", + "USDY", + "USDG", + "AUSD", + "USDD", + "USD3", + "REUSD", + "USDX", + "USDF", + "USDAI", + "JUPUSD", + "AVUSD", + "BNB", + "AVAX", + "TRX", + "HYPE", + "LINK", + "XRP", + "POL", + "SKY", + "CRV", + "SUI", + "CVX", + "AERO", + "USYC", + "USTB", + "OUSG", + "USCC", + "TBILL", + "THBILL", + "ONYC", + "STBT", + "DOLA", + "FRXUSD", + "MSUSD", + "FXUSD", + "APXUSD", + "APYUSD", + "STRUSD", + "SYZUSD", + "STCUSD", + "USDU", + "SRUSD", + "BOLD", + "LISUSD", + "YUSD", + "BUCK", + "EURC", + "EURE" +]
2 tool updates
- Changed
list_offers1 field changed- changed
Input schema / properties / asset / enumPrevious value: -[ - "BTC", - "ETH", - "SOL", - "USDC", - "USDT", - "DAI", - "USDE", - "GHO", - "CRVUSD", - "PYUSD", - "RLUSD", - "FRAX", - "USD1", - "USDY", - "USDG", - "AUSD", - "USDD", - "USD3", - "REUSD", - "USDX", - "USDF", - "USDAI", - "JUPUSD", - "AVUSD", - "BNB", - "AVAX", - "TRX", - "HYPE", - "LINK", - "XRP", - "POL", - "SKY", - "CRV", - "SUI", - "CVX", - "AERO", - "USYC", - "USTB", - "OUSG", - "USCC", - "TBILL", - "THBILL", - "ONYC", - "STBT", - "DOLA", - "FRXUSD", - "MSUSD", - "FXUSD", - "APXUSD", - "APYUSD", - "STRUSD", - "SYZUSD", - "STCUSD", - "USDU", - "SRUSD", - "BOLD", - "LISUSD", - "YUSD", - "BUCK", - "EURC", - "EURE" -]New value: +[ + "BTC", + "ETH", + "SOL", + "USDC", + "USDT", + "DAI", + "USDE", + "GHO", + "CRVUSD", + "PYUSD", + "RLUSD", + "FRAX", + "USD1", + "USDY", + "USDG", + "AUSD", + "USDD", + "USD3", + "REUSD", + "USDX", + "USDF", + "USDAI", + "AVUSD", + "BNB", + "AVAX", + "TRX", + "HYPE", + "LINK", + "XRP", + "POL", + "SKY", + "CRV", + "SUI", + "CVX", + "AERO", + "USYC", + "USTB", + "OUSG", + "USCC", + "TBILL", + "THBILL", + "ONYC", + "STBT", + "DOLA", + "FRXUSD", + "MSUSD", + "FXUSD", + "APXUSD", + "APYUSD", + "STRUSD", + "SYZUSD", + "STCUSD", + "USDU", + "SRUSD", + "BOLD", + "LISUSD", + "YUSD", + "BUCK", + "EURC", + "EURE" +]
- Changed
list_yields1 field changed- changed
Input schema / properties / asset / enumPrevious value: -[ - "BTC", - "ETH", - "SOL", - "USDC", - "USDT", - "DAI", - "USDE", - "GHO", - "CRVUSD", - "PYUSD", - "RLUSD", - "FRAX", - "USD1", - "USDY", - "USDG", - "AUSD", - "USDD", - "USD3", - "REUSD", - "USDX", - "USDF", - "USDAI", - "JUPUSD", - "AVUSD", - "BNB", - "AVAX", - "TRX", - "HYPE", - "LINK", - "XRP", - "POL", - "SKY", - "CRV", - "SUI", - "CVX", - "AERO", - "USYC", - "USTB", - "OUSG", - "USCC", - "TBILL", - "THBILL", - "ONYC", - "STBT", - "DOLA", - "FRXUSD", - "MSUSD", - "FXUSD", - "APXUSD", - "APYUSD", - "STRUSD", - "SYZUSD", - "STCUSD", - "USDU", - "SRUSD", - "BOLD", - "LISUSD", - "YUSD", - "BUCK", - "EURC", - "EURE" -]New value: +[ + "BTC", + "ETH", + "SOL", + "USDC", + "USDT", + "DAI", + "USDE", + "GHO", + "CRVUSD", + "PYUSD", + "RLUSD", + "FRAX", + "USD1", + "USDY", + "USDG", + "AUSD", + "USDD", + "USD3", + "REUSD", + "USDX", + "USDF", + "USDAI", + "AVUSD", + "BNB", + "AVAX", + "TRX", + "HYPE", + "LINK", + "XRP", + "POL", + "SKY", + "CRV", + "SUI", + "CVX", + "AERO", + "USYC", + "USTB", + "OUSG", + "USCC", + "TBILL", + "THBILL", + "ONYC", + "STBT", + "DOLA", + "FRXUSD", + "MSUSD", + "FXUSD", + "APXUSD", + "APYUSD", + "STRUSD", + "SYZUSD", + "STCUSD", + "USDU", + "SRUSD", + "BOLD", + "LISUSD", + "YUSD", + "BUCK", + "EURC", + "EURE" +]
2 tool updates
- Changed
list_offers1 field changed- changed
Input schema / properties / asset / enumPrevious value: -[ - "BTC", - "ETH", - "SOL", - "USDC", - "USDT", - "DAI", - "USDE", - "GHO", - "CRVUSD", - "PYUSD", - "RLUSD", - "FRAX", - "USD1", - "USDY", - "USDG", - "AUSD", - "USDD", - "USD3", - "REUSD", - "USDX", - "USDF", - "USDAI", - "AVUSD", - "BNB", - "AVAX", - "TRX", - "HYPE", - "LINK", - "XRP", - "POL", - "SKY", - "CRV", - "SUI", - "CVX", - "AERO", - "USYC", - "USTB", - "OUSG", - "USCC", - "TBILL", - "THBILL", - "ONYC", - "STBT", - "DOLA", - "FRXUSD", - "MSUSD", - "FXUSD", - "APXUSD", - "APYUSD", - "STRUSD", - "SYZUSD", - "STCUSD", - "USDU", - "SRUSD", - "BOLD", - "LISUSD", - "YUSD", - "BUCK", - "EURC", - "EURE" -]New value: +[ + "BTC", + "ETH", + "SOL", + "USDC", + "USDT", + "DAI", + "USDE", + "GHO", + "CRVUSD", + "PYUSD", + "RLUSD", + "FRAX", + "USD1", + "USDY", + "USDG", + "AUSD", + "USDD", + "USD3", + "REUSD", + "USDX", + "USDF", + "USDAI", + "JUPUSD", + "AVUSD", + "BNB", + "AVAX", + "TRX", + "HYPE", + "LINK", + "XRP", + "POL", + "SKY", + "CRV", + "SUI", + "CVX", + "AERO", + "USYC", + "USTB", + "OUSG", + "USCC", + "TBILL", + "THBILL", + "ONYC", + "STBT", + "DOLA", + "FRXUSD", + "MSUSD", + "FXUSD", + "APXUSD", + "APYUSD", + "STRUSD", + "SYZUSD", + "STCUSD", + "USDU", + "SRUSD", + "BOLD", + "LISUSD", + "YUSD", + "BUCK", + "EURC", + "EURE" +]
- Changed
list_yields1 field changed- changed
Input schema / properties / asset / enumPrevious value: -[ - "BTC", - "ETH", - "SOL", - "USDC", - "USDT", - "DAI", - "USDE", - "GHO", - "CRVUSD", - "PYUSD", - "RLUSD", - "FRAX", - "USD1", - "USDY", - "USDG", - "AUSD", - "USDD", - "USD3", - "REUSD", - "USDX", - "USDF", - "USDAI", - "AVUSD", - "BNB", - "AVAX", - "TRX", - "HYPE", - "LINK", - "XRP", - "POL", - "SKY", - "CRV", - "SUI", - "CVX", - "AERO", - "USYC", - "USTB", - "OUSG", - "USCC", - "TBILL", - "THBILL", - "ONYC", - "STBT", - "DOLA", - "FRXUSD", - "MSUSD", - "FXUSD", - "APXUSD", - "APYUSD", - "STRUSD", - "SYZUSD", - "STCUSD", - "USDU", - "SRUSD", - "BOLD", - "LISUSD", - "YUSD", - "BUCK", - "EURC", - "EURE" -]New value: +[ + "BTC", + "ETH", + "SOL", + "USDC", + "USDT", + "DAI", + "USDE", + "GHO", + "CRVUSD", + "PYUSD", + "RLUSD", + "FRAX", + "USD1", + "USDY", + "USDG", + "AUSD", + "USDD", + "USD3", + "REUSD", + "USDX", + "USDF", + "USDAI", + "JUPUSD", + "AVUSD", + "BNB", + "AVAX", + "TRX", + "HYPE", + "LINK", + "XRP", + "POL", + "SKY", + "CRV", + "SUI", + "CVX", + "AERO", + "USYC", + "USTB", + "OUSG", + "USCC", + "TBILL", + "THBILL", + "ONYC", + "STBT", + "DOLA", + "FRXUSD", + "MSUSD", + "FXUSD", + "APXUSD", + "APYUSD", + "STRUSD", + "SYZUSD", + "STCUSD", + "USDU", + "SRUSD", + "BOLD", + "LISUSD", + "YUSD", + "BUCK", + "EURC", + "EURE" +]
2 tool updates
- Changed
list_offers1 field changed- changed
Input schema / properties / asset / enumPrevious value: -[ - "BTC", - "ETH", - "SOL", - "USDC", - "USDT", - "DAI", - "USDE", - "GHO", - "CRVUSD", - "PYUSD", - "RLUSD", - "FRAX", - "USD1", - "USDY", - "USDG", - "AUSD", - "USDD", - "USD3", - "REUSD", - "USDX", - "USDF", - "USDAI", - "JUPUSD", - "AVUSD", - "BNB", - "AVAX", - "TRX", - "HYPE", - "LINK", - "XRP", - "POL", - "SKY", - "CRV", - "SUI", - "CVX", - "AERO", - "USYC", - "USTB", - "OUSG", - "USCC", - "TBILL", - "THBILL", - "ONYC", - "STBT", - "DOLA", - "FRXUSD", - "MSUSD", - "FXUSD", - "APXUSD", - "APYUSD", - "STRUSD", - "SYZUSD", - "STCUSD", - "USDU", - "SRUSD", - "BOLD", - "LISUSD", - "YUSD", - "BUCK", - "EURC", - "EURE" -]New value: +[ + "BTC", + "ETH", + "SOL", + "USDC", + "USDT", + "DAI", + "USDE", + "GHO", + "CRVUSD", + "PYUSD", + "RLUSD", + "FRAX", + "USD1", + "USDY", + "USDG", + "AUSD", + "USDD", + "USD3", + "REUSD", + "USDX", + "USDF", + "USDAI", + "AVUSD", + "BNB", + "AVAX", + "TRX", + "HYPE", + "LINK", + "XRP", + "POL", + "SKY", + "CRV", + "SUI", + "CVX", + "AERO", + "USYC", + "USTB", + "OUSG", + "USCC", + "TBILL", + "THBILL", + "ONYC", + "STBT", + "DOLA", + "FRXUSD", + "MSUSD", + "FXUSD", + "APXUSD", + "APYUSD", + "STRUSD", + "SYZUSD", + "STCUSD", + "USDU", + "SRUSD", + "BOLD", + "LISUSD", + "YUSD", + "BUCK", + "EURC", + "EURE" +]
- Changed
list_yields1 field changed- changed
Input schema / properties / asset / enumPrevious value: -[ - "BTC", - "ETH", - "SOL", - "USDC", - "USDT", - "DAI", - "USDE", - "GHO", - "CRVUSD", - "PYUSD", - "RLUSD", - "FRAX", - "USD1", - "USDY", - "USDG", - "AUSD", - "USDD", - "USD3", - "REUSD", - "USDX", - "USDF", - "USDAI", - "JUPUSD", - "AVUSD", - "BNB", - "AVAX", - "TRX", - "HYPE", - "LINK", - "XRP", - "POL", - "SKY", - "CRV", - "SUI", - "CVX", - "AERO", - "USYC", - "USTB", - "OUSG", - "USCC", - "TBILL", - "THBILL", - "ONYC", - "STBT", - "DOLA", - "FRXUSD", - "MSUSD", - "FXUSD", - "APXUSD", - "APYUSD", - "STRUSD", - "SYZUSD", - "STCUSD", - "USDU", - "SRUSD", - "BOLD", - "LISUSD", - "YUSD", - "BUCK", - "EURC", - "EURE" -]New value: +[ + "BTC", + "ETH", + "SOL", + "USDC", + "USDT", + "DAI", + "USDE", + "GHO", + "CRVUSD", + "PYUSD", + "RLUSD", + "FRAX", + "USD1", + "USDY", + "USDG", + "AUSD", + "USDD", + "USD3", + "REUSD", + "USDX", + "USDF", + "USDAI", + "AVUSD", + "BNB", + "AVAX", + "TRX", + "HYPE", + "LINK", + "XRP", + "POL", + "SKY", + "CRV", + "SUI", + "CVX", + "AERO", + "USYC", + "USTB", + "OUSG", + "USCC", + "TBILL", + "THBILL", + "ONYC", + "STBT", + "DOLA", + "FRXUSD", + "MSUSD", + "FXUSD", + "APXUSD", + "APYUSD", + "STRUSD", + "SYZUSD", + "STCUSD", + "USDU", + "SRUSD", + "BOLD", + "LISUSD", + "YUSD", + "BUCK", + "EURC", + "EURE" +]
2 tool updates
- Changed
list_offers2 fields changed- changed
Input schema / properties / asset / enumPrevious value: -[ - "BTC", - "ETH", - "SOL", - "USDC", - "USDT", - "DAI", - "USDE", - "GHO", - "CRVUSD", - "PYUSD", - "RLUSD", - "FRAX", - "USD1", - "USDY", - "USD0", - "USDG", - "AUSD", - "USDD", - "USD3", - "REUSD", - "USDX", - "DEUSD", - "USDF", - "USR", - "USDAI", - "JUPUSD", - "AVUSD", - "BNB", - "AVAX", - "TRX", - "HYPE", - "LINK", - "XRP", - "POL", - "SKY", - "CRV", - "SUI", - "CVX", - "AERO", - "BUIDL", - "USYC", - "USTB", - "OUSG", - "USCC", - "TBILL", - "VBILL", - "THBILL", - "ACRED", - "STAC", - "ONYC", - "STBT", - "DOLA", - "FRXUSD", - "MSUSD", - "FXUSD", - "APXUSD", - "APYUSD", - "STRUSD", - "SYZUSD", - "VUSD", - "STCUSD", - "USDU", - "SRUSD", - "BOLD", - "LISUSD", - "YUSD", - "BUCK", - "EURC", - "EURE" -]New value: +[ + "BTC", + "ETH", + "SOL", + "USDC", + "USDT", + "DAI", + "USDE", + "GHO", + "CRVUSD", + "PYUSD", + "RLUSD", + "FRAX", + "USD1", + "USDY", + "USDG", + "AUSD", + "USDD", + "USD3", + "REUSD", + "USDX", + "USDF", + "USDAI", + "JUPUSD", + "AVUSD", + "BNB", + "AVAX", + "TRX", + "HYPE", + "LINK", + "XRP", + "POL", + "SKY", + "CRV", + "SUI", + "CVX", + "AERO", + "USYC", + "USTB", + "OUSG", + "USCC", + "TBILL", + "THBILL", + "ONYC", + "STBT", + "DOLA", + "FRXUSD", + "MSUSD", + "FXUSD", + "APXUSD", + "APYUSD", + "STRUSD", + "SYZUSD", + "STCUSD", + "USDU", + "SRUSD", + "BOLD", + "LISUSD", + "YUSD", + "BUCK", + "EURC", + "EURE" +] - changed
Output schema / properties / offers / items / properties / durability / descriptionPrevious value: -"The rate (as shown and ordered) against its 30-day average: durable, moderate, volatile or spiking; posted when it has not moved in 30 days (a rate the platform sets); lumpy when a realized rate's 1-day, 7-day and 30-day readings disagree (income booked in lumps); insufficient under a month of history."New value: +"The rate (as shown and ordered) against its 30-day average: durable, moderate, volatile or spiking; posted when it has not moved in 30 days (a rate the platform sets); lumpy when the larger of a realized rate's 7-day and 30-day returns is more than 1.6 times the smaller (income booked in lumps); insufficient under a month of history."
- Changed
list_yields5 fields changed- added
Input schema / properties / allAdded value: +{ + "description": "Set to true for every asset with a live yield (about 60 entries, a large answer) instead of the headline assets. Ignored when asset or stablecoin is set.", + "type": "boolean" +} - changed
Input schema / properties / asset / enumPrevious value: -[ - "BTC", - "ETH", - "SOL", - "USDC", - "USDT", - "DAI", - "USDE", - "GHO", - "CRVUSD", - "PYUSD", - "RLUSD", - "FRAX", - "USD1", - "USDY", - "USD0", - "USDG", - "AUSD", - "USDD", - "USD3", - "REUSD", - "USDX", - "DEUSD", - "USDF", - "USR", - "USDAI", - "JUPUSD", - "AVUSD", - "BNB", - "AVAX", - "TRX", - "HYPE", - "LINK", - "XRP", - "POL", - "SKY", - "CRV", - "SUI", - "CVX", - "AERO", - "BUIDL", - "USYC", - "USTB", - "OUSG", - "USCC", - "TBILL", - "VBILL", - "THBILL", - "ACRED", - "STAC", - "ONYC", - "STBT", - "DOLA", - "FRXUSD", - "MSUSD", - "FXUSD", - "APXUSD", - "APYUSD", - "STRUSD", - "SYZUSD", - "VUSD", - "STCUSD", - "USDU", - "SRUSD", - "BOLD", - "LISUSD", - "YUSD", - "BUCK", - "EURC", - "EURE" -]New value: +[ + "BTC", + "ETH", + "SOL", + "USDC", + "USDT", + "DAI", + "USDE", + "GHO", + "CRVUSD", + "PYUSD", + "RLUSD", + "FRAX", + "USD1", + "USDY", + "USDG", + "AUSD", + "USDD", + "USD3", + "REUSD", + "USDX", + "USDF", + "USDAI", + "JUPUSD", + "AVUSD", + "BNB", + "AVAX", + "TRX", + "HYPE", + "LINK", + "XRP", + "POL", + "SKY", + "CRV", + "SUI", + "CVX", + "AERO", + "USYC", + "USTB", + "OUSG", + "USCC", + "TBILL", + "THBILL", + "ONYC", + "STBT", + "DOLA", + "FRXUSD", + "MSUSD", + "FXUSD", + "APXUSD", + "APYUSD", + "STRUSD", + "SYZUSD", + "STCUSD", + "USDU", + "SRUSD", + "BOLD", + "LISUSD", + "YUSD", + "BUCK", + "EURC", + "EURE" +] - changed
Input schema / properties / stablecoin / descriptionPrevious value: -"Set to \"true\" to return only stablecoin assets."New value: +"Set to true to return only stablecoin assets." - removed
Input schema / properties / stablecoin / enumRemoved value: -[ - "true", - "false" -] - changed
Input schema / properties / stablecoin / typePrevious value: -"string"New value: +"boolean"
1 tool update
- Changed
list_offers1 field changed- added
Output schema / properties / offers / items / properties / maturityAdded value: +{ + "description": "For a fixed rate, the date it ends (YYYY-MM-DD): a Pendle principal token's maturity, when the locked rate stops and the token redeems for its underlying. Null for every other product.", + "type": [ + "string", + "null" + ] +}
1 tool update
- Changed
list_offers6 fields changed- changed
Output schema / properties / offers / items / properties / rate / descriptionPrevious value: -"The annual rate in percent (5.2 means 5.2%) as BitcoinYield shows it and orders on it: today's reported rate, or its 7-day average when that is lower, so a one-day spike never leads."New value: +"The annual rate in percent (5.2 means 5.2%) as BitcoinYield shows it and orders on it: the latest reading (rate_today), or its 7-day average when that is lower, so a one-day spike never leads. A DeFi rate is measured from the protocol's own contracts (what the deposit token actually earned) or read from the protocol's own API; an exchange's from its own API. Never a forecast." - changed
Output schema / properties / offers / items / properties / rate_basis / descriptionPrevious value: -"Whether the source reports the rate as APY (compounded) or APR; unknown when it does not say."New value: +"Whether the rate is an APY (compounded) or an APR. A rate measured from a protocol's contracts is an APY; a published rate keeps its source's convention; unknown when the source does not say." - changed
Output schema / properties / offers / items / properties / rate_rewards / descriptionPrevious value: -"The part of rate paid as incentive rewards, which last only as long as someone funds them (beside a rate held at its 7-day average, scaled to that rate)."New value: +"The part of rate paid as incentive rewards, which last only as long as someone funds them (beside a rate held at its 7-day average, scaled to that rate). Null when the source states no reward part: a rate measured from a protocol's contracts counts only what the deposit token itself earns, not incentives paid separately." - changed
Output schema / properties / offers / items / properties / rate_source_url / descriptionPrevious value: -"Where the rate was read."New value: +"Where anyone can check the rate: the contract it is read from, on a block explorer, or the exchange's or protocol's own page." - changed
Output schema / properties / offers / items / properties / rate_today / descriptionPrevious value: -"The latest reading: today's rate, or for a vault, pool or staking token the middle of its 1-day, 7-day and 30-day realized returns. Above rate when that reading is higher than the 7-day average."New value: +"The latest reading: for a lending market its latest day's rate, for a vault, pool or staking token the middle of its 1-day, 7-day and 30-day realized returns. Above rate when that reading is higher than the 7-day average." - changed
Output schema / properties / offers / items / properties / rewards_program / descriptionPrevious value: -"Who pays rate_rewards and how far ahead it is funded, when the incentive program is known (Merkl campaigns on Morpho, Euler, Aave and Fluid); null otherwise."New value: +"Who pays rate_rewards and how far ahead it is funded, when the incentive program is known (Merkl campaigns); null otherwise."
2 tool updates
- Changed
list_offers4 fields changed- changed
Output schema / properties / offers / items / properties / durability / descriptionPrevious value: -"Today's rate against its 30-day average: durable, moderate, volatile or spiking; posted when it has not moved in 30 days (a rate the platform sets); lumpy when a realized rate's 1-day, 7-day and 30-day readings disagree (income booked in lumps); insufficient under a month of history."New value: +"The rate (as shown and ordered) against its 30-day average: durable, moderate, volatile or spiking; posted when it has not moved in 30 days (a rate the platform sets); lumpy when a realized rate's 1-day, 7-day and 30-day readings disagree (income booked in lumps); insufficient under a month of history." - changed
Output schema / properties / offers / items / properties / rate_base / descriptionPrevious value: -"The organic part of the rate (interest, fees, staking), before incentive rewards."New value: +"The organic part of rate (interest, fees, staking); rate_base + rate_rewards = rate." - changed
Output schema / properties / offers / items / properties / rate_rewards / descriptionPrevious value: -"The part paid as incentive rewards, which last only as long as someone funds them."New value: +"The part of rate paid as incentive rewards, which last only as long as someone funds them (beside a rate held at its 7-day average, scaled to that rate)." - changed
Output schema / properties / offers / items / properties / rate_today / descriptionPrevious value: -"Today's reported rate; above rate when today's reading is higher than the 7-day average."New value: +"The latest reading: today's rate, or for a vault, pool or staking token the middle of its 1-day, 7-day and 30-day realized returns. Above rate when that reading is higher than the 7-day average."
- Changed
list_yields6 fields changed- added
Output schema / properties / yields / items / properties / by_grade / properties / A / properties / rate_rewardsAdded value: +{ + "description": "The part of rate paid as temporary incentive rewards, which last only while someone funds them; null when under a tenth of rate. Say it when you quote rate.", + "type": [ + "number", + "null" + ] +} - changed
Output schema / properties / yields / items / properties / by_grade / properties / A / properties / rate_today / descriptionPrevious value: -"Today's reported rate; above rate when today's reading is higher than the 7-day average."New value: +"The latest reading: today's rate, or for a vault, pool or staking token the middle of its 1-day, 7-day and 30-day realized returns. Above rate when that reading is higher than the 7-day average." - added
Output schema / properties / yields / items / properties / by_grade / properties / B / properties / rate_rewardsAdded value: +{ + "description": "The part of rate paid as temporary incentive rewards, which last only while someone funds them; null when under a tenth of rate. Say it when you quote rate.", + "type": [ + "number", + "null" + ] +} - changed
Output schema / properties / yields / items / properties / by_grade / properties / B / properties / rate_today / descriptionPrevious value: -"Today's reported rate; above rate when today's reading is higher than the 7-day average."New value: +"The latest reading: today's rate, or for a vault, pool or staking token the middle of its 1-day, 7-day and 30-day realized returns. Above rate when that reading is higher than the 7-day average." - added
Output schema / properties / yields / items / properties / by_grade / properties / C / properties / rate_rewardsAdded value: +{ + "description": "The part of rate paid as temporary incentive rewards, which last only while someone funds them; null when under a tenth of rate. Say it when you quote rate.", + "type": [ + "number", + "null" + ] +} - changed
Output schema / properties / yields / items / properties / by_grade / properties / C / properties / rate_today / descriptionPrevious value: -"Today's reported rate; above rate when today's reading is higher than the 7-day average."New value: +"The latest reading: today's rate, or for a vault, pool or staking token the middle of its 1-day, 7-day and 30-day realized returns. Above rate when that reading is higher than the 7-day average."
1 tool update
- Changed
list_offers2 fields changed- changed
Output schema / properties / offers / items / properties / liquidity_usd / descriptionPrevious value: -"The liquidity a depositor can exit into, in US dollars: a lending pool's withdrawable amount, a credit pool's cash, or for a staking token what sells at once within 1% of its market price (the rest of its stake leaves through its issuer's queue, see exit). Null when the source reports none (custodial desks)."New value: +"The liquidity a depositor can exit into, in US dollars: a lending pool's withdrawable amount, a credit pool's cash, or for a staking token what sells at once within 1% of its market price (the rest of its stake leaves through its issuer's queue, see exit), or for a fund its issuer redeems what its redemption vault pays at once. Null when the source reports none (custodial desks)." - changed
Output schema / properties / offers / items / properties / us_available / descriptionPrevious value: -"Whether a US retail user can open it."New value: +"Whether a US retail user can open it: no when the platform or issuer excludes US persons, or admits only accredited investors or invited addresses (see access)."
2 tool updates
- Changed
list_offers5 fields changed- changed
Output schema / properties / offers / items / properties / avg_7d / descriptionPrevious value: -"The rate's 7-day average. The order reads the lower of rate and avg_7d, so a one-day spike never leads."New value: +"The rate's 7-day average (rate is the lower of it and rate_today)." - changed
Output schema / properties / offers / items / properties / liquidity_usd / descriptionPrevious value: -"The liquidity a depositor can exit into, in US dollars; null when the source reports none (custodial desks)."New value: +"The liquidity a depositor can exit into, in US dollars: a lending pool's withdrawable amount, a credit pool's cash, or for a staking token what sells at once within 1% of its market price (the rest of its stake leaves through its issuer's queue, see exit). Null when the source reports none (custodial desks)." - changed
Output schema / properties / offers / items / properties / rate / descriptionPrevious value: -"The reported annual rate in percent (5.2 means 5.2%)."New value: +"The annual rate in percent (5.2 means 5.2%) as BitcoinYield shows it and orders on it: today's reported rate, or its 7-day average when that is lower, so a one-day spike never leads." - added
Output schema / properties / offers / items / properties / rate_todayAdded value: +{ + "description": "Today's reported rate; above rate when today's reading is higher than the 7-day average.", + "type": "number" +} - changed
Output schema / properties / offers / items / requiredPrevious value: -[ - "rank", - "platform", - "product_type", - "rate", - "rate_basis", - "us_available", - "partner" -]New value: +[ + "rank", + "platform", + "product_type", + "rate", + "rate_today", + "rate_basis", + "us_available", + "partner" +]
- Changed
list_yields7 fields changed- changed
Output schema / properties / yields / items / properties / best_apy / descriptionPrevious value: -"The pick's rate in percent (5.2 means 5.2%) as its page quotes it: today's rate, or its 7-day average when today's is a spike above it. An APR when rate_basis says so; the name is kept for compatibility."New value: +"The top-ranked offer's rate in percent (5.2 means 5.2%) as its page shows it: today's rate, or its 7-day average when that is lower. An APR when rate_basis says so; the name is kept for compatibility. The top of the risk-weighted ranking, which can be a higher-risk offer than by_grade's grade-A step." - changed
Output schema / properties / yields / items / properties / by_grade / properties / A / properties / rate / descriptionPrevious value: -"The step's annual rate in percent as its page quotes it: today's rate, or its 7-day average when today's is a spike above it."New value: +"The step's annual rate in percent as its page shows it: today's rate, or its 7-day average when that is lower." - changed
Output schema / properties / yields / items / properties / by_grade / properties / A / properties / rate_today / descriptionPrevious value: -"Today's reported rate; differs from rate only on a spike."New value: +"Today's reported rate; above rate when today's reading is higher than the 7-day average." - changed
Output schema / properties / yields / items / properties / by_grade / properties / B / properties / rate / descriptionPrevious value: -"The step's annual rate in percent as its page quotes it: today's rate, or its 7-day average when today's is a spike above it."New value: +"The step's annual rate in percent as its page shows it: today's rate, or its 7-day average when that is lower." - changed
Output schema / properties / yields / items / properties / by_grade / properties / B / properties / rate_today / descriptionPrevious value: -"Today's reported rate; differs from rate only on a spike."New value: +"Today's reported rate; above rate when today's reading is higher than the 7-day average." - changed
Output schema / properties / yields / items / properties / by_grade / properties / C / properties / rate / descriptionPrevious value: -"The step's annual rate in percent as its page quotes it: today's rate, or its 7-day average when today's is a spike above it."New value: +"The step's annual rate in percent as its page shows it: today's rate, or its 7-day average when that is lower." - changed
Output schema / properties / yields / items / properties / by_grade / properties / C / properties / rate_today / descriptionPrevious value: -"Today's reported rate; differs from rate only on a spike."New value: +"Today's reported rate; above rate when today's reading is higher than the 7-day average."
2 tool updates
- Changed
list_offers2 fields changed- added
Output schema / properties / offers / items / properties / avg_7dAdded value: +{ + "description": "The rate's 7-day average. The order reads the lower of rate and avg_7d, so a one-day spike never leads.", + "type": [ + "number", + "null" + ] +} - changed
Output schema / properties / offers / items / properties / durability / descriptionPrevious value: -"Today's rate against its 30-day average: durable, moderate, volatile or spiking; posted when it has not moved in 30 days (a rate the platform sets); insufficient under a month of history."New value: +"Today's rate against its 30-day average: durable, moderate, volatile or spiking; posted when it has not moved in 30 days (a rate the platform sets); lumpy when a realized rate's 1-day, 7-day and 30-day readings disagree (income booked in lumps); insufficient under a month of history."
- Changed
list_yields11 fields changed- changed
Output schema / properties / yields / items / properties / best_apy / descriptionPrevious value: -"The best current rate in percent (5.2 means 5.2%). An APR when rate_basis says so; the name is kept for compatibility."New value: +"The pick's rate in percent (5.2 means 5.2%) as its page quotes it: today's rate, or its 7-day average when today's is a spike above it. An APR when rate_basis says so; the name is kept for compatibility." - changed
Output schema / properties / yields / items / properties / by_grade / descriptionPrevious value: -"The best proven rate at each risk grade (a month of steady history and $10M or more to exit into). A grade is null when no proven offer of it pays more than a safer grade."New value: +"The best proven rate at each risk grade (a month of steady history and $10M or more to exit into). A grade is null when no proven offer of it pays materially more (at least 0.05 points and 5%) than a safer grade." - changed
Output schema / properties / yields / items / properties / by_grade / properties / A / properties / rate / descriptionPrevious value: -"The reported annual rate in percent."New value: +"The step's annual rate in percent as its page quotes it: today's rate, or its 7-day average when today's is a spike above it." - added
Output schema / properties / yields / items / properties / by_grade / properties / A / properties / rate_todayAdded value: +{ + "description": "Today's reported rate; differs from rate only on a spike.", + "type": "number" +} - changed
Output schema / properties / yields / items / properties / by_grade / properties / A / requiredPrevious value: -[ - "rate", - "rate_basis", - "platform", - "market", - "us_available", - "url" -]New value: +[ + "rate", + "rate_today", + "rate_basis", + "platform", + "market", + "us_available", + "url" +] - changed
Output schema / properties / yields / items / properties / by_grade / properties / B / properties / rate / descriptionPrevious value: -"The reported annual rate in percent."New value: +"The step's annual rate in percent as its page quotes it: today's rate, or its 7-day average when today's is a spike above it." - added
Output schema / properties / yields / items / properties / by_grade / properties / B / properties / rate_todayAdded value: +{ + "description": "Today's reported rate; differs from rate only on a spike.", + "type": "number" +} - changed
Output schema / properties / yields / items / properties / by_grade / properties / B / requiredPrevious value: -[ - "rate", - "rate_basis", - "platform", - "market", - "us_available", - "url" -]New value: +[ + "rate", + "rate_today", + "rate_basis", + "platform", + "market", + "us_available", + "url" +] - changed
Output schema / properties / yields / items / properties / by_grade / properties / C / properties / rate / descriptionPrevious value: -"The reported annual rate in percent."New value: +"The step's annual rate in percent as its page quotes it: today's rate, or its 7-day average when today's is a spike above it." - added
Output schema / properties / yields / items / properties / by_grade / properties / C / properties / rate_todayAdded value: +{ + "description": "Today's reported rate; differs from rate only on a spike.", + "type": "number" +} - changed
Output schema / properties / yields / items / properties / by_grade / properties / C / requiredPrevious value: -[ - "rate", - "rate_basis", - "platform", - "market", - "us_available", - "url" -]New value: +[ + "rate", + "rate_today", + "rate_basis", + "platform", + "market", + "us_available", + "url" +]
1 tool update
- Changed
list_yields2 fields changed- added
Output schema / properties / yields / items / properties / by_gradeAdded value: +{ + "description": "The best proven rate at each risk grade (a month of steady history and $10M or more to exit into). A grade is null when no proven offer of it pays more than a safer grade.", + "properties": { + "A": { + "properties": { + "chain": { + "type": [ + "string", + "null" + ] + }, + "market": { + "description": "The vault, market or token the rate is paid in.", + "type": "string" + }, + "platform": { + "type": "string" + }, + "rate": { + "description": "The reported annual rate in percent.", + "type": "number" + }, + "rate_basis": { + "enum": [ + "apy", + "apr", + "unknown" + ], + "type": "string" + }, + "url": { + "description": "This grade's offers on the asset's page.", + "type": "string" + }, + "us_available": { + "description": "Whether a US retail user can open it.", + "enum": [ + "yes", + "no", + "unknown" + ], + "type": "string" + } + }, + "required": [ + "rate", + "rate_basis", + "platform", + "market", + "us_available", + "url" + ], + "type": [ + "object", + "null" + ] + }, + "B": { + "properties": { + "chain": { + "type": [ + "string", + "null" + ] + }, + "market": { + "description": "The vault, market or token the rate is paid in.", + "type": "string" + }, + "platform": { + "type": "string" + }, + "rate": { + "description": "The reported annual rate in percent.", + "type": "number" + }, + "rate_basis": { + "enum": [ + "apy", + "apr", + "unknown" + ], + "type": "string" + }, + "url": { + "description": "This grade's offers on the asset's page.", + "type": "string" + }, + "us_available": { + "description": "Whether a US retail user can open it.", + "enum": [ + "yes", + "no", + "unknown" + ], + "type": "string" + } + }, + "required": [ + "rate", + "rate_basis", + "platform", + "market", + "us_available", + "url" + ], + "type": [ + "object", + "null" + ] + }, + "C": { + "properties": { + "chain": { + "type": [ + "string", + "null" + ] + }, + "market": { + "description": "The vault, market or token the rate is paid in.", + "type": "string" + }, + "platform": { + "type": "string" + }, + "rate": { + "description": "The reported annual rate in percent.", + "type": "number" + }, + "rate_basis": { + "enum": [ + "apy", + "apr", + "unknown" + ], + "type": "string" + }, + "url": { + "description": "This grade's offers on the asset's page.", + "type": "string" + }, + "us_available": { + "description": "Whether a US retail user can open it.", + "enum": [ + "yes", + "no", + "unknown" + ], + "type": "string" + } + }, + "required": [ + "rate", + "rate_basis", + "platform", + "market", + "us_available", + "url" + ], + "type": [ + "object", + "null" + ] + } + }, + "required": [ + "A", + "B", + "C" + ], + "type": "object" +} - changed
Output schema / properties / yields / items / requiredPrevious value: -[ - "asset", - "best_apy", - "rate_basis", - "best_platform", - "url" -]New value: +[ + "asset", + "best_apy", + "rate_basis", + "best_platform", + "url", + "by_grade" +]
1 tool update
- Changed
list_offers1 field changed- added
Output schema / properties / offers / items / properties / exitAdded value: +{ + "description": "How a holder gets the underlying back at full value, as its issuer states it: a withdrawal queue, a cooldown or a redemption wait, and whether the token can also be sold on a market at the market price. Null when none is on record; a lending market's exit is its liquidity_usd.", + "type": [ + "string", + "null" + ] +}
2 tool updates
- Changed
list_offers10 fields changed- changed
Output schema / properties / offers / items / properties / chain / descriptionPrevious value: -"Null for a centralized (CeFi) offer."New value: +"The chain the offer is on; null for a centralized (CeFi) offer." - changed
Output schema / properties / offers / items / properties / durability / descriptionPrevious value: -"How today's rate compares with its 30-day average: durable, moderate, volatile, spiking, posted, or insufficient history."New value: +"Today's rate against its 30-day average: durable, moderate, volatile or spiking; posted when it has not moved in 30 days (a rate the platform sets); insufficient under a month of history." - added
Output schema / properties / offers / items / properties / liquidity_usd / descriptionAdded value: +"The liquidity a depositor can exit into, in US dollars; null when the source reports none (custodial desks)." - added
Output schema / properties / offers / items / properties / platform / descriptionAdded value: +"The platform's name, e.g. Aave V3." - added
Output schema / properties / offers / items / properties / product_type / descriptionAdded value: +"How the yield is produced, e.g. DeFi lending, Savings rate or Liquid staking." - added
Output schema / properties / offers / items / properties / rank / descriptionAdded value: +"The offer's place in BitcoinYield's order (rate and risk together), 1 first." - added
Output schema / properties / offers / items / properties / rate / descriptionAdded value: +"The reported annual rate in percent (5.2 means 5.2%)." - added
Output schema / properties / offers / items / properties / risk_tier / descriptionAdded value: +"BitcoinYield's A-D risk grade: A lower risk, D higher." - added
Output schema / properties / stale / descriptionAdded value: +"True when part of this snapshot is over 6 hours old (a scheduled refresh was missed)." - added
Output schema / properties / updated_at / descriptionAdded value: +"When the feed was last refreshed (ISO 8601). It refreshes every 3 hours."
- Changed
list_yields5 fields changed- added
Output schema / properties / stale / descriptionAdded value: +"True when part of this snapshot is over 6 hours old (a scheduled refresh was missed)." - added
Output schema / properties / updated_at / descriptionAdded value: +"When the feed was last refreshed (ISO 8601). It refreshes every 3 hours." - added
Output schema / properties / yields / items / properties / best_apy / descriptionAdded value: +"The best current rate in percent (5.2 means 5.2%). An APR when rate_basis says so; the name is kept for compatibility." - added
Output schema / properties / yields / items / properties / rate_basisAdded value: +{ + "description": "Whether the source reports best_apy as an APY (compounded) or an APR; unknown when it does not say.", + "enum": [ + "apy", + "apr", + "unknown" + ], + "type": "string" +} - changed
Output schema / properties / yields / items / requiredPrevious value: -[ - "asset", - "best_apy", - "best_platform", - "url" -]New value: +[ + "asset", + "best_apy", + "rate_basis", + "best_platform", + "url" +]
1 tool update
- Changed
list_offers3 fields changed- changed
Output schema / properties / offers / items / properties / rate_base / descriptionPrevious value: -"The organic part of the rate, before incentive-token rewards."New value: +"The organic part of the rate (interest, fees, staking), before incentive rewards." - changed
Output schema / properties / offers / items / properties / rate_rewards / descriptionPrevious value: -"The part paid in incentive tokens, which can end at any time."New value: +"The part paid as incentive rewards, which last only as long as someone funds them." - added
Output schema / properties / offers / items / properties / rewards_programAdded value: +{ + "description": "Who pays rate_rewards and how far ahead it is funded, when the incentive program is known (Merkl campaigns on Morpho, Euler, Aave and Fluid); null otherwise.", + "properties": { + "funded_through": { + "description": "Last day (UTC, YYYY-MM-DD) the live round is funded through.", + "type": "string" + }, + "paid_in": { + "description": "Reward token symbols.", + "items": { + "type": "string" + }, + "type": "array" + }, + "rounds": { + "description": "Rounds in that run, the live one included (1 = never renewed yet).", + "type": "integer" + }, + "since": { + "description": "First day (UTC) of the unbroken run of rounds the live one belongs to.", + "type": "string" + }, + "source": { + "enum": [ + "merkl" + ], + "type": "string" + } + }, + "required": [ + "paid_in", + "funded_through", + "since", + "rounds", + "source" + ], + "type": [ + "object", + "null" + ] +}
2 tool updates
- Added
list_offers - Changed
list_yields2 fields changed- added
Output schema / properties / degraded_sourcesAdded value: +{ + "description": "The sources missing from this snapshot, if any.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / partialAdded value: +{ + "description": "True when a data source was missing from this snapshot.", + "type": "boolean" +}
1 tool update
- First observed
list_yields
Related MCP Connectors
Risk-adjusted stablecoin yield ranks for other agents. Research only. Never holds keys or executes.
Crypto yield data for AI agents: lending, savings, staking, borrowing & stablecoin rates. 18 tools.
Passive income opportunity scanner. Yield analysis and portfolio optimization for AI agents.
Stablecoin Yield Index (SYX) and live USDC vault APYs across Ethereum, Base, Arbitrum.
Related MCP Servers
- FlicenseAqualityDmaintenanceComplete DeFi intelligence — Yield, Staking, Restaking, RWA, Perps, Gas Optimization & Contract Security. One answer, not raw data.17-
- FlicenseNot gradedqualityCmaintenanceDeFi Yield Intelligence MCP Server — 8 tools for risk-adjusted APY, stablecoin & RWA yield tracking across 19K+ pools. Part of ToolOracle (tooloracle.io).-
- AlicenseNot gradedqualityDmaintenanceFinds the best DeFi yields for a token across 100+ protocols and chains, with pay-per-call micropayments via x402.MIT
- AlicenseAqualityCmaintenanceReal-time stablecoin yield index across DeFi protocols and CEX earn programs, with an AI yield advisor, risk signals and non-custodial deposit/redeem quotes for AI agents. Ships agent skills and a self-host stdio wrapper alongside the hosted remote MCP with x402 pay-per-call.425 npm3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.