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

# Orchestrator Offerings Reference

> Reference: Orchestrator Offerings & Discovery

Orchestrators publish their offerings through the `OrchestratorInfo` data structure

```protobuf theme={"theme":{"light":"github-light","dark":"dark-plus"}}
message OrchestratorInfo {
    string transcoder = 1;           // Service URI
    TicketParams ticket_params = 2;   // Payment parameters
    PriceInfo price_info = 3;         // Pricing information
    bytes address = 4;               // ETH address
    Capabilities capabilities = 5;    // Supported features
    AuthToken auth_token = 6;         // Authentication
    repeated HardwareInformation hardware = 7;  // Hardware specs
    repeated OSInfo storage = 32;     // Storage options
    repeated PriceInfo capabilities_prices = 33;  // AI model pricing
}
```

### Registration Process

Orchestrators register on-chain via the `activateOrchestrator` endpoint

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
# Required parameters for registration
-blockRewardCut=5.0
-feeShare=10.0
-pricePerUnit=1000
-pixelsPerUnit=1000000000000
-serviceURI=https://orchestrator.example.com:8935
```

## What is Published

### 1. Service Capabilities

Orchestrators declare their processing capabilities through the `Capabilities` system

* **Video Transcoding**: Format conversion, bitrate adaptation
* **AI Processing**: Text-to-image, image-to-video, upscaling, etc.
* **Live AI**: Real-time video-to-video processing

### 2. Pricing Information

Two-tier pricing structure

* **Base Pricing**: Per-pixel rates for transcoding (`-pricePerUnit`)
* **Capability Pricing**: Per-model AI pricing (`-maxPricePerCapability`)

### 3. Hardware Specifications

Detailed hardware info for performance matching

```go theme={"theme":{"light":"github-light","dark":"dark-plus"}}
type HardwareInformation struct {
    Pipeline string                    // GPU pipeline info
    ModelId  string                    // AI model identifier
    GpuInfo  map[string]*GPUComputeInfo // GPU specifications
}
```

## Discovery Mechanisms

### 1. Direct Discovery

Gateways specify orchestrators directly

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
-orchAddr=https://orch1.example.com:8935,https://orch2.example.com:8935
```

### 2. Webhook Discovery

Dynamic discovery via external service

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
-orchWebhookUrl=https://discovery.example.com/orchestrators/portal
```

### 3. On-Chain Discovery

Automatic discovery of registered orchestrators

* Queries blockchain for active orchestrators
* Caches results in local database
* Polls for updates periodically

### 4. Network Capabilities API

RESTful discovery endpoint

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
GET /getNetworkCapabilities
```

Returns:

```json theme={"theme":{"light":"github-light","dark":"dark-plus"}}
{
  "capabilities_names": {...},
  "orchestrators": [
    {
      "address": "0x...",
      "localAddress": "0x...",
      "orchURI": "https://...",
      "capabilities": {...},
      "capabilities_prices": [...],
      "hardware": [...]
    }
  ]
}
```

## Selection Process

### Gateway Selection Logic

Gateways select orchestrators based on a multi-factor scoring algorithm

1. **Capability Matching**: Required features supported
2. **Price Constraints**: Within maximum price limits
3. **Performance Scores**: Historical performance metrics
4. **Blacklist Filtering**: Exclude problematic orchestrators
5. **Latency Considerations**: Network proximity

### Selection Algorithm

The discovery system uses a multi-factor scoring algorithm

* **Random Factor** (`-selectRandFreq`): Prevents centralisation
* **Stake Weight** (`-selectStakeWeight`): Considers LPT stake
* **Price Weight** (`-selectPriceWeight`): Favors competitive pricing

## Marketplace Monitoring

### CLI Tools

Discovery and monitoring via `livepeer_cli`

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
livepeer_cli
# Select "Set broadcast config" to see market rates
# View available orchestrators and pricing
```

### HTTP Endpoints

Real-time marketplace data

* `/registeredOrchestrators` - All on-chain orchestrators
* `/orchestratorInfo` - Specific orchestrator details
* `/getNetworkCapabilities` - Available services and pricing
