Data & Reporting

Community dashboards for Morpho data, and the public list of markets, assets and vaults that reporting excludes.

Dune dashboards

Dune is a crypto data and analytics platform. It hosts community dashboards that track DeFi, NFT and protocol metrics.

The following open source dashboards cover Morpho:

High-level dashboards

Domain specific dashboards

Reporting exclusions

Morpho publishes a list of markets, assets and vaults that reporting should leave out of aggregate metrics such as total deposits, total borrow, TVL and fees. Some of them are broken or misleading, and counting them would distort the totals.

The three public files below are the single source of truth for these exclusions, so dashboards, aggregators and Morpho's own figures leave out the same items.

Why are some markets/vaults excluded

Morpho excludes markets, vaults and assets whose onchain values no longer reflect real value.

Morpho is permissionless: anyone can create a market or a vault with any assets and any oracle, so over time some markets can end up in this state. A market, vault or asset can be excluded for one of these reasons:

  • Permanently inflated oracle price. The market's oracle values the collateral at a significantly higher price than it is worth. This can be due to several factors, such as an oracle misconfiguration or a token depeg that isn't incorporated into the oracle's price. Due to the inflated oracle price, positions may be unliquidatable given their inflated health factor. If a position does become unhealthy, it is likely not profitable to liquidate. Ultimately, it is highly likely that all bad debt on the market stays unrealized and lender positions remain unrecoverable. In Morpho Blue, markets have no maturity, so the market's interest rate model keeps accruing interest indefinitely. This interest is phantom interest: a purely accounting effect that doesn't reflect the market's recoverable value. Over time, much of the market's outstanding loans and bad debt reflects this phantom interest rather than genuine losses. Excluding the market takes both the original loss and the phantom interest out of Morpho-wide totals.
  • Inflated market supply. The market's supplied loan assets are inflated in a way that doesn't reflect real value. For example, a user can create a market and use a flash loan to lend to it and borrow from it in the same transaction, inflating the market's size.
  • Broken asset. All or most of the markets that use the asset are broken in one of the ways above, and the asset itself never had real value, has lost its value, or is being wound down. Rather than excluding each of those markets one by one, Morpho excludes the asset, which catches every current and future market that uses it.
  • Broken vault. All or almost all of the vault is exposed to markets or assets that are broken in one of the ways above, either directly or through another vault that is exposed to broken markets or assets in the same way.

Excluding an item doesn't remove it: it stays onchain, and its positions and full history remain public through the contracts and the Morpho API. Morpho doesn't publish a write-up for each excluded item. Each row's reason gives a short label instead.

Who can use it

Use the exclusions if you publish aggregate Morpho figures: dashboards, data aggregators, research or risk reporting.

You don't need them to build deposit, borrow or vault flows. Exclude items from totals, not from a user's own positions: a user who holds a position in an excluded market should still see it.

Endpoints

The exclusions are served as three CSV files by the Morpho reporting API, which documents each file in full. They need no API key:

Each response is the complete list in text/csv; charset=utf-8. There are no query parameters, so download the whole file; once a day is enough.

FileColumns
Marketschain, chain_id, market_id, effective_from, effective_to, reason
Assetschain, chain_id, asset_address, asset_usage, effective_from, effective_to, reason
Vaultschain, chain_id, vault_address, vault_version, effective_from, effective_to, reason
  • chain uses the chain keys of DefiLlama's Morpho Blue adapter, and chain_id is the matching numeric chain ID. The two always agree, so you can join on either.
  • asset_usage is loan, collateral or all: the role in which the asset is excluded.
  • vault_version is v1 or v2.
  • effective_from and effective_to are UTC dates (YYYY-MM-DD). The exclusion applies from effective_from (inclusive) up to effective_to (exclusive). effective_to is empty while the exclusion is active.
  • reason is a short public label, such as Broken market, Broken asset or Broken vault, that you can show to your users. It doesn't say which of the causes above applies.

Applying the exclusions

  • Markets: leave the market out of totals from effective_from until effective_to.
  • Assets: leave out every market that uses the asset in the role given by asset_usage: as the loan asset, as collateral, or either. With all, also leave out vaults whose underlying asset it is.
  • Vaults: leave out the vault's own figures for the given vault_version. This doesn't exclude the markets the vault supplies: they follow markets.csv and assets.csv.

The three files are independent, so read all of them. Apply the dates when you compute historical series too, not only current totals.

When an item is no longer excluded, its row gets an effective_to date. Rows can also be corrected or replaced, so re-download the files before recomputing history.

Caching

Responses carry Cache-Control: public, no-cache, an ETag and a Last-Modified header, which is the time of the file's last change.

To check for changes cheaply, send the last ETag in an If-None-Match header. The API answers 304 Not Modified when the file hasn't changed. Last-Modified is informational: the API ignores If-Modified-Since, so revalidate with the ETag only.

curl -i https://api.morpho.org/reporting/v1/exclusions/markets.csv \
  -H 'If-None-Match: <ETag header value from the previous response, sent as is>'