The Recursion Map: Concentration Is the Input, Not the Risk

On 15 June 2026, Philidor's breach materialization (observed 17:38 UTC) reports a single Morpho market on Arbitrum — 42161-0x9e90…7709 — carrying $41.43M of borrowing against $49,172 of collateral, three positions, liquidation-LTV 0.915. Its implied health factor is about 0.001. The model classifies the full $41.43M as certain-liquidatable at every shock level it tests, and the breach surface carries it unchanged through every materialization we observed that day.

That market is the whole argument in miniature, so begin with what it is not about. On-chain credit is concentrated — most of roughly $42B is USDC, on Ethereum, under a handful of curators — and that concentration is a named, bounded exposure, visible on every position. It is the input to the risk question. The question is what the concentrated book resolves to when you trace its dependencies, and whether the debt the model calls liquidatable actually clears. This note measures both, and reports each number with the endpoint, timestamp, snapshot, and formula behind it, because the claims are only worth as much as their provenance.

Concentration is the input (stipulated)

For the record, in four numbers, then we move on. None of this should surprise anyone who allocates on-chain.

86%
of TVL on Ethereum
$36.7B of ~$42.3B
82%
in two protocols
Aave + Spark
184
vaults — direct USDC
of ~817; next asset: 48
~92%
of curated TVL, 3 curators
Steakhouse ~45%

Each line is a named exposure — visible, sizeable, deliberately worn. The rest of this note is about the exposure that is not named on the position: what the collateral resolves to one or more hops down, and what happens when the model says a position should be closed and it isn't.

Reading the dependency graph

Philidor's look-through graph resolves a vault to the underlying assets its collateral represents, following wrapper and backing edges to their leaves and recording the oracle each leaf depends on. Results are addressed by a content-addressed snapshotId, so a resolution is reproducible as of a point in time rather than recomputed per request. The figures below are from snapshot 7e467750…, built 2026-06-15 18:14 UTC, over a 48-vault sample (keys and formula in the appendix).

Resolution does real work. A single Aave vault resolves not to one asset but to its full collateral set, and within that set the graph follows backing edges where the data supports it:

Figure 1One vault, resolved (Aave, chain 1)
FieldValue
Vault1:0xec4ef66d…
Resolved leavesWBTC, USDe, wstETH, sUSDe, USDC, WETH, USDtb, cbBTC, weETH, USDT, osETH
Backing ancestry resolvedUSDtb → BUIDL
Closed cycles0
Source: Philidor /v1/graph/look-through, snapshot 7e467750…, 2026-06-15

Two things are true at once. The resolution is real — USDtb is followed to BUIDL, the tokenized fund it is backed by, rather than left as a label. And the resolution is incomplete — wstETH, weETH, sUSDe, USDe, and osETH appear as terminal leaves, though each is itself a claim on something else (staked ETH, a restaking position, a synthetic-dollar book). The graph has not yet resolved those chains. That is a limit worth stating plainly rather than papering over: the resolved view is a lower bound on recursion, not a complete one.

Even at that lower bound, the derivative share is material. Across the 48 sampled vaults, collateral that is itself a wrapped, staked, restaked, or synthetic claim — not a base asset — accounts for about 23% of resolved exposure ($8.0B of $34.8B in the sample; the keys, classification set, and formula are in the appendix). No closed cycles (collateral resolving back to a vault already in the path) appear in this snapshot; the recursion here is depth, not loops. Whether that holds as the graph resolves the staking and synthetic chains is an open question, and the honest answer is that we do not yet know.

A market the model calls liquidatable — that hasn't cleared

Return to the Arbitrum market. Here is what the materialization contains, and what is derived from it.

Figure 2Liquidation-failure candidate (Morpho, Arbitrum)
FieldValueSource
Market42161-0x9e90…7709breach.topMarkets
Borrow$41,428,197observed
Collateral$49,172 (≈0.01% of borrow)observed
Positions / LLTV3 / 0.915observed
Liquidatable [lo, hi] @ 5/10/25%[full, full] — certainbreach kernel
Health factor≈ 0.001 = (49,172 × 0.915) / 41,428,197derived
Liquidation incentive (LIF)≈ 2.6% = 1/(0.3 × 0.915 + 0.7)derived, Morpho LIF
Source: Philidor /v1/graph/breach, observed 2026-06-15 17:38 UTC; LIF and HF derived per Morpho docs

The breach kernel is certain about this one: lower and upper bounds are equal at every shock, because the collateral is priced and the health factor is far below 1. So it is unambiguously eligible for liquidation — and the breach surface carries it, unchanged, through every materialization we observed on 15 June. The reason is mechanical, not behavioral. There is $49,172 of collateral behind $41.43M of debt. A liquidator can seize the collateral, repaying roughly an equal amount of debt at the ~2.6% incentive Morpho's formula implies for this LLTV, and that clears about $49K. The remaining ~$41.4M has no collateral behind it at all. It is not a missed liquidation; it is uncollateralized bad debt, which liquidation cannot resolve and a write-down must (Morpho: managing bad debt).

This is the precise meaning of the model's own disclaimer that liquidatable-debt bounds are not loss estimates. The bound says $41.43M is liquidatable. The loss — the uncollateralized portion — is a different quantity the breach kernel does not compute, because it depends on collateral depth and the liquidation incentive, which are out of its scope.

Outside this model, and required to close the case: the collateral and loan token identities, the oracle, and the on-chain liquidation history (whether the $49K is residual after a partial liquidation or original, and whether the debt has been socialized). The claim here is only what the breach surface shows — the debt remains uncleared across the materializations we observed. All of the above are resolvable on-chain from the market id, and that resolution — not more prose — is the next step.

How the bounds are built, and why the range is wide

The breach kernel is public and small. For a relative collateral shock s, a position is liquidatable when its health factor falls below 1/(1 − s). Debt is bucketed into health-factor bands, giving deterministic bounds rather than a point estimate:

  • lo = debt in bands entirely below the threshold (certain to be liquidatable),
  • hi = lo + the band straddling the threshold + unknown-collateral debt.

That last term is the important one. When a position's collateral cannot be priced, its health factor is not evidence — so the kernel routes that debt to an unknown band that can raise only the upper bound, never the certain lower bound. The code is explicit about why, citing a live case: "an imposter market reported HF 0.05 with $3.7B debt and null collateralUsd … such debt goes to 'unknown' … it can inflate only the hi bound."

This is exactly what produces the surface's most eye-catching row: a market reporting $762.8M of borrow against $0.10 of collateral, with liquidatable bounds of [$0, $762.8M] at every shock. The lower bound is zero because the model will not certify unpriceable debt as liquidatable; the upper bound is the whole amount because, worst case, all of it is. Most of the gap between the low and high figures on the live surface below is this unknown-collateral debt — the model declining to assert what it cannot price, rather than a forecast.

Loading breach surface…

The surface is live and current; it will not match the figures quoted above exactly, and that is the point of separating frozen citations from live state. Read the spread between the low and high columns as a measure of how much of the book the model cannot yet price, not as a confidence interval on a loss.

On recursion as a live signal

The dependency argument has a real-time face. The incident feed continuously registers wrapped and principal tokens depegging alongside their underlyings — one exposure, surfaced at each layer. To cite it as evidence we freeze specific events by id rather than lean on the rolling feed: at 2026-06-15 18:12:26 UTC the feed recorded apxUSD at $0.9571 (−4.3%, event 7573821) and, in the same reading, PT-apxUSD-18JUN2026 — the Pendle principal token that resolves to apxUSD — at $0.9562 (−4.4%, event 7573822). The co-movement is mechanical: the principal token is a claim on the underlying, so it cannot durably diverge from it. The live feed below shows the current state of the same pattern, not evidence for that frozen sentence.

Loading events…

What would make this wrong

A research note should say what would falsify it. For this one:

  • The stranded market may already be partly resolved. If the $49K collateral is residual after a partial liquidation, or the debt has been socialized, the picture is more advanced than "uncleared." We have not resolved the on-chain liquidation history; the only claim made here is that the debt persists in the breach surface across the materializations we observed. On-chain resolution of the market id settles it.
  • The 23% derivative share is sample- and snapshot-specific. It is computed over 48 vaults in one snapshot, weighted by a few large vaults. A full-universe pass could move it materially in either direction.
  • Resolved exposure is a lower bound. Because the graph leaves staking and synthetic wrappers terminal, it understates recursion. The direction of that bias is known; its size is not.
  • Breach coverage is partial. The surface is Morpho borrower books only; health-factor bands lose intra-band precision; oracle edges in the look-through sample are sparsely populated.

Each of these is a measurement to run, not a rhetorical hedge. The point of publishing the snapshot ids, keys, and formulas is that a reader — or we, next week — can run them.

Provenance

Figure 3Every figure, traced
MetricEndpointStampMaturity
Universe concentration/v1/stats, /v1/chains, /v1/protocols, /v1/curators, /v1/assetsobserved 2026-06-15production
Resolved leaves, ancestry, cycles, 23% share/v1/graph/look-throughsnapshot 7e467750…, built 18:14 UTCpreview
Liquidatable [lo, hi]; underwater; the two markets/v1/graph/breachobserved 17:38 UTC, params 08:48 UTCpreview
Frozen depeg co-movement/v1/events (ids 7573821, 7573822)recorded 18:12:26 UTClive feed, frozen citation
HF, LIFderivedMorpho documented formulasderivation
Source: Philidor production API, 2026-06-15

Breach bounds are liquidatable-debt ranges, not loss estimates; loss depends on liquidation incentive, close factor, and market depth, which are outside the current kernel. Curator attribution is the curated (Morpho) segment, not protocol-governed venues. Figures are a snapshot of a moving system; the ids above are how to reproduce or refute them.

Appendix — reproducing the 23% derivative share

The look-through endpoint serves the latest snapshot, so re-running returns the current snapshot's value; the method reproduces, the exact figure is as-of the snapshot below. As observed:

  • Snapshot: 7e467750b933b456f561eac136f8995c3199f1ed0da98691c44cc0db5c6b2528, built 2026-06-15 18:14:23 UTC.
  • Query: GET /v1/graph/look-through?vaults=<the 48 keys below> (chain-1 vaults).
  • Derivative classification set (symbols counted as wrapped / staked / restaked / synthetic, plus any leaf whose symbol begins with PT-). Present in this sample: USDe, USDtb, osETH, rsETH, sUSDe, weETH, wstETH.
  • Formula: share = Σ usdExposure[leaf ∈ derivative set] / Σ usdExposure[all resolved leaves].
  • As observed: 8,016,661,175 / 34,844,924,956 = 23.0%.
1:0xa3931d71877c0e7a3148cb7eb4463524fec27fbd, 1:0x4d5f47fa6a74757f35c14fd3a6ef8e3c9bc514e8,
1:0x23878914efe38d27c4d67ab83ed1b93a74d4086a, 1:0x12b54025c112aa61face2cdb7118740875a566e9,
1:0x5ee5bf7ae06d1be5997a1a72006fe6c607ec6de8, 1:0xbdfa7b7893081b35fb54027489e2bc7a38275129,
1:0x98c23e9d8f34fefb1b7bd6a91b7ff122f4e16f5c, 1:0x0b925ed163218f6662a35e0f0371ac234f9e9371,
1:0xe2e7a17dff93280dec073c995595155283e3c372, 1:0x5c647ce0ae10658ec44fa4e11a51c96e94efd1dd,
1:0x2d62109243b87c4ba3ee7ba1d91b0dd0a074d7b1, 1:0x59cd1c87501baa753d0b5b5ab5d8416a45cd71db,
1:0xe7df13b8e3d6740fe17cbe928c7334243d86c92f, 1:0xc02ab1a5eaa8d1b114ef786d9bde108cd4364359,
1:0x4f5923fc5fd4a93352581b38b7cd26943012decf, 1:0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640,
1:0x28b3a8fb53b741a8fd78c0fb9a6b2393d896a43d, 1:0xc3d688b66703497daa19211eedff47f25384cdc3,
1:0x19b3cd7032b8c062e8d44eacad661a0970dd8c55, 1:0xb576765fb15505433af24fee2c0325895c559fb2,
1:0x4579a27af00a62c0eb156349f31b345c08386419, 1:0x4dedf26112b3ec8ec46e7e31ea5e123490b05b8b,
1:0xbc65ad17c5c0a2a4d159fa5a503f4992c7b545fe, 1:0x8ad599c3a0ff1de082011efddc58f1908eb6e6d8,
1:0x83f20f44975d03b1b09e64809b757c47f942beea, 1:0x4e68ccd3e89f51c3074ca5072bbac773960dfa36,
1:0xa9d4ecebd48c282a70cfd3c469d6c8f178a5738e, 1:0x6dc58a0fdfc8d694e571dc59b9a52eeea780e6bf,
1:0x927709711794f3de5ddbf1d176bee2d55ba13c21, 1:0xe3190143eb552456f88464662f0c0c4ac67a77eb,
1:0x3afdc9bca9213a35503b077a6072f3d0d5ab0840, 1:0xcbcdf9626bc03e24f779434178a73a0b4bad62ed,
1:0x4197ba364ae6698015ae5c1468f54087602715b2, 1:0x65906988adee75306021c417a1a3458040239602,
1:0x00907f9921424583e7ffbfedf84f92b7b2be4977, 1:0x99ac8ca7087fa4a2a1fb6357269965a2014abc35,
1:0xfe6eb3b609a7c8352a241f7f3a21cea4e9209b8f, 1:0x10ac93971cdb1f5c778144084242374473c350da,
1:0xc035a7cf15375ce2706766804551791ad035e0c2, 1:0xb3973d459df38ae57797811f2a1fd061da1bc123,
1:0x08b798c40b9ab931356d9ab4235f548325c4cb80, 1:0xec4ef66d4fceeba34abb4de69db391bc5476ccc8,
1:0x018008bfb33d285247a21d44e50697654f754e63, 1:0x4585fe77225b41b697c938b018e2ac67ac5a20c0,
1:0x779224df1c756b4edd899854f32a53e8c2b2ce5d, 1:0xc21b08c16458202593d4d9b26b9984ee67b38bbd,
1:0xbeef01735c132ada46aa9aa4c54623caa92a64cb, 1:0xbeefc1cdafc5b4a649b54d07afc6bf0f75c6f4e2

References