the market archive.
MNEMON is an independent archive of every Morpho market across eight chains (HyperEVM, Robinhood Chain, Ethereum, Base, Arbitrum, Katana, Monad, Arc). It samples the chains on fixed cadences: market state every 5 minutes, most other feeds every 15 minutes. It stores all data on MYRMIDONS infrastructure. It is not a proxy of the Morpho API. On top of the raw feed, it runs a broken-market classifier, investability rules, event ingestion for flows and liquidations, and an on-chain oracle identity probe.
BROKEN-MARKET CLASSIFIER
| FLAG | ENTER / EXIT | MEANING |
|---|---|---|
| RATE_RATCHET | apy@target > 50% / < 25% | The IRM has entered a runaway rate. The market is broken, not attractive |
| PINNED_UTIL | u ≥ 99.9% for 24h / below 95% for 48h | The market is stuck at full utilization. Lenders cannot withdraw |
| DUST | supply < $1k | The market is too small to be meaningful |
The pinned flag applies only while a market's supply is below $25k: a deep market at full utilization is an opportunity, not a defect. The ratchet flag applies at any size. A ratcheted market's supply is mostly the phantom interest the runaway rate keeps minting, so depth is the wrong reason to trust it. Classification uses hysteresis: a market enters and exits each flag at different thresholds, so the flags do not oscillate.
INVESTABLE MARKETS
INVESTABLE answers one question: can a lender put money into this market today and get it back? The server checks every market against a set of gates on each new sample. Hard gates veto. Soft gates warn. A hard gate with missing data counts as failed. Each market in the export lists its failed gates, its warnings and the numbers the gates read.
| HARD GATE | RULE | WHY IT EXISTS |
|---|---|---|
| BROKEN | the classifier flag is off | A broken market is not a market |
| IDLE | the market has a collateral token | Idle markets hold vault cash. They lend nothing |
| TRACK_RECORD | at least 7 days of samples in the archive | The 7-day gates need 7 days of data. The span counts from the market's first sample: its age where the archive is backfilled (HyperEVM, Arbitrum, Katana), the archive's own age where it is not (Ethereum and Base since 2026-07-27) |
| EXIT_LIQUIDITY | available liquidity ≥ $50k | A $50k deposit must be able to leave right now |
| EXIT_REGIME | TIME>99% over 7 days ≤ 10% | The same measure as the utilization tile's TIME>99%, on MNEMON's 15-minute samples over the last 7 days. A market pinned for a fifth of the week cannot be exited, even when one sample shows liquidity |
| HIGH_RATE | apy@target > 15% fails, < 10% recovers | The IRM doubles the rate about every 5 days at full utilization. 15% means a week of starvation. Not the classifier's RATE_RATCHET, which trips at 50% |
| ORACLE_OVERPRICE | oracle > 2% above the DefiLlama cross fails, < 1% recovers | An oracle that overprices collateral liquidates too late and creates bad debt. Underpricing is a haircut and never fails |
| BAD_DEBT | bad debt socialized in 30 days < 10 bps of supply | Lenders already paid for a failed liquidation here. Rounding dust of a few cents stays far below the line |
| LIQUIDATABLE | DEX slippage at the at-risk size ≤ 0.8 × the liquidation bonus | If liquidators cannot sell the collateral at a profit they do not liquidate, and lenders take the loss |
| UNVERIFIED | a hard gate has no data | A market we cannot check is not shown as investable |
The LIQUIDATABLE gate ties the liquidation bonus to how the collateral trades. Morpho Blue pays liquidators with a fixed incentive factor, LIF, set by the market's LLTV: a liquidator repays debt and receives collateral worth LIF times the repaid amount. Once a position's loan-to-value passes 1/LIF, liquidating it no longer pays. At high LLTV both the bonus and the room before that point are small.
LIF = min(1.15, 1 / (0.3 · LLTV + 0.7)) // Morpho Blue liquidation incentive factor
bonus = LIF − 1 // what a liquidator earns per unit of debt repaid
insolvency_drop = 1 − LLTV · LIF // price drop from LLTV to unprofitable liquidation
σ_daily = vol_30d_annualized / √365 // from the archive's hourly prices
cutoff = max(3 · σ_daily, worst observed 1-day drop) // one bad day for this collateral
at_risk_debt = Σ debt where 1 − 1/HF < cutoff // positions a bad day pushes into liquidation
gate slippage(first rung ≥ at_risk_debt) ≤ 0.8 · bonus // Relay quote, refreshed hourly
| LLTV | LIQUIDATION BONUS | DROP TO INSOLVENCY |
|---|---|---|
| 62.5% | 12.7% | 29.6% |
| 77% | 7.4% | 17.3% |
| 86% | 4.4% | 10.2% |
| 91.5% | 2.6% | 6.1% |
| 96.5% | 1.1% | 2.5% |
AT_RISK_DEBT is the debt one bad day would push into liquidation, not into insolvency. Per collateral, a bad day is the larger of three daily standard deviations (30-day window) and the worst one-day drop in the archive's price history. A position at health factor HF is liquidated after a price drop of 1 − 1/HF, so every position whose drop-to-liquidation is smaller than the cutoff counts, and their debt is summed. A high cutoff (a volatile or noisily priced collateral) can pull most of a book into the sum.
The gate reads the Relay quote at the first ladder rung that covers the at-risk debt. Slippage must stay under 80% of the bonus. No route at that size is zero capacity. A rung with no quote is unverified and fails the gate the same way; the site says so rather than claiming the collateral cannot be sold.
Collateral with no DEX route at any size is redemption-only (tokenized funds, Pendle principal tokens, vault shares). LIQUIDATABLE and ORACLE_OVERPRICE are skipped and REDEMPTION_ONLY_COLLATERAL is warned.
Lender concentration warns and never vetoes: the largest lender of almost every Morpho market is a curated vault, and the archive cannot tell a vault from a whale.
- ▸LENDER_MAJORITY: one lender holds more than half the supply.
- ▸LENDER_EXIT_SHOCK: the largest lender cannot exit. The supply that would remain does not cover the debt, so the book would be locked until repayments. The site shows what share of the debt the rest of the book covers.
- ▸REDEMPTION_ONLY_COLLATERAL: no DEX route at any size, DEX gates skipped.
- ▸AT_RISK_ABOVE_QUOTE_LADDER: the at-risk debt exceeds the biggest size quoted, so the slippage shown is a lower bound.
- ▸LLTV_BUFFER_BELOW_CUTOFF: the collateral's bad-day cutoff is larger than the drop from LLTV to insolvency, so one modelled bad day can push a position past the point where liquidating it pays. About 70% of markets trip it, so it stays in the export and off the banner.
Red is immediate. Green needs every hard gate to pass on the newest sample and on one at least an hour older, so a market on a threshold does not blink. Passing now but not an hour ago shows as PENDING.
On the market page every hard gate is a tile in the GATES strip, every time: the gate's name, its verdict, and the reading against the limit. PASS is green, FAIL gold. UNVERIFIED means the gate had no data, which fails it: for LIQUIDATABLE that is a Relay rung with no quote, shown as 'no quote' rather than as a failed sale. SKIPPED marks the two DEX gates on redemption-only collateral. The strip's header counts the failures and shows the debt at risk, the liquidation bonus and the bad-day cutoff the LIQUIDATABLE gate read. Soft flags stack in the alert strip above it, one line each. LENDER_MAJORITY and LLTV_BUFFER_BELOW_CUTOFF are not shown there: most markets trip them.
Investable means the market passes these checks on its newest sample. It is a filter, not a recommendation. It knows nothing about your size, your horizon or your view on the collateral. Every threshold above is a choice, written down so you can disagree with it.
WHAT IT TRACKS
- ▸Market state: rates, utilization, supply and borrow, oracle price. Sampled every 5 minutes.
- ▸Flows: every Morpho market event (supply, withdraw, borrow, repay, liquidations), whale flows (single events of 5% or more of a market's supply), and per-chain sync cursors.
- ▸Borrower and lender books: health factors, near-liquidation debt share, lender concentration.
- ▸Utilization spells: periods at or near full utilization, when lenders may not be able to exit.
- ▸Oracle deviation: the Morpho oracle against the DefiLlama cross, signed. Above the cross is the lender's risk: collateral bought at market can be borrowed against at the inflated price, and the site flags it. Below the cross is a haircut, borrowers liquidate early and lenders are over-covered, so it is shown but never flagged. Persistent deviation identifies an exchange-rate oracle. A short episode is a depeg.
- ▸Oracle identity: every oracle and feed contract a market uses, probed once on-chain (the configuration is immutable) — composition, provider, owner status, MODT failover wiring, and how many markets share each feed. Served through the risk API; see the RISK page.
- ▸Liquidation capacity inputs: DEX route quote ladders and HyperCore book depth, sampled every hour.
DATA // STATIC JSON EXPORT
UNSTABLE // SCHEMA MAY CHANGE. These files exist for the site's own tools. Every file carries a schema_version. Fields can be added or changed without notice. Build on the risk API where possible.
| FILE | CONTENT | CADENCE |
|---|---|---|
| market_health.json | Latest state and classifier verdict per market, 7d sparkline | 15 min |
| market_flows.json | Per-market flow windows, whale feed, liquidation feed, per-chain sync | 15 min |
| util_spells.json | Near-full-utilization episodes, trailing 30d | 15 min |
| depeg_spells.json | Oracle decoupling episodes, trailing 30d | 15 min |
The files are served from data.myrmidons-strategies.com. Rows are keyed on (chain_id, market_id). The top-level chain_id is null when a file mixes chains. Schema history: v4 added the server-computed investable flag. v5 added per-row chain_id. v6 added per-chain flow sync state. v7 added a per-market oracle identity object (the site reads oracle identity from the risk API instead). v8 computes investable from the gate model and adds investable_reasons, investable_warnings and investable_inputs per market.