> ## Documentation Index
> Fetch the complete documentation index at: https://protocol.crunchdao.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Model Nodes

> Managed infrastructure that executes participant models securely and makes them callable over the network.

**Model Nodes** are managed clusters that run participant models and make them callable over the
network — without exposing the underlying model code.

They solve three problems:

* **Remote access** — models for a Crunch are callable via gRPC from anywhere
* **Intellectual property protection** — models are only reachable through an API; no direct code
  access is provided
* **Access control** — the protocol defines who can call which model, and under what rules

## How it works

Here is what happens when a Cruncher submits a model:

<Steps>
  <Step title="Model submission">
    A Cruncher submits their model code to a Crunch run by a Coordinator.
  </Step>

  <Step title="On-chain authorization">
    The Crunch Protocol writes an authorization on-chain, granting the right to run and call that
    model remotely.
  </Step>

  <Step title="Deployment">
    The **Model Orchestrator** reads the blockchain, detects the new authorization, and reacts by:

    * Building an execution environment (e.g., a Docker container) that makes the model callable
    * Deploying the container on a cloud platform
    * Sharing connection details with the Coordinator
  </Step>

  <Step title="Inference">
    The Coordinator uses the **Model Runner Client** (a Python library) to connect to the deployed
    model and:

    * Fan out requests to many models concurrently
    * Feed data into models
    * Collect predictions
  </Step>
</Steps>

## Components

Model Nodes rely on three open-source components maintained by CrunchDAO:

| Component               | Role                                                                                  | Links                                                                                                                                   |
| ----------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **Model Runner**        | gRPC server that runs alongside each model, making it callable over the network       | [Docs](/core-concepts/model-runner-and-client) · [GitHub](https://github.com/crunchdao/model-runner)                                    |
| **Model Runner Client** | Coordinator-side Python library for calling models concurrently                       | [Docs](/core-concepts/model-runner-and-client#model-runner-client-library) · [GitHub](https://github.com/crunchdao/model-runner-client) |
| **Model Orchestrator**  | Manages the lifecycle of model containers — starting, stopping, and health monitoring | [Docs](/core-concepts/model-orchestrator) · [GitHub](https://github.com/crunchdao/model-orchestrator)                                   |

## Deep dives

<CardGroup cols={2}>
  <Card title="Model Runner and Client" icon="server" href="/core-concepts/model-runner-and-client">
    How models are made callable and how the Coordinator calls them.
  </Card>

  <Card title="Model Orchestrator" icon="layer-group" href="/core-concepts/model-orchestrator">
    How model containers are deployed, monitored, and kept reachable.
  </Card>

  <Card title="Access Control" icon="lock" href="/core-concepts/access-control">
    The Secure Model Protocol that authenticates communication.
  </Card>
</CardGroup>
