The matrix states exactly how deep each explorer currently goes; beneath it, the foundation that is identical in every one. The destination is every explorer at the same reference depth.
How deep each explorer goes
included not yet built built, awaiting the first on-chain instance the protocol can't provide it — open the cell for the why
Explorer
health factor, collateral ratio, rates read live from the protocol's contracts
USD from the protocol's own oracle — the same prices it liquidates with, not a price-API approximation
an offline verifier re-derives the explorer's figures directly from the chain via a second data path, and checks them against the indexed values and the constants the explorer states — run against mainnet when the explorer is built or changed, not a check that runs as the page renders
export the position as Markdown or CSV, ready to paste into an LLM or agent context
a plain-language explainer on every event card
what was seized, the premium paid, health at the moment it fired — every explorer flags and links liquidations on the timeline
protocol-level pages that read the whole system's own state live at head — market rosters, branch comparisons, redemption queues, balance sheets; what each explorer's view shows opens from its own row of the matrix
The original cToken markets replayed over six years — every account's supplies, borrows and liquidations from the contracts' own events, with the markets themselves read live at /compound-v2/markets
Every listed market's utilisation against its own rate-model kink, with USD from the oracle the Comptroller itself reads.
Compound V2 is the original cToken deployment, and what stands out about it is how little of it is still in use: it holds around $106M supplied, but only about $12.4M of that is borrowed — under 12% — and two markets, cDAI and cUSDC, carry 94.5% of even that. Eight of its twenty markets have had their collateral factor set to zero, which does not mean a 0% limit; it means the market has been switched off as collateral entirely. The protocol view states that from the markets' own numbers: what each holds in its own token, how much of it is working, the collateral factor it does or doesn't have, and the utilisation its own rate model was tuned to expect. Dollars come from the oracle the Comptroller itself reads, never a price API — with one caveat surfaced rather than hidden: three markets are priced by a constant stored in that oracle with no feed behind it, and the legacy SAI market's constant sits at $14.43 for a token that targets a dollar. Nothing keys on a token symbol, because symbols collide: twenty markets carry eighteen distinct ones, two different markets both answer "cDAI", and the legacy SAI token itself reports the string "DAI" — so only a cToken address identifies a market. The position explorer replays the other side of that stillness: six years of account history — 3.83M events, 26,639 liquidations across 5,864 borrowers, the deepest liquidation record on the roster — proven wei-exact against the chain per market, with each account's live standing read from the Comptroller itself. The present is quiet; the history is why the explorer exists.
Solo-fork margin accounts at the contract's own (owner, account number) grain — balances replayed from emitted absolutes, debt as negative balances, the account's own margin line read live including the LST/ETH override
Every market's own margin ladder — a multiplicative premium over the 117.65% base, including the LST/ETH override.
Dolomite is a fork of dYdX's Solo Margin, and its grain is the contract's own: a position is an (owner, account number) pair — cross-margined within an account number, isolated across them — so that is what a page is. The core has no borrow action; a negative balance IS debt, and every balance is replayed from the emitted after-state rather than summed from deltas, which is why the whole book proves wei-exact against the contract's own totals with no exclusions. The margin line is the protocol's own arithmetic re-derived exactly: a global 117.65% minimum, per-market premiums applied multiplicatively (WLFI's effective requirement is 150.0%), and an on-chain override that gives ETH-and-LST pair accounts a 111.11% line with premiums skipped — the explorer reads that override per account rather than asserting the ladder as universal. On mainnet Dolomite is in practice WLFI Markets — USD1 and WLFI dominate the book — and the pages state what is there without editorialising. Liquidations exist (122, four named legs each); their valued treatment awaits the oracle-at-block price capture the event stream already carries.
Instadapp's vault positions as NFTs — composite deposit/borrow events chain-read, tick-swept liquidations attributed per position from the vault's own settlement views
debt-token units by design — each vault's oracle prices the collateral in the vault's debt token (the exact space its liquidation engine judges in); Fluid runs no USD feed
Every vault's own borrow, liquidation and absorption ladder — three rungs on one axis, with each vault's own penalty floor beside them.
Fluid prices each vault's collateral in its debt token — the vault oracle quotes debt-per-col, the exact quantity the liquidation engine judges, and the protocol has no USD feed. Positions, ratios and liquidation prices are stated in the vault's own token pair rather than converted through a feed the protocol doesn't use. Smart-vault legs hold Fluid DEX pool shares, and the protocol view resolves them into the tokens they are made of — the pool states its own per-share composition, which is a fact about what the shares ARE, not a price. Their liquidations still stay amounts-only: the DEX resolver that answers this at the head has no bytecode at the blocks those liquidations fired in, so nothing on chain can say what a share was made of back then. Liquidations sweep price-band ticks and name no position — the timeline's per-position impacts are the vault's own settlement math read at the boundary blocks, valued at the vault's own oracle read at that same block. Each token-pair vault's realized premium is shown against that vault's own liquidation penalty, read from the block it fired in — a floor the engine guarantees rather than a figure it targets. The two are computed independently, so a sweep landing on its vault's constant is the check that the price is the one the engine used; one landing above it simply cleared on better terms than the minimum, and is shown as it happened.
Oracle-free ZCHF minting positions — each a contract of its own, owner-declared liquidation prices tested by two-phase challenge auctions, everything in native units
oracle-free by design — the liquidation price is owner-declared and enforced by challenge auctions; no USD feed exists anywhere in the protocol
Frankencoin has no oracle anywhere — the system's one price is the liquidation price each position's owner declares, and the protocol keeps it honest with a two-phase challenge auction instead of a feed: anyone who thinks a declared price is too high posts collateral against it, and the auction's outcome, averted or succeeded, is the protocol's own judgment. So the explorer states everything in native units — debt in ZCHF, collateral in the position's own token — with no dollar figure and no health factor, because neither exists on chain. Two facts of the design shape what a page can say. Collateral can arrive by direct ERC-20 transfer, which emits nothing on the position, so where the event ledger never spoke the live chain read carries the true balance and the card says so. And a veto does different things by version — V1's deny pins the position's cooldown forever, V2's closes it outright and leaves it indistinguishable at head from an ordinary close — so DENIED is served from the indexed event record, the only place it survives.
Leveraged xPOSITIONs on wstETH and WBTC — every event chain-read, current state settled from the pool's own views, socialized funding reconciled explicitly
The tick ladders read off the pools' own tick storage, with tick debt shares reconciled integer-exact against the pool totals.
f(x) socializes funding, rebalances and liquidations across whole ticks without emitting per-position events. The explorer reads exact current state from the pool's own views, reconciles the socialized share explicitly, and replays tick lineage to place each tick rebalance on the timelines it touched — but those amounts are the whole tick's clear: no log states a single position's slice.
The original interest-free Trove — ETH collateral and exact LUSD debt emitted per event, no modeled state
The system's own state — TCR against the recovery line, the Stability Pool's depth against system debt, the shared base rate, and the CR-ordered redemption queue.
Curve's LLAMMA lending — isolated markets where liquidation is a band, not a line: soft-liquidation read live from the protocol's own state, cross-checked across two contracts
Every market's own amplification and band geometry, judged in the token it borrows.
LlamaLend's liquidation is a band, not a line: collateral sits in the market's AMM across a range of prices, and as the oracle falls through it the AMM converts collateral to the borrowed token continuously — soft-liquidation is a state a position lives in, not an event that happens to it. So the explorer reads it as state: the converted amount comes from the protocol's own user_state and is cross-checked wei-exact against a second contract's answer (get_sum_xy), and the band edges are re-derived from the deployed contracts' own integer math rather than approximated. Two consequences of the design shape the record. A partial hard-liquidation emits no after-state — the deployed controller logs nothing on that path — so those figures render as unstated, never zero, until the position's next event. And a hard liquidation seizes both legs of the AMM holding, the remaining collateral and the crvUSD it had already converted — two different numbers, stated separately, with the same-tx debt repayment pre-claimed so it never double-counts as the borrower's own repay. Most markets borrow crvUSD; the four that borrow WETH, tBTC, ynETH or CRV stay in that token's units.
Vaults read straight from the chain — every value traceable, no modeled state
The Vat's balance sheet decomposed by ilk — Vat.debt = Σ(Art × rate) + vice asserted live, with every ilk on the terms governance set for it.
LockStake urns that ever borrow appear here as vaults (attributed through the engine's own owner record — decision 0013). What stays out is out by nature: pure staking urns carry no debt to explore, and the PSM/RWA singletons are protocol-owned plumbing, not user positions.
Institutional credit pools, the lender's on-chain side — exact share balances, the withdrawal queue, and what is liquid now vs deployed to off-chain-custodied loans
Maple runs an oracle, and for USDC that oracle IS a $1 pin: getLatestPrice returns a governance-set manualOverridePrice of exactly 1e8, overriding the registered feed (for USDT it reverts — no price at all). Rendering it would launder a pin as a market reading, which is what a $1 pin is charter-forbidden for; the pool assets ARE the unit, so values render in the asset itself
a Maple lender has no liquidation surface — borrower defaults resolve at off-chain custodians, and the on-chain trace is the delegate's impairment bookkeeping (unrealizedLosses), which socializes through the exit rate rather than seizing from any lender. Chain-proven: the exit price takes a share count and no address, so under an impairment every holder's claim drops by exactly its pro-rata slice — there is no per-lender term for a loss to be aimed at
Both syrup pools' liquid/deployed split and queue coverability against liquid cash.
Maple's share price is on-chain bookkeeping of an off-chain loan book: the chain proves what the contracts recorded — principal deployed, a posted interest rate, the delegate's impairment marks — not that the loans' custodied collateral (BitGo/Copper/Anchorage/Hex Trust, tri-party) exists. Impairments are a delegate judgment posted on-chain, and withdrawals travel a delegate-operated queue. The explorer shows what a lender actually reaches: the liquid buffer versus the deployed book, live, with the caveat on every receipt.
Isolated lending markets replayed from events — positions reconstructed with zero modeled state
loan-token units by design — Morpho Blue has no USD oracle
Every Blue market grouped by the token it measures in, each carrying the single immutable loan-to-value that is its whole risk surface.
Each Morpho Blue market measures everything in one token: the loan token it was created with (USDC, for example). Debt is simply a count of that token, and the market's own oracle prices the collateral in it too — the protocol never states a dollar value anywhere. So the explorer doesn't either: showing USD would add an assumption the contracts never make, that the loan token itself is worth $1. Two more limits are the protocol's rather than the roadmap's. Blue keeps no market-wide collateral total — collateral is per-position state, so a market's loan-to-value is a fact about each borrower and not about the market, and there is no such figure to plot; what a market can state about its own shape is how much of what was supplied is currently borrowed. And a market's totals are its last-settled balance rather than its balance now: Blue accrues interest only when someone touches a market, so a market left alone carries the figures from the block it was last touched, and the explorer shows them as they are stored with the current rate beside them. Projecting them forward would be the explorer's arithmetic rather than the protocol's record, and on markets untouched for months at rates the adaptive curve has driven into the hundreds of percent, that arithmetic is the loudest number on the page.
Peer-to-peer fixed-term loans read straight from events — each loan's collateral, credit and terms traceable, no modeled state
terms are fixed at origination — no health factor or floating rate to read
no protocol oracle — the two parties set the price
loans default at expiry and the lender claims the collateral — nothing is liquidated
The loan book — the outcome record, the open book by soonest deadline, what secures the loans and what they owe per token.
PWN loans are peer-to-peer on fixed terms: the parties set the price, so there is no protocol oracle, no health factor, and no liquidation — an expired loan defaults and the lender claims the collateral. Those surfaces aren't missing; they don't exist in the protocol.
An Aave V3 fork replayed from events — each reserve's principal traceable, no modeled state
The single SparkLend Pool's reserve roster read live, on the same shared surface as Aave V3's.
The deeper capabilities
Live dashboard
— health factor, collateral ratio, rates read live from the protocol's contracts
Oracle USD
— USD from the protocol's own oracle — the same prices it liquidates with, not a price-API approximation
Chain verification
— an offline verifier re-derives the explorer's figures directly from the chain via a second data path, and checks them against the indexed values and the constants the explorer states — run against mainnet when the explorer is built or changed, not a check that runs as the page renders
Copy for LLM
— export the position as Markdown or CSV, ready to paste into an LLM or agent context
Event explainers
— a plain-language explainer on every event card
Liquidation forensics
— what was seized, the premium paid, health at the moment it fired — every explorer flags and links liquidations on the timeline
Protocol views
— protocol-level pages that read the whole system's own state live at head — market rosters, branch comparisons, redemption queues, balance sheets; what each explorer's view shows opens from its own row of the matrix
A Liquity V2 fork minting USDaf across seven collateral branches — each Trove's collateral and debt read straight from events, no modeled state
Live dashboardOracle USDChain verificationCopy for LLMEvent explainersProtocol views
Liquidation forensics — the liquidation lane is built, but Asymmetry has never had a liquidation — 287 troves, none ever fired — so there is nothing yet to show or verify against
The original cToken markets replayed over six years — every account's supplies, borrows and liquidations from the contracts' own events, with the markets themselves read live at /compound-v2/markets
Live dashboardOracle USDChain verificationCopy for LLMEvent explainersLiquidation forensicsProtocol views
Solo-fork margin accounts at the contract's own (owner, account number) grain — balances replayed from emitted absolutes, debt as negative balances, the account's own margin line read live including the LST/ETH override
Live dashboardOracle USDChain verificationCopy for LLMEvent explainersProtocol views
Instadapp's vault positions as NFTs — composite deposit/borrow events chain-read, tick-swept liquidations attributed per position from the vault's own settlement views
Live dashboardChain verificationCopy for LLMEvent explainersLiquidation forensicsProtocol views
Oracle USD — debt-token units by design — each vault's oracle prices the collateral in the vault's debt token (the exact space its liquidation engine judges in); Fluid runs no USD feed
Oracle-free ZCHF minting positions — each a contract of its own, owner-declared liquidation prices tested by two-phase challenge auctions, everything in native units
Live dashboardChain verificationCopy for LLMEvent explainersLiquidation forensics
Oracle USD — oracle-free by design — the liquidation price is owner-declared and enforced by challenge auctions; no USD feed exists anywhere in the protocol
Leveraged xPOSITIONs on wstETH and WBTC — every event chain-read, current state settled from the pool's own views, socialized funding reconciled explicitly
Live dashboardOracle USDChain verificationCopy for LLMEvent explainersLiquidation forensicsProtocol views
Curve's LLAMMA lending — isolated markets where liquidation is a band, not a line: soft-liquidation read live from the protocol's own state, cross-checked across two contracts
Live dashboardOracle USDChain verificationCopy for LLMEvent explainersProtocol views
Institutional credit pools, the lender's on-chain side — exact share balances, the withdrawal queue, and what is liquid now vs deployed to off-chain-custodied loans
Live dashboardChain verificationCopy for LLMEvent explainersProtocol views
Oracle USD — Maple runs an oracle, and for USDC that oracle IS a $1 pin: getLatestPrice returns a governance-set manualOverridePrice of exactly 1e8, overriding the registered feed (for USDT it reverts — no price at all). Rendering it would launder a pin as a market reading, which is what a $1 pin is charter-forbidden for; the pool assets ARE the unit, so values render in the asset itself
Liquidation forensics — a Maple lender has no liquidation surface — borrower defaults resolve at off-chain custodians, and the on-chain trace is the delegate's impairment bookkeeping (unrealizedLosses), which socializes through the exit rate rather than seizing from any lender. Chain-proven: the exit price takes a share count and no address, so under an impairment every holder's claim drops by exactly its pro-rata slice — there is no per-lender term for a loss to be aimed at
A Compound v2 fork newly on Ethereum — mToken balances replayed exactly, debt from emitted balances, no modeled state
Live dashboardOracle USDChain verificationCopy for LLMEvent explainersProtocol views
Liquidation forensics — the liquidation lane is built, but Moonwell Ethereum has had zero liquidations since its 2026-05 deploy — there is nothing yet to show or verify against