Research

Corrections

What was wrong here, and what now stands.

A corrected statement is not overwritten, it gets an entry. Every entry names the place, the old wording, the new one and the basis for the correction.

This register has been kept since Sep 21, 2026. Changes made before that are not in it: they could only be reconstructed from the version history, and a list assembled after the fact would be a claim about the past that nobody has checked.

  1. Statement went too farCOR-2026-0023

    Methodology page, validation status: “Backtest” step

    Before
    “The input figures could be reconstructed for some pools from the history endpoint already in use.”
    Now
    “Of the time-dependent inputs, only TVL could be reconstructed from the history endpoint already in use; this site knows the others only as they stand today.” (all five languages)
    Basis
    Methodology audit of 26 September 2026, criterion B3: the history endpoint returns only APY and TVL per day.
    In the repository
    • types/api.ts
    • tests/unit/audit/text-corrections.test.ts
  2. Statement went too farCOR-2026-0024

    Explorer, detail view of a lending market: header figure and “Liquidity & utilization” card

    Before
    “Available liquidity” as the label of the TVL reported by DeFiLlama; below it “Available liquidity as reported by DeFiLlama”.
    Now
    “TVL” and “TVL (as reported by DeFiLlama)”, with the sentence that, depending on the protocol, it is either the total supply or the supply minus borrows and not the withdrawable liquidity (all five languages). The withdrawable liquidity is shown beside it, unchanged.
    Basis
    Methodology audit of 26 September 2026, criterion D5, and the comparison of /pools against /lendBorrow on 27 September 2026: for Morpho Blue and Fluid the reported TVL is the total supply, so the label overstated what can be withdrawn.
    In the repository
    • components/defi-explorer/DetailAnalysisCards.tsx
    • components/defi-explorer/MarketDetail.tsx
    • tests/unit/defi-explorer/detail-analysis-cards.test.tsx
  3. Figure or statementCOR-2026-0025

    Explorer methodology, answer to the question about the metrics

    Before
    “For lending markets, TVL refers to the currently available, non-lent-out liquidity.”
    Now
    “What TVL denotes for a lending market depends on the protocol: for some it is the total supply, for others the supply minus borrows. This page therefore computes withdrawable liquidity itself, from supply and borrows.” (all five languages)
    Basis
    Methodology audit of 26 September 2026, criterion D2, with the comparison of /pools against /lendBorrow on 27 September 2026 (see COR-2026-0024).
    In the repository
    • messages/de.json
    • tests/unit/audit/text-corrections.test.ts
  4. Statement went too farCOR-2026-0008

    Academy lesson “Where Does Yield Come From?”, liquidity pool section (messages/*.json, AcademyLessons.yield-sources.lpText)

    Before
    “… You earn the trading fees. Risk: medium to high (impermanent loss).” — a risk level for an entire category of markets, in all five languages.
    Now
    The sentence now names what the additional risk consists of — impermanent loss when the prices of the two tokens move against each other — instead of grading it.
    Basis
    Internal review during a language review of all five locales. Since AP1 (21 September 2026) the platform assigns no risk classes; the neighboring lending sentence had already been corrected for the same reason (COR-2026-0006), this one had been left standing.
    In the repository
    • messages/de.json
    • messages/en.json
    • messages/es.json
    • messages/hi.json
    • messages/zh.json
  5. Statement about this siteCOR-2026-0009

    Academy lesson L2-07 “Reading a risk assessment — including this platform’s own”

    Before
    The lesson spoke of “six factors” in eight places, and its figure merged the outlier marking and data completeness into one step. A retrieval question read “A pool is assessed as “Niedrig” (low). What does that evidence?”, and the exercise, the application question and the institutional prompt treated the bucket as still existing.
    Now
    The lesson now names seven factors throughout, the figure shows seven steps, and the flag-point scale (at most 13) is stated alongside. Questions and exercises refer to flags and flag points; the former bucket appears only in the example that explains why it was dropped.
    Basis
    Internal review against the model’s code, prompted by the language review of 26 September 2026. Since AP1 (21 September 2026) the platform forms no risk bucket; the model evaluates seven factors. The checklist meant to tie the lesson to the model counted only six itself and is now derived from the model.
    In the repository
    • content/academy/analyst.ts
    • lib/risk/score.ts
    • lib/risk/dataFlags.ts
    • lib/academy/riskModelFacts.ts
  6. Figure or statementCOR-2026-0010

    Academy lesson L4-02 “The same data, read as a bank”, heading of the worked example

    Before
    “One finding, seven lines” — the example lists one finding and four sub-findings, five lines in all.
    Now
    “One finding, four sub-findings”, as the example’s own calculation counts them (“Three of the four sub-findings …”).
    Basis
    Internal review during the language review of 26 September 2026: the heading did not match the example’s own entries.
    In the repository
    • content/academy/institutional.ts
    • tests/unit/academy/stated-figures.test.ts
  7. Figure or statementCOR-2026-0011

    Academy lesson L4-04 “The insurance view: defining the event”, result of the example “Twenty policies, one cause”

    Before
    “The same twenty policies, two orders of magnitude apart in maximum simultaneous exposure.” — the example compares USD 10m (largest single position by protocol) with USD 80m (the stablecoin as common cause), a factor of 8; two orders of magnitude would be a factor of 100.
    Now
    Counted by cause, the largest simultaneous exposure is eight times what it is when counted by protocol.
    Basis
    Internal recalculation of the figures given in the example, prompted by the language review of 26 September 2026.
    In the repository
    • content/academy/institutional.ts
    • tests/unit/academy/stated-figures.test.ts
  8. Figure or statementCOR-2026-0012

    Academy lesson L3-07 “Governance risk: who can change the rules”, calculation of the example “Formally open, factually decided”

    Before
    “Four addresses hold 31 %, exceeding the quorum sevenfold.” — with a quorum of 4 %, 31 % is 7.75 times the quorum; “exceeding sevenfold” could also be read as eight times.
    Now
    “Four addresses hold 31 % — almost eight times the quorum.”
    Basis
    Internal recalculation of the figures given in the example, prompted by the language review of 26 September 2026.
    In the repository
    • content/academy/risk.ts
    • tests/unit/academy/stated-figures.test.ts
  9. Figure or statementCOR-2026-0013

    Academy lesson L3-09 “Measuring leverage, including the hidden kind”, key takeaways

    Before
    “Leverage grows linearly with the return and shortens the price buffer.” — the lesson itself teaches the opposite direction: the return grows with leverage.
    Now
    “The return grows linearly with leverage while the price buffer shrinks.” — as in the section “Leverage shortens the price buffer” of the same lesson.
    Basis
    Internal review during the language review of 26 September 2026: the key takeaway contradicted the lesson text.
    In the repository
    • content/academy/risk.ts
    • tests/unit/academy/stated-figures.test.ts
  10. Statement went too farCOR-2026-0014

    Notice below the compound-interest calculator of the former dashboard (visible until 25 September 2026)

    Before
    “Crypto often offers higher yields but carries smart contract risk. RWAs offer lower yields backed by TradFi assets. …” — a statement about the backing of yields with no source on file; tokenized RWAs carry smart contract risk too.
    Now
    Only the sentence that can be backed remains: “Both figures are projections based on the current APY — not a guaranteed future return.” In all five languages. The calculator itself was replaced by the Strategy Intelligence Report on 25 September 2026; after that the text only remained in the catalog.
    Basis
    Internal review during the language review of 26 September 2026, measured against guardrail 1 (claim nothing that is not evidenced).
    In the repository
    • messages/de.json
    • messages/en.json
    • messages/es.json
    • messages/hi.json
    • messages/zh.json
    • tests/unit/catalogue-claims.test.ts
  11. Statement went too farCOR-2026-0015

    Academy lesson “Stablecoins”, labels of the two real comparison pools

    Before
    “Example: lower risk” and “Example: higher risk” above two real, named pools — a risk comparison of two products, although the pools are selected by two DeFiLlama fields only.
    Now
    The label names the selection criterion: “single exposure, no IL risk per DeFiLlama” and “multi-exposure or IL risk per DeFiLlama”. In all five languages.
    Basis
    Internal review during the language review of 26 September 2026. Since AP1 (21 September 2026) the platform assigns no risk levels; the same rule as COR-2026-0006 and COR-2026-0008.
    In the repository
    • messages/de.json
    • messages/en.json
    • messages/es.json
    • messages/hi.json
    • messages/zh.json
    • tests/unit/catalogue-claims.test.ts
  12. Statement about this siteCOR-2026-0016

    Flag-point scale on the methodology page and in the Academy lesson on flag points; scale labels

    Before
    The scale ran from 0 to “9+” and put 10 to 13 points on one tile — right below the sentence “at most 13 points”. Its note named a “narrow selection on the dashboard” that no longer exists as a switch. The risk/reward scale labeled the pool above the filter threshold “several flags triggered”, although three points can come from a single flag.
    Now
    The scale runs to the maximum derived from the point rules (13), one tile per point value. The note names the curated universe of the Strategy Intelligence Report; the risk/reward scale says “more than 2 flag points”. In all five languages.
    Basis
    Methodology audit of 26 September 2026, criteria A4 and A2.
    In the repository
    • components/academy/RiskScoreScale.tsx
    • components/academy/RiskRewardScale.tsx
    • tests/unit/risk-score-scale.test.tsx
  13. Statement about this siteCOR-2026-0017

    Methodology page, “Data source” section, and about page, data section

    Before
    “All figures come from the public DeFiLlama API … fifteen minutes … Every figure states when it was retrieved.” The report’s RWA pools come from a separate retrieval cached for up to twelve hours, a few not from DeFiLlama, and carried the crypto pools’ timestamp. If that retrieval failed, labeled sample data could enter the report’s median and TVL.
    Now
    Both texts name the separate RWA retrieval, its cache duration, and that the retrieval time shown applies to the crypto pools. Sample data is no longer part of the report’s universe. In all five languages.
    Basis
    Methodology audit of 26 September 2026, criteria D4 and E3: the statement checked against the cache durations in the code.
    In the repository
    • lib/services/rwaDataService.ts
    • lib/report/data.ts
    • tests/unit/report/methodology-consistency.test.ts
    • tests/unit/report/data.test.ts
  14. Figure or statementCOR-2026-0018

    Explorer: table, detail view, comparison and both CSV exports, “IL risk” field

    Before
    Where DeFiLlama reported no IL value, the field said “No” — while the flag points count the same gap as IL risk. One page could show “IL risk: No” next to the IL flag.
    Now
    Without a value the field shows “–”, and the export an empty field. The IL flag text now says “per DeFiLlama — or not reported by DeFiLlama” (all five languages).
    Basis
    Methodology audit of 26 September 2026, criteria D2 and A6.
    In the repository
    • lib/defi-explorer/rows.ts
    • tests/unit/defi-explorer/rows.test.ts
    • tests/unit/defi-explorer/csv.test.ts
  15. Statement about this siteCOR-2026-0019

    Explorer detail view and Navigator, “Flags by dimension” section

    Before
    The dimensions recomputed the points themselves and diverged: two points instead of one at exactly 50 % reward share, RWA issuers graded on the suspended protocol factor, completeness measured over different fields. The chain factor belonged to no dimension, so the sum was lower than the total the text beside it calls their sum; “custody” was missing.
    Now
    The dimensions show the flags of the point calculation, and their sum is the total. New: “chain maturity” (assessed) and “custody” (not assessed); the protocol factor counts as not assessed for RWA issuers.
    Basis
    Methodology audit of 26 September 2026, criterion C1.
    In the repository
    • lib/risk/dimensions.ts
    • tests/unit/risk-dimensions.test.ts
  16. Statement went too farCOR-2026-0020

    Methodology page (points section, validation status), Academy quiz on flag points, analyst lesson on reading the risk assessment

    Before
    The validation conclusion said the assessment “orders pools”, the points section of the same page “They do not order pools”; the points were said to state “how many of the seven factors” reported something. The lesson called the weighting “equal”, the quiz called the assessment “not an opinion”.
    Now
    The assessment “describes” pools; the figure is a sum of points, not a count; the factors carry fixed, different point values (at most 3, 2, 2, 2, 1, 2 and 1); the thresholds are set, not calibrated.
    Basis
    Methodology audit of 26 September 2026, criteria B1 and B2.
    In the repository
    • content/academy/analyst.ts
    • messages/de.json
    • messages/en.json
    • tests/unit/audit/text-corrections.test.ts
  17. Figure or statementCOR-2026-0021

    Academy: lesson on DEX mechanics, worked example “A year of providing liquidity”; market-risk lesson, worked example; impermanent-loss lesson, explanation

    Before
    Impermanent loss at an 80 % price move: −4.3 %; result “5.2 % against simply holding” by adding percentages on different bases. The market-risk example assumed 6 % price impact without saying that the model below computes about 18 % from the same figures. The loss was said to reverse “if prices converge again”.
    Now
    −4.2 % of the hold value; about +3.7 % of the deposit against holding, computed on one base. The market-risk example names the assumption behind the 6 % and the model’s 18 %. The loss reverses once the price ratio returns to where it stood at deposit.
    Basis
    Methodology audit of 26 September 2026, criterion E1: recomputed with the IL formula 2√r/(1+r) − 1.
    In the repository
    • content/academy/analyst.ts
    • content/academy/risk.ts
    • tests/unit/academy/worked-examples-audit.test.ts
  18. Statement went too farCOR-2026-0022

    Strategy Intelligence Report: sentence on pools with 0 % APY, text of the section below, reference to the Academy; metric catalog, APY

    Before
    Pools with APY 0 were called “pure collateral markets that pay no interest”, although the data only says “APY 0”. The Academy reference promised lessons on tokenized securities that do not exist. The catalog said the displayed APY was computed here from a rate and a missing total APY was rebuilt here.
    Now
    “Often pure collateral markets; the data itself only says the APY is 0” (all five languages; since methodology 2.2 the sentence names the criterion by which a market is counted as a collateral market instead); the promise is removed; the catalog says DeFiLlama’s value is displayed and a missing total APY is shown as “–”.
    Basis
    Methodology audit of 26 September 2026, criteria E3 and D2.
    In the repository
    • lib/academy/metrics.ts
    • tests/unit/audit/text-corrections.test.ts
  19. Statement went too farCOR-2026-0006

    Academy lesson “Where Does Yield Come From?”, lending section (messages/*.json, AcademyLessons.yield-sources.lendingText)

    Before
    “You lend your tokens to others, who post collateral. Risk: lower, yield: usually stable.” — a blanket classification with no mention of collateral value, liquidation or oracle dependency.
    Now
    The sentence now names what the comparative stability depends on: the collateral holding its value, the liquidation mechanism working as intended, and the price oracle the protocol relies on.
    Basis
    Internal review. The Analysis Academy's deeper lending lesson and the methodology page itself explicitly state that oracle, governance and counterparty risk are not covered by the scoring system — the beginner lesson's blanket “risk: lower” classification contradicted that.
    In the repository
    • messages/de.json
    • messages/en.json
    • content/academy/analyst.ts
    • lib/config/methodology.ts
  20. Statement went too farCOR-2026-0007

    Academy lesson “Understanding TVL” (messages/*.json, AcademyLessons.tvl.explanationBody)

    Before
    “A high TVL … often signals trust and liquidity” — the one place in the repository that tied TVL to “trust” rather than to size/liquidity.
    Now
    “… often signals scale and liquidity”, matching the wording already used in the glossary (Glossary.tvl) and every other place that explains TVL.
    Basis
    Internal review during a consistency audit of every place that explains TVL (Glossary, Academy, DeFi Explorer chart, Methodology, /defi-analysis/standards). The other five locations avoid “trust” consistently; this one didn't, even though the same sentence already denies the safety claim.
    In the repository
    • messages/de.json
    • messages/en.json
    • lib/config/glossary.ts
  21. Figure or statementCOR-2026-0002

    The compound-interest calculator on /StrategyIntelligenceReport and the compound-growth control in the Academy

    Before
    The dropdown offered seven fixed example values, each attributed to a named product: Ethereum staking (Lido) 3.2%, USDC lending (Aave V3) 5.1%, Solana staking (Jito) 7.4%, WBTC liquidity (Curve) 1.8%, Ondo OUSG 4.9%, Mountain Protocol USDM 5.0%, RealT 9.5%. They sat under the heading “example values (as of 09/2026)” next to live figures on the same page.
    Now
    The fixed values are gone. The dropdown now offers this application's retrieved figures — with their source and retrieval time stated below — and a manual input. When no retrieved figure is available the manual input remains; no number steps in any more.
    Basis
    Internal review. None of the seven values had a source or a retrieval date on file, and the “as of 09/2026” label was maintained by hand. Whether the values still hold could not be checked at the time of the correction; the question is on file for the operator and still open.
    In the repository
    • lib/config/yieldPresets.ts
    • components/calculator/YieldCalculator.tsx
    • docs/umbau/OWNER_TODO.md
  22. Statement about this siteCOR-2026-0003

    Methodology (“data source”), About (“where does the data come from?”) and the Explorer methodology

    Before
    All three places stated that the data is refreshed “on load and every 15 minutes”.
    Now
    The statement now names the actual cache lifetimes — five minutes for the pool data, ten minutes for the Navigator and the Explorer — and says there is no fixed refresh interval: a fetch happens on the first page request after the cache expires, and not at all without one.
    Basis
    Internal review against the code. Neither the number nor the schedule held: the cache lifetimes are in the code, and this application has no scheduler at all. The locations are listed below.
    In the repository
    • lib/cache/index.ts
    • lib/defi-explorer/marketsCache.ts
  23. Figure or statementCOR-2026-0004

    Internal Ondo Finance data service

    Before
    The service carried a fixed 3.6% yield for USDY and a fixed fallback TVL of USD 3.5bn for Ondo Finance. The success path returned the fixed yield labeled “live”.
    Now
    The fixed yield has been removed. If the TVL fetch fails, the service reports no value rather than an invented one. Neither figure was ever displayed — the component that would have rendered them is switched off.
    Basis
    Internal review. The repository held no source for either figure; the comment named a date on which it was read off, but no citable location.
    In the repository
    • lib/services/ondoService.ts
  24. Statement about this siteCOR-2026-0005

    Evidence register, the “verification status” box above the list of entries

    Before
    The box stated that “no URL was fetched” and that “seven entries” sat at the “details checked” rung. Neither was true any more: by then twenty entries sat at that rung, and for four of them the URL had been fetched and checked against the identity probes declared in advance. The same box also explained the network conditions of the environment the entries were written in.
    Now
    The counts now sit as their own list above the text and are taken from the entries themselves — a number written into prose is maintained by hand and eventually drifts. The text now only describes what the three rungs mean, and no longer names the working environment's conditions; they are no concern of anyone trying to assess a source.
    Basis
    Internal review against the data. The statement contradicted the very entries it described — the same error as COR-2026-0003, this time in the statement about the checking itself.
    In the repository
    • lib/evidence/types.ts
    • app/[locale]/research/evidence/page.tsx
  25. Statement went too farCOR-2026-0001

    Every pool card, the detail view, the Explorer, the Navigator, the CSV export and the structured data (JSON-LD)

    Before
    Every pool carried a risk class of “low”, “medium” or “high”; RWA pools additionally carried a “counterparty risk: …” rating. The default sort ordered the list by that class.
    Now
    Both were dropped without replacement. Every view now names the triggered data flags individually and their sum in points, alongside the areas this platform does not assess. The default sort is now TVL.
    Basis
    Internal review. The class was derived from a heuristic that the methodology page itself declares unvalidated; for the “counterparty risk” rating no source was on file in the repository — the evidence trail consisted of code comments.
    In the repository
    • lib/risk/dataFlags.ts
    • lib/risk/score.ts
    • lib/config/methodology.ts
    • docs/umbau/AUDIT.md

How the data flags are derived, and what this platform explicitly does not assess, is set out in the methodology.