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.
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
Aave V3's Base deployment — a separate Pool with its own reserves and risk parameters, every wallet's account read whole from the contracts, no modeled state
The Base Pool's full reserve roster — sizes, rates, risk configuration and oracle prices — with every risk parameter decoded from the reserve's own configuration rather than a copied governance table.
Aave V3 on Base is a separate deployment from Aave V3 on Ethereum — its own Pool, its own reserves, its own risk parameters and its own oracle — so a wallet's position on one says nothing about its position on the other, and the two are separate explorers rather than a switch inside one. What sets this explorer apart from the Ethereum one is not what it shows but where each figure comes from. The Ethereum listing is a replay of an indexed event stream; this one is not a replay at all. Every account that ever touched the Pool is found from the Pool's own events, and each row's balances, health factor and dollar values are read from the Pool, its reserve tokens and its oracle at one named block by a chain sweep that revisits accounts with new activity, accounts near liquidation and never-read accounts first, then everything on a rolling schedule. So a listing figure here is a fact the chain stated at a block the row names, never a reconstruction. That is also why the page states its own completeness: the account set comes from a walk of the Pool's history that runs on the Base box and may still be in progress, and the sweep reads a budget of accounts per pass, so the listing says on its face how far each has got rather than letting a partial roster look whole. Opening a position asks the chain for that one wallet's whole history live — Rails sweeps the Pool's own logs for it from the Pool's first block on every request — which is why the timeline reaches the position's genesis rather than a recent window, why the economics tower can state lifetime deposits, withdrawals and the interest inside the debt, and why every timeline states underneath itself which blocks it read and whether any of them would not answer.
Compound V3's Base deployment — five Comets read live, and a wallet's standing in every one of them found by asking each market directly
The five Comets on Base, each with its own base asset, collateral roster, rate curve and reserve line — and one of them reading above 100% utilised, which is what a growing reserve line looks like.
Compound V3 on Base is a separate deployment from Compound V3 on Ethereum — five Comet markets of its own, with their own collateral rosters, their own risk parameters and their own accounts — so the two are separate explorers rather than a switch inside one. A Comet market is single-base and multi-collateral: one asset is both the lend and the borrow side, every collateral asset backs borrowing of that base alone, and nothing is cross-collateralised between markets. So a wallet has a separate standing and a separate liquidation line in each market it touches, and this explorer never states a combined one. It also never totals across them, because they do not all measure in the same unit: four quote in dollars and cWETHv3 quotes in ETH, which is the unit each market's own oracle answers in. That unit is a fact about the market rather than about its base asset — cAEROv3's base is the volatile asset and it still quotes in dollars. What sets this explorer apart from Compound V3 Ethereum's is where each figure comes from, and in one respect it reaches further. The Ethereum listing is a replay of an indexed event stream; this one is not a replay at all: every (market, account) pair that ever held a position is found from the five Comets' own events, and each row's base and collateral are read from that Comet at one named block by a chain sweep, so a listing figure is a fact the chain stated rather than a reconstruction — and the page states its own completeness, how far the history walk and the sweep have each got, rather than letting a partial roster look whole. Opening a row answers the whole wallet at once — every market in the roster asked about the account, and every Comet's own logs swept for the address from the earliest market's first block, so the history reaches each position's genesis rather than a recent window, and the economics tower can state lifetime flows and the interest inside the debt. Comet has no borrow or repay event — a withdrawal past the balance is the borrow and a supply against a negative balance is the repayment — so those flows are read off the running balance's zero crossings, as the protocol itself defines them. Because the sweep runs live rather than out of an index, its completeness is a property of each request rather than of the explorer, so every timeline states underneath itself which blocks it read and whether any of them would not answer. Two facts of this deployment are stated rather than smoothed over: one market's borrows stand above its supplies, which is the borrow index outrunning the supply index by the spread between the two rates rather than a shortfall, and four different proxies on Base answer to the name cUSDCv3, only one of which Compound governance deployed — so the roster here is settled from the Configurator's own deployment log rather than from a name.
A Liquity V2 fork on Base minting BD across five collateral branches — captured from Base directly, each Trove's collateral and debt read straight from events
The same branch surface as Ebisu's, read on Base — each branch's own price, size, TCR and rate span, and the same per-branch link into the listing sorted by rate.
Moonwell's Base deployment — twenty-one markets under one Comptroller, every account's standing read from the contracts themselves, no modeled state
The same surface as Moonwell Ethereum's, over the twenty-one markets Base actually runs — including the two whose supply cap now sits below what they hold, which is how governance closes a market to new deposits.
Moonwell is a Compound v2 fork, and Base is where it actually runs: twenty-one markets against Ethereum's four, and tens of millions supplied against a few million. The two are separate deployments with separate contracts, so they are separate explorers rather than a switch inside one — a wallet's position on Base says nothing about its position on Ethereum. What sets this explorer apart from Moonwell Ethereum's is where each figure comes from. The Ethereum listing is a replay of an indexed event stream; this one is not a replay at all. Every wallet that ever held a position is found from the twenty-one markets' own events on the Base box — with a routed mint or redeem resolved to its real owner through the same-transaction transfer leg, the way the Ethereum index does it — and each row's balances, debt, exchange rates and dollar values are read from the mTokens, the Comptroller and its own oracle at one named block by a chain sweep that revisits accounts with new activity and never-read accounts first, then everything on a rolling schedule. So a listing figure here is a fact the chain stated at a block the row names, never a reconstruction, and the page states its own completeness — how far the history walk and the sweep have each got — rather than letting a partial roster look whole. Opening a position asks the chain for that one wallet's whole history live, though not in the way it is cheap on Aave: a Compound v2 market indexes nothing on its own events, so Rails anchors on the reward distributor — the one contract on this deployment that names the account on every action — and reads each transaction it names, from the Comptroller's first block, on every request. That is why the timeline reaches the position's genesis rather than a recent window, why the economics tower can state lifetime deposits, withdrawals and the interest inside the debt, and why the account surface can say which of a wallet's supplies are actually entered as collateral (minting alone does not enter a market, and an un-entered supply backs nothing) beside the Comptroller's own verdict on how far it sits from liquidation. Because the sweep runs live rather than out of an index, its completeness is a property of each request rather than of the explorer, so every timeline states underneath itself which blocks it read, whether any of them would not answer, and — on an account with more transactions than one request reads — from which date onward its history is drawn. Two facts of this deployment are stated rather than smoothed over: two markets carry a supply cap BELOW what they already hold, which is governance closing them to new deposits rather than a ceiling being breached, and two different markets both answer to the mToken symbol "mUSDC" (the bridged and the native USDC), so only an address identifies a market here.
Morpho Blue's Base deployment — 4,243 isolated markets, every borrower position across them listed, and a wallet's whole standing found by asking the singleton directly
Loan-token units by design — Morpho Blue has no USD oracle
The same surface over Base's 4,243 markets — two and a half times Ethereum's roster, and the same nine loan-to-values across all of it.
Morpho Blue is one immutable singleton, deployed to the same address on Base as on Ethereum — so what separates these two explorers is not the contract but the markets. A Blue market is a parameter tuple, not a deployment, and Base carries 4,243 of them against Ethereum's 1,648, with disjoint positions. Everything the Ethereum explorer says about the protocol's shape holds here: each market measures in its own loan token with no dollar anywhere, its single loan-to-value is both the borrow limit and the liquidation line, and its totals are the last-settled balance rather than the balance now, because Blue accrues only when a market is touched. What is different is how the explorer finds anything. Blue will not enumerate itself — a position is a slot you can only read with a market id already in hand, and there is no per-user or per-market list — so the roster is censused from the CreateMarket log and shipped as data, complete as of the census block stated on every surface. Having every id is what lets this explorer open on a wallet rather than on a market: it asks the singleton about all 4,243 markets at once and finds every position the wallet holds, which the Ethereum explorer answers from its index instead. The sweep is exact rather than a sample, so an obscure market hides nothing. Behind each position the explorer then reads the wallet's whole history from the singleton's own logs — every event naming it since the contract's first block, replayed per market into the same cards, economics tower and liquidation forensics the Ethereum explorer draws from its index — and the replayed shares are checked against the live slots to the wei before a card stands on them. What is missing is the discovery listing of every borrower: one wallet's life is a cheap question of the chain, but enumerating every position is a different one, and answering it needs an index.
An Aave V3 fork on Base, frozen since April 2025 — every position read whole from the contracts, and none of them can grow
The full reserve roster of a market that is closing — eighteen reserves, every one of them carrying the frozen bit, with the sizes, rates and risk parameters the Pool still enforces on what is left.
Seamless is an Aave V3 fork on Base, verified as one by interface rather than by reputation: its Pool answers the identical account, reserve and configuration calls, which is what lets the same reader serve it. So the model is Aave's — one Pool, one cross-collateralised account per wallet, one health factor — and everything the Aave V3 Base explorer says about reading risk off each reserve's own configuration word holds here too. What is different is that this market is closed. All eighteen reserves were frozen in a single block on 15 April 2025, which is one governance action rather than a market fading asset by asset, and the freeze was read off the chain by binary search over the frozen bit rather than taken from an announcement. A frozen reserve still accrues interest, still liquidates, and still lets a holder repay and withdraw; what it will not accept is a new supply or a new borrow. So every rate and threshold this explorer shows is live and enforced, and none of it is an invitation — which is why the surfaces say so rather than leaving a reader to infer it from a borrow APR on a market nobody can borrow from. The listing here is not a replay: every account that ever touched the Pool is found from the Pool's own events, and each row's balances, health factor and dollar values are read from the Pool, its reserve tokens and its oracle at one named block by a chain sweep, so a listing figure is a fact the chain stated rather than a reconstruction — and the page states on its face how far the history walk and the sweep have each got, rather than letting a partial roster look whole. The census has an unusual shape here, and it is worth naming: because the Pool is frozen, the set of accounts that can ever hold a position on it is closed and can only shrink, so once taken it stays complete rather than going stale. That is true of no other explorer on this roster. Opening a position asks the chain for that one wallet's whole history live — Rails sweeps this Pool's own logs from its first block on every request — which is why the timeline reaches the position's genesis rather than a recent window.
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
Aave V3's Base deployment — a separate Pool with its own reserves and risk parameters, every wallet's account read whole from the contracts, no modeled state
Live dashboardOracle USDCopy for LLMEvent explainersLiquidation forensicsProtocol views
A Liquity V2 fork on Base minting BD across five collateral branches — captured from Base directly, each Trove's collateral and debt read straight from events
Live dashboardOracle USDCopy for LLMEvent explainersProtocol views
Chain verification — the fork verification script reads one mainnet RPC with no chain parameter, so it cannot yet re-derive Basedollar's Base contracts — the lane is the same, the harness is not
Liquidation forensics — Basedollar liquidations would render token-only: the per-block branch-price capture that values seized collateral is a mainnet filler with no Base counterpart yet. None have fired so far either
Morpho Blue's Base deployment — 4,243 isolated markets, every borrower position across them listed, and a wallet's whole standing found by asking the singleton directly
Live dashboardEvent explainersLiquidation forensicsProtocol views
Oracle USD — loan-token units by design — Morpho Blue has no USD oracle