Shared catalog photograph · accelerator for apps

Walk the network once — pick ALL, ACTIVE, or GATEWAY

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.

Your C-Node · per session

Still the thing that opens

  • Pings providers and reads self-report when you ask it to route.
  • SESSION_HEALTH_POLICY decides whether skipped / missing reports are attempted.
  • Opening a session escrows MOR. It does not spend it. Unused returns on close.
  • There is no recover RPC. Close is the recovery path.

See Session lifecycle and nodedocs.

active.mor.org · ~every 5 minutes

The shared photograph

  • Sweeps registered providers, fetches open bids, stamps each bid honestly.
  • Publishes three views of the same sweep so an app can pick: ALL, ACTIVE, or GATEWAY.
  • Does not open sessions, hold MOR, or run inference. Independent providers still do that.
  • Lets a hosted API skip knocking on ghosts. Lets NodeNeo keep skipped for policy. Lets a human see why a bid is not listed.

Live files: all_models.json · active_models.json · gateway_models.json

The funnel

RAW → ALL → ACTIVE → GATEWAY

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.

Stay on ALL (ops)
2 unreachable 3 unreported 4 no_model_configured 5 no_bid 6 tee_unverified 7 unhealthy

Status HTML and sparklines. Never a working catalog. Expired / deleted never even enter ALL.

Narrows to GATEWAY
8 skipped stays on ACTIVE 9 degraded 10 healthy

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.

Who reads which layer
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.

What this is not

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.

Three close-ups

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.

1. Native health (provider → C-Node)

Stamps 4–10 on the wire. Lambda invents only unreachable and unreported.

2. Files on active.mor.org

RAW → ALL (2–10) → ACTIVE (8–10, incl. skipped) → GATEWAY (9–10 + names). Status HTML still reads the Active slice until a later apply.

3. Hosted API (api.mor.org)

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.

Scroll to pan · Esc closes