1. Native health (provider → C-Node)
Stamps 4–10 on the wire. Lambda invents only unreachable and unreported.
A consumer node, before it opens a session, has to decide which bids are actually there: ping the provider, read models[], apply health policy, then escrow MOR. active.mor.org does that walk on a timer and publishes three views of the same sweep so the hosted API, NodeNeo, calculators, and humans are not rediscovering the catalog on every request.
See Session lifecycle and nodedocs.
Live files: all_models.json · active_models.json · gateway_models.json
Each layer is a subset of the one above, from the same photograph. RAW is everything ever registered on-chain. ALL drops expired models and bids. ACTIVE drops the ones that are not actually serving (no_model_configured, no_bid, tee_unverified, unhealthy — and unreachable / unreported). GATEWAY drops skipped: only healthy and degraded, plus name aliases. Click the image to enlarge.
Status HTML and sparklines. Never a working catalog. Expired / deleted never even enter ALL.
GATEWAY is a subset of ACTIVE: drop skipped, keep healthy + degraded, then collapse names. Same photograph — an app still picks which layer to consume.
This is the same walk a C-Node does before SESSION_HEALTH_POLICY and escrow, published ~every five minutes so applications built on the network do not repeat it. Files are live on active.mor.org.
| Reader | Should use | Job |
|---|---|---|
| Status HTML / sparklines | ACTIVE (ALL later) | Today still the Active slice. Grey skipped. Full ALL HTML after verification. |
| NodeNeo / C-Node / other apps | ACTIVE (or ALL) | Polled working set. Policy can still refuse skipped or degraded. ALL if you need failures too. |
| Hosted Inference API | GATEWAY | Tested/openable (healthy + degraded) + aliases. Fuse / allowlist / refuse-at-open stay in the API. |
| /network | on-chain + Reported | Lifetime stats joined to this sweep. Do not coalesce that column to unknown. |
Morpheus does not run the inference. Independent providers do; the Diamond on Base coordinates the marketplace. Opening a session is still on-chain escrow — see Session. Live counts and bid prices live on active.mor.org, not here.
The funnel above is the map. These diagrams are dense — click any of them to enlarge, zoom, or go fullscreen. Street-level view: native checker, files the lambda emits, then how the hosted API consumes Gateway.
Stamps 4–10 on the wire. Lambda invents only unreachable and unreported.
RAW → ALL (2–10) → ACTIVE (8–10, incl. skipped) → GATEWAY (9–10 + names). Status HTML still reads the Active slice until a later apply.
Point ACTIVE_MODELS_URL at gateway_* (default) or active_* if the app wants skipped in the list. Cost fuse and allowlist stay in the API.