# How It Works

OpenGPU operates through two core concepts: **Sources** and **Tasks**.

## Sources

A Source is an execution environment: a Docker container configuration that defines what computation can run.

**Source includes:**

* Docker image(s) for different hardware (CPU, NVIDIA, AMD)
* Minimum payment requirements
* Maximum execution duration
* Hardware requirements
* Delivery method (First Response or Manual Confirmation)

Clients publish Sources. Providers register for Sources they want to support, becoming potential servers ready to execute tasks from that Source.

## Tasks

A Task is a computational job published to a Source.

**Task includes:**

* Reference to a Source
* Configuration/parameters (JSON)
* Payment amount (in $OGPU)
* Expiry time

## The Flow

### 1. Source Setup

```
Client publishes Source
    │
    ▼
Source contract deployed on-chain
    │
    ▼
Providers discover Source
    │
    ▼
Providers register & download container(s)
    │
    ▼
Providers ready to execute tasks
```

### 2. Task Execution

```
Client publishes Task (payment locked in escrow)
    │
    ▼
Task contract deployed on-chain
    │
    ▼
Registered providers compete
    │
    ├─► First Response: Race to complete first
    │
    └─► Manual Confirmation: Bid with suggested payment
    │
    ▼
Provider executes in Docker container
    │
    ▼
Response submitted on-chain
    │
    ▼
Payment released to provider
```

## Delivery Methods

### First Response

* Speed-based competition
* First valid response wins full payment
* Automatic confirmation
* Best for: time-sensitive tasks

### Manual Confirmation

* Price-based competition
* Providers suggest lower payments to win
* Client reviews and confirms preferred response
* Best for: cost optimization, quality review

> See [For Clients](/opengpu-network/for-clients/overview.md) to start publishing.
>
> See [For Providers](/opengpu-network/for-providers/overview.md) to start earning.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://opengpu-network.gitbook.io/opengpu-network/ecosystem/how-it-works.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
