This page documents the structural picture: which process runs where, which port talks to which port, and what is on chain vs off chain. For dynamics over time (sessions, MOR flows), see Sessions: stake, close, claim.

Components

Provider AI Model

Any OpenAI-compatible HTTP endpoint (your llama.cpp, vLLM, hosted Venice/OpenAI/Anthropic, etc.). Reachable privately by the provider’s proxy-router.

Provider proxy-router

Listens on :3333 (TCP, public) for consumer connections; :8082 (HTTP, private/admin) for the API and Swagger. Uses models-config.json to map on-chain modelId → backend apiUrl.

Compute Node contracts (BASE)

The Diamond marketplace contract plus the MOR ERC-20 token. The contracts register providers and models, match consumers with providers, and secure connections via verifiable on-chain logic and encryption. Provider/model/bid/session state lives here. See Networks and tokens.

Consumer proxy-router

Same binary, different role. Opens TCP connections to chosen provider’s :3333 and serves a local HTTP API on :8082 for the UI/CLI/agents.

MorpheusUI

Electron desktop GUI. Talks only to the local proxy-router HTTP API.

mor-cli

CLI client over the same local proxy-router HTTP API.

End-to-end flow

Ports and surfaces

PortProcessVisibilityPurpose
3333 (TCP)Provider proxy-routerPublicConsumer-to-provider session and inference traffic
8082 (HTTP)Provider proxy-routerPrivate/adminSwagger, blockchain admin, BasicAuth-protected
8082 (HTTP)Consumer proxy-routerLoopbackLocal API for MorpheusUI / CLI / agents
29343 (HTTPS)TEE-only — SecretVMPublicTDX attestation (/cpu, /gpu, /docker-compose)

What lives on chain vs off chain

On chain (BASE)Off chain
Provider record + endpointBackend model URLs (apiUrl)
Model record + tags (e.g. tee)Prompts and responses
Bid record + pricePerSecondTLS / TCP transport
Session open / close / claimLogging
MOR ERC-20 transfersWallet management UI
Once a session is established, prompts and responses flow peer-to-peer between consumer and provider — they never traverse a Morpheus-operated server. The blockchain only sees session open / close / settle.

Reputation and provider selection

The marketplace tracks per-provider performance (uptime, time-to-first-token, throughput, success rate, posted stake). The consumer-side proxy-router uses these signals to bias session routing toward reliable providers — see rating-config.json for how the weights work and how to override them with an allowlist.