-
-### In a Frame
-
-
-
-
diff --git a/snippets/components/_archive/folders/display-examples/quote-examples.mdx b/snippets/components/_archive/folders/display-examples/quote-examples.mdx
deleted file mode 100644
index 99c32bb0b..000000000
--- a/snippets/components/_archive/folders/display-examples/quote-examples.mdx
+++ /dev/null
@@ -1,95 +0,0 @@
----
-title: "Quote Components Examples"
-description: "Examples of using Quote and FrameQuote components"
----
-
-import { Quote, FrameQuote } from "/snippets/components/content/quote.jsx";
-
-## Quote
-
-A simple styled quote component with accent color styling.
-
-### Basic Usage
-
-
- "The future of video is decentralized, open, and accessible to everyone."
-
-
-### Longer Quote
-
-
- "Livepeer is building the world's open video infrastructure. By creating a decentralized network for video processing, we're making professional-quality video streaming accessible to creators and developers everywhere."
-
-
----
-
-## FrameQuote
-
-A more advanced quote component with author attribution, source links, and frame styling.
-
-### Basic Quote with Author
-
-
- "Livepeer's mission is to build the world's open video infrastructure."
-
-
-### With Source and Link
-
-
- "The combination of AI and video infrastructure opens up incredible possibilities for creators and developers alike."
-
-
-### Left Aligned Attribution
-
-
- "The documentation has been incredibly helpful in getting started with the network."
-
-
-### Center Aligned Attribution
-
-
- "Integration was straightforward and the API is well-designed."
-
-
-### Without Frame
-
-
- "Sometimes you just want a clean quote without the frame styling."
-
-
-### With Custom Border Color
-
-
- "Building the future of decentralized video, one block at a time."
-
-
-### Multiple Quotes in a Grid
-
-
-
- "Easy to integrate and well documented."
-
-
-
- "Performance has been excellent in production."
-
-
diff --git a/snippets/components/_archive/folders/display-examples/zoomable-diagram-examples.mdx b/snippets/components/_archive/folders/display-examples/zoomable-diagram-examples.mdx
deleted file mode 100644
index 025b74d88..000000000
--- a/snippets/components/_archive/folders/display-examples/zoomable-diagram-examples.mdx
+++ /dev/null
@@ -1,260 +0,0 @@
----
-title: "ScrollableDiagram Component Examples"
-description: "Examples of using the ScrollableDiagram component for interactive diagrams"
----
-
-import { ScrollableDiagram } from "/snippets/components/content/zoomableDiagram.jsx";
-
-## Basic Usage
-
-
-
{`
- graph LR
- A[Video Upload] --> B[Validation]
- B --> C[Queue]
- C --> D[Transcoding]
- D --> E[Quality Check]
- E --> F{Pass?}
- F -->|Yes| G[Storage]
- F -->|No| D
- G --> H[CDN Distribution]
- H --> I[Playback]
- `}
-
-
- **Props**: `title`, `subtitle`, `description`, `children`, `titleColor`, `subtitleColor`, `descriptionColor`
- **Defaults**: None
-
-
-```jsx lines Example
-import { PageHeader } from "/snippets/components/display/frame-mode.jsx";
-
-"}
- subtitle={""}
- description={""}
- titleColor={""}
- subtitleColor={""}
- descriptionColor={""}
-/>
-```
-
-
-
-
-
-## Tableau de recherche
-Recherchez par catégorie, chemin de page ou nom de composant.
+## 查找表
+按类别、页面路径或组件名称搜索。
**Generation Script**: This file is generated from script(s): `tools/scripts/generate-docs-guide-components-index.js`.
**Purpose**: Aggregate inventory of repository components from snippets/components for docs-guide maintenance.
@@ -927,68 +919,41 @@ import { DynamicTable } from "/snippets/components/wrappers/tables/Table.jsx";
```jsx lines Example
import { StyledTable } from "/snippets/components/wrappers/tables/Tables.jsx";
-
```
-
- **Props**: No explicit props detected from signature.
- **Defaults**: No explicit defaults detected.
+
+ **Props**: `children`, `align`, `header`, `style`
+ **Defaults**: `align="left"`, `header=false`, `style={}`
```jsx lines Example
import { TableCell } from "/snippets/components/wrappers/tables/Tables.jsx";
-
-```
-
-
-
- **Props**: No explicit props detected from signature.
- **Defaults**: No explicit defaults detected.
-
-
-```jsx lines Example
-import { ReviewCallout } from "/snippets/components/elements/callouts/PreviewCallouts.jsx";
-
-
-```
-
-
-
-
-
- **Props**: `size`, `gap`, `justify`, `color`
- **Defaults**: `size=20`, `gap="0.75rem"`, `justify="center"`
-
-
-```jsx lines Example
-import { SocialLinks } from "/snippets/components/primitives/socialLinks.jsx";
-
-"}
+
```
-
-
-
- **Props**: `size`, `direction`
- **Defaults**: `size="1rem"`, `direction="vertical"`
+
+ **Props**: `children`, `header`, `hover`, `style`
+ **Defaults**: `header=false`, `hover=false`, `style={}`
```jsx lines Example
import { TableRow } from "/snippets/components/wrappers/tables/Tables.jsx";
-
```
diff --git a/v2/_workspace/archive/language-pages/fr/docs-guide/x-deprecated/catalog/components-catalog-archive.mdx b/v2/_workspace/archive/language-pages/fr/docs-guide/x-deprecated/catalog/components-catalog-archive.mdx
index 58d7ced6b..4dd210198 100644
--- a/v2/_workspace/archive/language-pages/fr/docs-guide/x-deprecated/catalog/components-catalog-archive.mdx
+++ b/v2/_workspace/archive/language-pages/fr/docs-guide/x-deprecated/catalog/components-catalog-archive.mdx
@@ -919,68 +919,41 @@ import { DynamicTable } from "/snippets/components/wrappers/tables/Table.jsx";
```jsx lines Example
import { StyledTable } from "/snippets/components/wrappers/tables/Tables.jsx";
-
```
-
- **Props**: No explicit props detected from signature.
- **Defaults**: No explicit defaults detected.
+
+ **Props**: `children`, `align`, `header`, `style`
+ **Defaults**: `align="left"`, `header=false`, `style={}`
```jsx lines Example
import { TableCell } from "/snippets/components/wrappers/tables/Tables.jsx";
-
-```
-
-
-
- **Props**: No explicit props detected from signature.
- **Defaults**: No explicit defaults detected.
-
-
-```jsx lines Example
-import { ReviewCallout } from "/snippets/components/elements/callouts/PreviewCallouts.jsx";
-
-
-```
-
-
-
-
-
- **Props**: `size`, `gap`, `justify`, `color`
- **Defaults**: `size=20`, `gap="0.75rem"`, `justify="center"`
-
-
-```jsx lines Example
-import { SocialLinks } from "/snippets/components/primitives/socialLinks.jsx";
-
-"}
+
```
-
-
-
- **Props**: `size`, `direction`
- **Defaults**: `size="1rem"`, `direction="vertical"`
+
+ **Props**: `children`, `header`, `hover`, `style`
+ **Defaults**: `header=false`, `hover=false`, `style={}`
```jsx lines Example
import { TableRow } from "/snippets/components/wrappers/tables/Tables.jsx";
-
```
diff --git a/v2/about/_workspace/archive/pre-pipeline-rewrite/core-concepts.mdx b/v2/about/_workspace/archive/pre-pipeline-rewrite/core-concepts.mdx
deleted file mode 100644
index 47ee86c6a..000000000
--- a/v2/about/_workspace/archive/pre-pipeline-rewrite/core-concepts.mdx
+++ /dev/null
@@ -1,137 +0,0 @@
----
-title: Livepeer Core Concepts
-sidebarTitle: Livepeer Core Concepts
-description: >-
- A high-level introduction to the key concepts and architecture of the Livepeer
- Real-time AI & Video Network
-pageType: concept
-keywords:
- - livepeer
- - about
- - core concepts
- - livepeer core concepts
- - introduction
- - key
- - architecture
-'og:image': /snippets/assets/media/og-images/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: general
-lastVerified: 2026-03-17
-purpose: concept
----
-
-
-import Protocol from "/snippets/composables/pages/about/concepts/protocol.mdx"
-import Network from "/snippets/composables/pages/about/concepts/network.mdx"
-import Actors from "/snippets/composables/pages/about/concepts/actors.mdx"
-
-### Overview and separation
-
-Livepeer is designed as a modular video/AI network anchored by a minimal on‑chain protocol. The protocol manages assets and incentives on Ethereum, while the off‑chain network performs the heavy lifting of transcoding and AI processing. Official documents separate these domains:
-
-On‑chain protocol – smart contracts hold ETH deposits from broadcasters and orchestrators; mint and distribute LPT staking tokens; issue probabilistic payment tickets; enforce staking, slashing and reward rules; and manage governance. The protocol does not transcode video or run AI. Its role is to coordinate payments and maintain trustless state.
-
-Off‑chain network – orchestrator nodes run Livepeer software to perform transcoding and AI workloads. They compete on price, quality and latency. Video/AI jobs and routing happen entirely off‑chain. Services like Livepeer Studio and community gateways sit on top of this layer.
-
-Bridge – broadcasters deposit ETH into the protocol and send probabilistic tickets with each segment. Orchestrators redeem winning tickets on‑chain for ETH fees, while the work itself is delivered off‑chain. LPT is not used to pay for services; it is only used for staking, delegation and governance.
-
-These boundaries ensure that the protocol remains lightweight and censorship‑resistant. Any proposed change must respect this separation-heavy compute must remain off‑chain, while financial rules and governance reside on‑chainU
-
-{/* */}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{/* */}
-
-### Definitions
-
-**Livepeer Protocol**
-
-The protocol is the ruleset + on-chain logic governing:
-
-**Livepeer Network**
-
-The network is the actual running system of machines performing work:
-
-**Livepeer Actors**
-
-A Livepeer actor is any role or entity that participates in the Livepeer protocol or network and performs actions defined by the system.
-
-
-# Overview
-
-Livepeer is a full-stack platform for video streaming & AI. The video streaming software is underpinned by a network of actors that perform the work needed to compute, transcode & orchestrate video & AI jobs in the Livepeer network.
-
-The Livepeer Protocol is the underlying code that enforces the mechanisms and rules to ensure the reliability, cooperation and coordination of these decentralised actors.
-
-# Core Concepts
-
-## Livepeer Protocol
-
-The protocol is the ruleset + on-chain logic governing:
-
-- staking
-- delegation
-- inflation & rewards
-- orchestrator selection
-- slashing
-- probabilistic payments
-- verification rules
-
-The economic and coordination layer that enforces correct behavior.
-
-## Livepeer Network
-
-The network is the actual running system of machines performing work:
-
-- Orchestrators (GPU nodes)
-- Transcoders / Workers
-- Gateways
-- Broadcasters
-- Verification processes
-- Job routing
-- Real-time AI & video compute
-
-It is the live, operational decentralized GPU mesh running video + AI jobs.
-
-## Protocol vs Network
-
-| Layer | Description |
-| --------------------- | ----------------------------------------------------------------------------- |
-| **Livepeer Protocol** | On-chain crypto-economic incentives & coordination; staking; payments. |
-| **Livepeer Network** | Off-chain nodes performing real-time work (transcoding, inference, routing). |
-| **Relationship** | The network _runs_ the compute; the protocol _governs, secures, and pays_ it. |
-
-
-# On-chain vs Off-chain
-
-Livepeer protocol = Arbitrum One (L2)
-Livepeer token (LPT) = Ethereum mainnet (L1)
-Livepeer network (GPU nodes + gateways) = off-chain execution layer
-
-# Livepeer Actors
-
-A Livepeer actor is any role or entity that participates in the Livepeer protocol or network and performs actions defined by the system.
-In Livepeer architecture, “actor” is a formal category used to describe participants with distinct responsibilities, incentives, and interactions.
-Actors are fundamental to describing how the network functions end-to-end from a systems engineering perspective.
-
-Livepeer’s ecosystem involves both protocol actors (on-chain roles) and community actors (network participants and builders)
-
-INSERT LIVEPEER ACTOR DIAGRAM HERE \[THIS ONE LOOKS OLD (whitpaper)
-
-Actor diagram placeholder removed pending final approved asset.
diff --git a/v2/about/_workspace/archive/pre-pipeline-rewrite/economics.mdx b/v2/about/_workspace/archive/pre-pipeline-rewrite/economics.mdx
deleted file mode 100644
index 4e32aaed9..000000000
--- a/v2/about/_workspace/archive/pre-pipeline-rewrite/economics.mdx
+++ /dev/null
@@ -1,172 +0,0 @@
----
-title: Livepeer Protocol Economics
-sidebarTitle: Protocol Economics
-description: >-
- Learn how LPT, staking, inflation, rewards, fees, and payment flows shape the
- Livepeer protocol economy.
-pageType: concept
-keywords:
- - livepeer
- - about
- - livepeer protocol
- - livepeer protocol economics
- - protocol
- - economics
-'og:image': /snippets/assets/media/og-images/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: general
-lastVerified: 2026-03-17
-purpose: concept
----
-{/* This page describes:
-6. **Economics**
-
- * Tokenomics
- * Inflation model
- * Staking & delegation
- * Reward distribution
- * Slashing
- * Rounds
-
-
-*/}
-
-Livepeer uses both its native token - LPT, and Ethereum (ETH) to power its network and compensate actors for their contributions.
-The Livepeer protocol uses a dynamic inflation rate and stake-for-access model to ensure the network's security and functionality.
-
-We'll cover the LPT tokenomics and why delegating to orchestrators remains important even as inflation tapers off.
-
-## Money Flow: LPT Token Economics
-
-### 1. **Staking Flow (Delegators → Orchestrators)**
-
-**Step 1: Token Approval**
-Before bonding, delegators must approve the BondingManager to transfer their LPT tokens.
-
-**Step 2: Bonding**
-Delegators call `Bond(amount, orchestratorAddress)` which:
-- Transfers LPT from delegator to BondingManager
-- Updates orchestrator's delegated stake
-- Calculates pool position hints for gas optimisation
-- Updates the transcoder pool sorted by stake
-
-**Step 3: Orchestrator Registration**
-To become an orchestrator, a node must:
-- First bond LPT to itself
-- Call `Transcoder(rewardCut, feeShare)` with commission parameters
-- Register service URI via `SetServiceURI()`
-
-The transcoder pool maintains orchestrators sorted by delegated stake as a linked list, with hints optimizing insertions.
-
-### 2. **Reward Flow (Minter → Orchestrators → Delegators)**
-
-Each round, active orchestrators can call `Reward()` to mint inflationary tokens:
-
-**Reward Calculation Process**:
-1. Orchestrator calls `Reward()` on BondingManager
-2. BondingManager queries `CurrentMintableTokens()` from Minter
-3. Minter calculates: `mintable = inflation * totalSupply / bonded`
-4. Reward distributed proportionally to orchestrator's stake
-5. Orchestrator keeps their commission (rewardCut)
-6. Remaining rewards distributed to delegators proportionally
-
-**Claiming Earnings**:
-Delegators must call `ClaimEarnings(endRound)` to realize their accumulated rewards and fees from past rounds.
-
-### 3. **Payment Flow (Broadcasters → Orchestrators)**
-
-The payment system uses probabilistic micropayments to minimize on-chain transactions:
-
-**Step 1: Broadcaster Deposits**
-Broadcasters fund their account via `FundDepositAndReserve()`:
-- **Deposit**: Locked collateral (can't be used immediately)
-- **Reserve**: Available pool for ticket redemptions [14](#0-13)
-
-**Step 2: Off-Chain Ticket Creation**
-For each video segment processed:
-- Broadcaster creates a signed ticket with faceValue and winProb
-- Ticket sent off-chain to orchestrator via HTTP headers
-- Most tickets don't win (e.g., 1% win probability)
-
-**Step 3: Ticket Validation & Queuing**
-Orchestrator validates ticket:
-- Checks signature and expiration
-- Calculates if ticket wins using `recipientRand`
-- Winning tickets queued in local database
-- Tracks sender's MaxFloat (reserve - pending redemptions)
-
-**Step 4: On-Chain Redemption**
-When sufficient funds available:
-- Orchestrator calls `RedeemWinningTicket(ticket, sig, recipientRand)`
-- TicketBroker validates ticket against on-chain state
-- Transfers `faceValue` from broadcaster's reserve to orchestrator
-- Updates `claimedReserve` in BondingManager
-
-This achieves ~99% cost reduction vs. Per-segment on-chain payments while maintaining fair compensation through probabilistic expected value.
-
-### 4. **Fee Flow (Broadcasters → Orchestrators → Delegators)**
-
-Orchestrators earn fees from ticket redemptions:
-- Fees accumulate in orchestrator's earnings pool
-- Orchestrator keeps their commission (feeShare)
-- Remaining fees distributed to delegators
-- Delegators claim via `ClaimEarnings()`
-
-### 5. **Withdrawal Flows**
-
-**Unstaking (Delegators)**:
-1. Call `Unbond(amount)` - creates unbonding lock
-2. Wait `UnbondingPeriod` rounds (typically 7 rounds)
-3. Call `WithdrawStake(unbondingLockId)` - receive LPT back
-
-**Payment Withdrawal (Broadcasters)**:
-1. Call `Unlock()` on TicketBroker
-2. Wait unlock period
-3. Call `Withdraw()` - receive remaining deposit + reserve
-
-## Client Integration
-
-The go-livepeer client abstracts all contract interactions through the `LivepeerEthClient` interface: [15](#0-14)
-
-**Contract Address Resolution**:
-All contract addresses are dynamically discovered through the Controller registry using Keccak256 hashes of contract names. This enables contract upgrades without changing client code. [16](#0-15)
-
-## Gas Optimisation Strategies
-
-### 1. **Pool Hints**
-When bonding or calling reward, the client calculates "hints" (previous/next positions in the sorted transcoder pool) to enable O(1) insertions instead of O(n) searches on-chain. [17](#0-16)
-
-### 2. **Batch Operations**
-Multiple tickets can be created off-chain in batches, with only winning tickets requiring on-chain transactions.
-
-### 3. **Dynamic Gas Pricing**
-The client implements sophisticated gas price management, using 2x base fee with user-specified ceilings to balance confirmation speed and cost. [18](#0-17)
-
-## Summary: Complete Money Flow
-
-1. **Token holders** approve and bond LPT → **BondingManager** (staking)
-2. **Minter** mints new LPT → **BondingManager** → **Orchestrators** (inflation rewards)
-3. **Orchestrators** distribute rewards → **Delegators** (minus commission)
-4. **Broadcasters** deposit LPT → **TicketBroker** (payment reserves)
-5. **Orchestrators** redeem tickets → receive LPT from **TicketBroker** (fees)
-6. **Orchestrators** distribute fees → **Delegators** (minus commission)
-7. **Delegators** claim earnings from **BondingManager** (accumulated rewards + fees)
-
-This creates a circular economy where:
-- Staking secures the network and earns inflation rewards
-- Active orchestrators earn fees from broadcasters
-- Delegators participate in rewards without running infrastructure
-- Probabilistic payments enable cost-efficient micropayments
-- All flows tracked on-chain with minimal gas overhead
-
-## Notes
-
-- The contracts are deployed on Ethereum mainnet (and Arbitrum for L2)
-- Contract addresses are stored in the Controller registry for upgradeability
-- All token operations use standard ERC20 approval patterns
-- The system supports both L1 and L2 deployments with backward compatibility
-- Round-based operations ensure coordinated protocol upgrades and state transitions
-- The probabilistic payment system reduces on-chain transactions by ~99% while maintaining fair expected value for all parties
diff --git a/v2/about/_workspace/archive/pre-pipeline-rewrite/network-overview.mdx b/v2/about/_workspace/archive/pre-pipeline-rewrite/network-overview.mdx
deleted file mode 100644
index a6cee64b2..000000000
--- a/v2/about/_workspace/archive/pre-pipeline-rewrite/network-overview.mdx
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: Livepeer Network Overview
-sidebarTitle: Network Overview
-description: An overview of the Livepeer network and its components.
-keywords:
- - livepeer
- - about
- - livepeer network
- - network overview
- - network
- - overview
-'og:image': /snippets/assets/media/og-images/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-pageType: overview
-audience: general
-lastVerified: 2026-03-17
-purpose: overview
----
-
-
-Livepeer’s core protocol defines the conditions for the network to provide real-time video and AI compute services. The network is the execution layer. It is the actual running system of machines performing work to execute the product vision.
-- Gateways (broadcasters) submit jobs (video or AI) into the network from applications or services
-- Orchestrator nodes (stakers) process and compute the work, and
-- Delegators stake tokens to support governance and security of the network
-
-## Network Components
-
-### Node Types
-The protocol implementation defines multiple node roles (not all are formal network actors) that cooperatively execute on the protocol to provide the desired network functions.
-
-- **Broadcaster Node**: Centers on LivepeerServer managing rtmpConnections and BroadcastSessionsManager
-- **Gateway Node**: Adds AISessionManager and AI HTTP handlers on top of broadcaster functionality
-- **Orchestrator Node**: Uses the orchestrator struct with SegmentChans for job distribution and Recipient for payments
-- **Transcoder Node**: RemoteTranscoderManager coordinates local or remote transcoding via LocalTranscoder
-- **AI Worker Node**: RemoteAIWorkerManager manages Docker containers running AI models
-
-### Core Components
-- LivepeerNode: An interface node implemented by all other node types in the network (gateway/broadcaster, orchestrator, transcoder)
-- Media Server (`LivpeerServer`): The LivepeerServer manages media processing and serves HTTP/RTMP endpoints, providing
- - RTMP ingestion for live streams
- - HTTP push for video segments
- - HLS playback endpoints
- - Management of active connections
-- Broadcast Sessions Manager:
-- Orchestrator
-- Transcoder
-- AI Gateway
-- AI Workers
diff --git a/v2/about/concepts/actors.mdx b/v2/about/concepts/actors.mdx
deleted file mode 100644
index 41f7834a9..000000000
--- a/v2/about/concepts/actors.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: Livepeer Actors
-sidebarTitle: Livepeer Actors
-description: >-
- A high-level introduction to the key concepts workings of the Livepeer open,
- on-demand AI & Media infrastructure substrate and the distributed
- crypto-primitive coordination system.
-keywords:
- - livepeer
- - about
- - core concepts
- - mental model
- - introduction
- - key
- - architecture
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
----
-
-## Actor Overview
-
-Livepeer involves multiple actors, both on-chain (protocol) and off-chain (community).
-
-Here’s a breakdown of key roles:
-
-- **Orchestrator**: A bonded node operator that claims work on-chain. Orchestrators maintain active LPT stake, set fee-sharing percentages, and call the on-chain reward function each round. They earn ETH fees from broadcasters and LPT from inflation. (Messari: “Orchestrators (node operators) route transcoding & AI jobs… earning ETH fees and LPT rewards”.)
-- **Transcoder** / **Worker**: A compute node (often a GPU) that performs the actual encoding or inference. Workers do not hold stake themselves; they operate under an Orchestrator.
-- **Gateway** (Broadcaster): A stateless demand-side node. Gateways submit video or AI jobs to the network and pay the node that completes the work. They effectively bridge an input stream into Livepeer, handling micropayment tickets on-chain.
-- **Delegator**: A token holder who stakes LPT behind one or more orchestrators. Delegators strengthen network security and decentralization. In exchange, they receive a portion of the node’s rewards (both mint emissions and usage fees) according to their stake. As one Livepeer blog notes, “Delegators earn a share of both token emissions (while they last) and usage-based fees”.
-- **Livepeer Foundation**: A non-profit entity formed to guide ecosystem growth. The Foundation coordinates long-term strategy and funding, runs community programs (like advisory boards), and helps align core protocol development with the open-source community.
-- **Developers & Builders**: Software teams building on Livepeer. This includes decentralized video apps (e.g. on Web3 social networks) and infrastructure tools. Messari notes Livepeer is used by projects ranging from decentralized streaming platforms to tokenized music apps.
-
-AI Artists & Content Creators: Performers and creators who use Livepeer’s tools (like Daydream) to produce content. For example, MetaDJ used Daydream to let fans shape the live visuals in real time. Any streamer, musician, or videographer can leverage the network for novel AI-enhanced experiences.
-
-Gateway Operators: Organizations running public Livepeer gateway services. For example, Livepeer Cloud (a community-run gateway) and Livepeer Studio (a production-grade API gateway) provide easy on-ramps to the network. They ensure reliable, scalable access for creators and apps.
-
-Special Purpose Entities (SPEs): Community-approved teams funded by the on-chain treasury. SPEs tackle public goods for Livepeer (e.g. Building dev tools, infrastructure). For example, Livepeer’s ecosystem has active SPEs like LiveInfra and LISAR working on network upgrades and on-ramp infrastructure.
diff --git a/v2/about/concepts/core-concepts.mdx b/v2/about/concepts/core-concepts.mdx
index 0d76608a8..47ee86c6a 100644
--- a/v2/about/concepts/core-concepts.mdx
+++ b/v2/about/concepts/core-concepts.mdx
@@ -1,148 +1,137 @@
---
-title: 'Livepeer Core Concepts'
-sidebarTitle: 'Core Concepts'
+title: Livepeer Core Concepts
+sidebarTitle: Livepeer Core Concepts
description: >-
- The three-zone architecture, network actors, compute types, economic model, and governance of the Livepeer decentralised AI and video compute network.
+ A high-level introduction to the key concepts and architecture of the Livepeer
+ Real-time AI & Video Network
pageType: concept
-audience: community
-purpose: explain
keywords:
- livepeer
+ - about
- core concepts
- - protocol
- - network
- - actors
- - orchestrators
- - gateways
- - delegators
- - economics
- - governance
-'og:image': /snippets/assets/site/og-image/en/about.png
-'og:image:alt': Livepeer Docs social preview image for About
+ - livepeer core concepts
+ - introduction
+ - key
+ - architecture
+'og:image': /snippets/assets/media/og-images/fallback.png
+'og:image:alt': Livepeer Docs social preview image
'og:image:type': image/png
'og:image:width': 1200
'og:image:height': 630
-status: current
-lastVerified: 2026-04-07
+audience: general
+lastVerified: 2026-03-17
+purpose: concept
---
-import { LinkArrow } from '/snippets/components/elements/links/Links.jsx'
-import { StyledTable, TableRow, TableCell } from '/snippets/components/wrappers/tables/Tables.jsx'
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-import { CenteredContainer } from '/snippets/components/wrappers/containers/Containers.jsx'
-
- Livepeer separates on-chain coordination (Protocol), off-chain execution (Network), and developer-facing products (Platform) into three distinct zones. Each zone has a hard boundary: the protocol governs, the network executes, the platform exposes.
-
+import Protocol from "/snippets/composables/pages/about/concepts/protocol.mdx"
+import Network from "/snippets/composables/pages/about/concepts/network.mdx"
+import Actors from "/snippets/composables/pages/about/concepts/actors.mdx"
----
+### Overview and separation
+
+Livepeer is designed as a modular video/AI network anchored by a minimal on‑chain protocol. The protocol manages assets and incentives on Ethereum, while the off‑chain network performs the heavy lifting of transcoding and AI processing. Official documents separate these domains:
+
+On‑chain protocol – smart contracts hold ETH deposits from broadcasters and orchestrators; mint and distribute LPT staking tokens; issue probabilistic payment tickets; enforce staking, slashing and reward rules; and manage governance. The protocol does not transcode video or run AI. Its role is to coordinate payments and maintain trustless state.
+
+Off‑chain network – orchestrator nodes run Livepeer software to perform transcoding and AI workloads. They compete on price, quality and latency. Video/AI jobs and routing happen entirely off‑chain. Services like Livepeer Studio and community gateways sit on top of this layer.
-Livepeer is a decentralised AI and video compute network. Its architecture is divided into three zones that interact without overlapping. The Protocol secures and coordinates. The Network executes compute jobs. The Platform exposes the network's capabilities through APIs, SDKs, and managed services.
+Bridge – broadcasters deposit ETH into the protocol and send probabilistic tickets with each segment. Orchestrators redeem winning tickets on‑chain for ETH fees, while the work itself is delivered off‑chain. LPT is not used to pay for services; it is only used for staking, delegation and governance.
-Understanding these boundaries is what separates the mental model from the deep-dive pages in the protocol/ and network/ sections. This page names each zone, its actors, its compute types, and the economic and governance model that holds it together.
+These boundaries ensure that the protocol remains lightweight and censorship‑resistant. Any proposed change must respect this separation-heavy compute must remain off‑chain, while financial rules and governance reside on‑chainU
-
+{/* */}
+
+
+
+
+
+
+
+
+
+
+
+
+
-## The three zones
+
+{/* */}
-The **Protocol** is the on-chain coordination, security, and economic layer. Smart contracts deployed on Arbitrum One govern staking, delegation, inflation, reward distribution, probabilistic micropayments, and governance. The protocol sets the rules that all other participants follow. It does not run compute, route jobs, or interact with video data.
+### Definitions
-The **Network** is the execution layer - the running system of GPU nodes and routing logic that performs video transcoding and AI inference. Orchestrators, gateways, and transcoders operate entirely off-chain. The network follows the rules the protocol establishes and settles payment for completed work via on-chain ticket redemption.
+**Livepeer Protocol**
-The **Platform** is the product and developer interface layer. Managed gateways, APIs, SDKs, and community products (Livepeer Studio, Daydream, Streamplace) sit here. Platform services abstract protocol and network complexity into stable developer primitives. They are not part of the protocol and are not part of the network - they are opinions about how to expose the network's capabilities.
+The protocol is the ruleset + on-chain logic governing:
-
-
-
- Zone
- Runs on
- Responsibility
- Does NOT
-
-
-
-
- **Protocol**
- Arbitrum One (on-chain)
- Governance, staking, payments, inflation
- Run compute or route jobs
-
-
- **Network**
- Off-chain (GPU nodes)
- Execute video and AI workloads
- Manage economics or issue tokens
-
-
- **Platform**
- Applications and APIs
- Expose network capabilities to developers
- Govern or execute directly
-
-
-
+**Livepeer Network**
-
+The network is the actual running system of machines performing work:
-## Actors
+**Livepeer Actors**
-A Livepeer actor is any role or entity that participates in the protocol or network and performs actions defined by the system. Each actor has distinct responsibilities, incentives, and interactions.
+A Livepeer actor is any role or entity that participates in the Livepeer protocol or network and performs actions defined by the system.
-**Orchestrators** are GPU operators who register with the protocol by staking LPT and run go-livepeer software to process video and AI jobs. They compete on price, latency, and quality. Orchestrators earn ETH fees from completed work and LPT inflation rewards proportional to their delegated stake.
-**Gateways** are the demand-facing entry points to the network. They accept compute jobs from applications and services, route work to orchestrators, and handle session management. Gateways pay orchestrators using probabilistic micropayment tickets backed by ETH deposits held in the on-chain TicketBroker contract.
+# Overview
-**Delegators** are LPT token holders who bond their stake to an orchestrator to support the network's security and earn a share of that orchestrator's inflation rewards. Delegators do not run infrastructure; they participate through stake delegation.
+Livepeer is a full-stack platform for video streaming & AI. The video streaming software is underpinned by a network of actors that perform the work needed to compute, transcode & orchestrate video & AI jobs in the Livepeer network.
-**Builders and end users** are developers who build products on top of the platform layer and users who consume those products. They interact with Livepeer through APIs and managed services and have no direct relationship with orchestrators or the protocol.
+The Livepeer Protocol is the underlying code that enforces the mechanisms and rules to ensure the reliability, cooperation and coordination of these decentralised actors.
-
+# Core Concepts
-## The two compute types
+## Livepeer Protocol
-Livepeer supports two distinct workload categories. They are distinct because they have different latency requirements, different hardware profiles, and different demand patterns.
+The protocol is the ruleset + on-chain logic governing:
-**Video transcoding** converts raw video streams into multiple output formats and bitrates in real time. It is Livepeer's original workload and accounts for the majority of network usage by volume. Transcoding jobs are segment-based: a video stream is broken into short chunks and processed in parallel across orchestrators.
+- staking
+- delegation
+- inflation & rewards
+- orchestrator selection
+- slashing
+- probabilistic payments
+- verification rules
-**AI inference** runs machine learning model pipelines on video or audio inputs. AI workloads include image generation, real-time style transfer, video analysis, and multi-step pipelines that chain several models together. AI inference now accounts for the majority of network fee revenue and is the primary growth vector for the network.
+The economic and coordination layer that enforces correct behavior.
-The two workload types can run from the same orchestrator infrastructure in a dual-workload configuration. They are distinct categories - not a single unified compute primitive - because their operational profiles, pricing, and client-side tooling differ.
+## Livepeer Network
-
+The network is the actual running system of machines performing work:
-## Economic model
+- Orchestrators (GPU nodes)
+- Transcoders / Workers
+- Gateways
+- Broadcasters
+- Verification processes
+- Job routing
+- Real-time AI & video compute
-Livepeer's economic model has two income streams, separated by origin and token denomination.
+It is the live, operational decentralized GPU mesh running video + AI jobs.
-**ETH fees** flow from usage. When a gateway submits a video or AI job, it attaches probabilistic micropayment tickets denominated in ETH. Orchestrators redeem winning tickets on-chain via the TicketBroker contract. A portion of fees flows to delegators according to the orchestrator's fee-share commission. Fee revenue tracks actual network demand.
+## Protocol vs Network
-**LPT inflation rewards** flow from the protocol. Each round, the Minter contract issues new LPT at a governance-controlled rate and distributes it to active orchestrators in proportion to their delegated stake. Orchestrators distribute a portion to their delegators after taking their reward-cut commission. Inflation rewards bootstrap participation when fee revenue is insufficient to sustain the network independently.
+| Layer | Description |
+| --------------------- | ----------------------------------------------------------------------------- |
+| **Livepeer Protocol** | On-chain crypto-economic incentives & coordination; staking; payments. |
+| **Livepeer Network** | Off-chain nodes performing real-time work (transcoding, inference, routing). |
+| **Relationship** | The network _runs_ the compute; the protocol _governs, secures, and pays_ it. |
-The governance-controlled `targetBondingRate` parameter drives the inflation rate: when the fraction of LPT bonded across the network falls below the target, the inflation rate rises to attract more delegation; when it exceeds the target, the rate falls. Current parameter values are governance-controlled - verify against [explorer.livepeer.org](https://explorer.livepeer.org) for live figures.
-
+# On-chain vs Off-chain
-## Governance model
+Livepeer protocol = Arbitrum One (L2)
+Livepeer token (LPT) = Ethereum mainnet (L1)
+Livepeer network (GPU nodes + gateways) = off-chain execution layer
-Livepeer governance is stake-weighted and community-driven. LPT holders and delegators vote on Livepeer Improvement Proposals (LIPs) via the on-chain Governor contract on Arbitrum. A proposal requires a minimum participation quorum and a majority to pass. The Foundation does not control governance outcomes.
+# Livepeer Actors
-LIPs are the formal mechanism for protocol changes: parameter updates, contract upgrades, treasury spending, and economic adjustments all go through the LIP process. Active proposals are tracked on the [Livepeer Forum](https://forum.livepeer.org). Recent governance activity includes LIP-107 (emissions), LIP-100 (inflation bounds), and LIP-101 (treasury restart).
+A Livepeer actor is any role or entity that participates in the Livepeer protocol or network and performs actions defined by the system.
+In Livepeer architecture, “actor” is a formal category used to describe participants with distinct responsibilities, incentives, and interactions.
+Actors are fundamental to describing how the network functions end-to-end from a systems engineering perspective.
-
+Livepeer’s ecosystem involves both protocol actors (on-chain roles) and community actors (network participants and builders)
-## Related pages
+INSERT LIVEPEER ACTOR DIAGRAM HERE \[THIS ONE LOOKS OLD (whitpaper)
-
-
- The full mechanism detail: staking, delegation, probabilistic payments, slashing, and governance.
-
-
- The execution layer: orchestrators, gateways, job routing, and the marketplace.
-
-
- How ETH fees and LPT inflation flow through the system and who earns each.
-
-
- Stake-weighted voting, LIPs, the Governor contract, and the treasury.
-
-
+Actor diagram placeholder removed pending final approved asset.
diff --git a/v2/about/index.mdx b/v2/about/index.mdx
index 8b45d0a78..00b10e28c 100644
--- a/v2/about/index.mdx
+++ b/v2/about/index.mdx
@@ -3,7 +3,6 @@ title: 'About Index'
sidebarTitle: 'About Index'
description: 'Generated table of contents for docs pages under v2/about.'
pageType: navigation
-audience: community
purpose: orient
lifecycleStage: discover
keywords: ['livepeer', 'generated index', 'table of contents', 'v2/about']
diff --git a/v2/about/network/demand-side.mdx b/v2/about/network/demand-side.mdx
new file mode 100644
index 000000000..255a7470f
--- /dev/null
+++ b/v2/about/network/demand-side.mdx
@@ -0,0 +1,27 @@
+---
+title: Livepeer Demand Side
+sidebarTitle: Demand Side
+description: Learn about the Livepeer demand side.
+keywords:
+ - livepeer
+ - about
+ - livepeer network
+ - demand side
+ - demand
+ - side
+ - learn
+'og:image': /snippets/assets/media/og-images/fallback.png
+'og:image:alt': Livepeer Docs social preview image
+'og:image:type': image/png
+'og:image:width': 1200
+'og:image:height': 630
+---
+
+This page describes:
+7. **Demand Side**
+
+ * Gateway role
+ * Job submission
+ * Pricing
+ * Service discovery
+ * Marketplace interaction
diff --git a/v2/about/network/fee-flow.mdx b/v2/about/network/fee-flow.mdx
new file mode 100644
index 000000000..4bfa7451f
--- /dev/null
+++ b/v2/about/network/fee-flow.mdx
@@ -0,0 +1,25 @@
+---
+title: Livepeer Fee Flow
+sidebarTitle: Fee Flow
+description: Learn about the Livepeer fee flow.
+keywords:
+ - livepeer
+ - about
+ - livepeer network
+ - fee flow
+ - fee
+ - flow
+ - learn
+'og:image': /snippets/assets/media/og-images/fallback.png
+'og:image:alt': Livepeer Docs social preview image
+'og:image:type': image/png
+'og:image:width': 1200
+'og:image:height': 630
+---
+
+This page describes:
+8. **Fee Flow**
+ * Job pricing
+ * Payment model
+ * Revenue sharing
+ * Incentive alignment
diff --git a/v2/about/network/job-lifecycle.mdx b/v2/about/network/job-lifecycle.mdx
index 1324e9841..114c2ec28 100644
--- a/v2/about/network/job-lifecycle.mdx
+++ b/v2/about/network/job-lifecycle.mdx
@@ -2,10 +2,10 @@
title: Livepeer Job Lifecycle
sidebarTitle: Job Lifecycle
description: >-
- The end-to-end compute job modelled as a state machine. Livepeer’s compute is
- segment-oriented, so the lifecycle covers stream sessions, per-segment
- processing, continuous ticket-based payment settlement, and periodic reward
- calls.
+ This page describes the end-to-end “compute job” as a state machine. Since
+ Livepeer’s compute is segment-oriented, the lifecycle is modelled at the level
+ of a stream session and per-segment processing, with payment settlement
+ occurring continuously via tickets and periodically via reward calls.
pageType: concept
keywords:
- livepeer
diff --git a/v2/about/network/livepeer-actors/end-users.mdx b/v2/about/network/livepeer-actors/end-users.mdx
index 8fe4c2a69..08068b633 100644
--- a/v2/about/network/livepeer-actors/end-users.mdx
+++ b/v2/about/network/livepeer-actors/end-users.mdx
@@ -2,9 +2,6 @@
title: Builders and End Users
sidebarTitle: Builders & End Users
description: 'How developers, product teams, and users consume Livepeer-powered services.'
-pageType: concept
-audience: community
-purpose: explain
keywords:
- livepeer
- about
diff --git a/v2/about/network/livepeer-actors/orchestrators.mdx b/v2/about/network/livepeer-actors/orchestrators.mdx
index 25b43a753..2434496c9 100644
--- a/v2/about/network/livepeer-actors/orchestrators.mdx
+++ b/v2/about/network/livepeer-actors/orchestrators.mdx
@@ -4,9 +4,6 @@ sidebarTitle: Orchestrators
description: >-
How orchestrator operators provide supply-side execution capacity and economic
participation in Livepeer.
-pageType: concept
-audience: community
-purpose: explain
keywords:
- livepeer
- about
diff --git a/v2/about/network/overview.mdx b/v2/about/network/overview.mdx
index e107b0eb3..1a8a886b7 100644
--- a/v2/about/network/overview.mdx
+++ b/v2/about/network/overview.mdx
@@ -1,107 +1,52 @@
---
-title: 'Livepeer Network Overview'
-sidebarTitle: 'Network Overview'
-description: >-
- The Livepeer network is the execution layer, the global system of GPU nodes that performs video transcoding and AI inference under protocol coordination.
-pageType: concept
-audience: community
-purpose: explain
+title: Livepeer Network Overview
+sidebarTitle: Network Overview
+description: An overview of the Livepeer network and its components.
keywords:
- livepeer
+ - about
+ - livepeer network
+ - network overview
- network
- overview
- - orchestrators
- - gateways
- - execution layer
- - video transcoding
- - AI inference
-'og:image': /snippets/assets/site/og-image/en/about.png
-'og:image:alt': Livepeer Docs social preview image for About
+'og:image': /snippets/assets/media/og-images/fallback.png
+'og:image:alt': Livepeer Docs social preview image
'og:image:type': image/png
'og:image:width': 1200
'og:image:height': 630
-status: current
-lastVerified: 2026-04-07
+pageType: overview
+audience: general
+lastVerified: 2026-03-17
+purpose: overview
---
-import { LinkArrow } from '/snippets/components/elements/links/Links.jsx'
-import { StyledTable, TableRow, TableCell } from '/snippets/components/wrappers/tables/Tables.jsx'
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-import { CenteredContainer } from '/snippets/components/wrappers/containers/Containers.jsx'
-
- The network is the execution layer. It is the actual running system of GPU nodes that performs video transcoding and AI inference jobs - the protocol sets the rules and the network runs the work.
-
+Livepeer’s core protocol defines the conditions for the network to provide real-time video and AI compute services. The network is the execution layer. It is the actual running system of machines performing work to execute the product vision.
+- Gateways (broadcasters) submit jobs (video or AI) into the network from applications or services
+- Orchestrator nodes (stakers) process and compute the work, and
+- Delegators stake tokens to support governance and security of the network
----
-
-The Livepeer network is the off-chain execution layer of the Livepeer ecosystem. It is the live, operational system of machines that accepts compute jobs, routes them to GPU operators, delivers results, and settles payment. It is distinct from the protocol, which governs the network through on-chain coordination, staking, and economic rules.
-
-The network does not issue tokens, does not set inflation rates, and does not manage governance. Those responsibilities belong to the protocol. The network's job is to execute compute reliably, at low latency, and at competitive cost.
-
-
-
-## What the protocol does and what the network does
-
-The protocol is the on-chain layer deployed on Arbitrum One. It governs which orchestrators are eligible to serve jobs, holds ETH deposits from gateways, validates payment ticket redemptions, and distributes LPT inflation rewards each round. The protocol enforces rules; it does not execute jobs.
-
-The network is the off-chain layer. Orchestrator nodes register with the protocol by staking LPT, then operate independently to accept jobs, perform transcoding or AI inference, and collect ETH fees when winning payment tickets are redeemed on-chain. The network follows the protocol's rules, but the compute itself never touches the chain.
-
-This separation is deliberate. The protocol remains lightweight and censorship-resistant because it is not burdened with compute coordination. The network remains performant because it is not waiting on blockchain confirmation times for job execution.
-
-
-
-## Network functions
-
-The network performs four core functions:
-
-**Job acceptance**: Gateways submit video or AI compute jobs to the network as a set of segments or inference requests. The network is the entry point for all compute demand.
-
-**Orchestrator routing and selection**: The gateway selects an orchestrator from the active set - the pool of registered, staked nodes eligible to process work. Selection uses performance history, price, latency, and capacity signals. No central coordinator manages this routing.
-
-**Compute execution**: Orchestrators execute video transcoding pipelines or AI inference pipelines on their GPU hardware and return results to the gateway. For video workloads, segments are processed in parallel across potentially multiple orchestrators. For AI workloads, orchestrators run containerised model pipelines defined by the gateway's configuration.
-
-**Payment settlement**: Gateways attach probabilistic micropayment tickets to each segment or job. Winning tickets are redeemed on-chain via the TicketBroker contract for ETH. This mechanism amortises the cost of per-segment payment across many tickets, achieving near-zero on-chain overhead for the network while maintaining fair expected value for orchestrators.
-
-
-
-## Network actors
-
-The network has two primary operating roles.
-
-**Orchestrators** are GPU operators who run go-livepeer software, bond LPT through the protocol to enter the active set, and execute compute jobs. They publish a service URI and pricing parameters through which gateways discover and select them. Orchestrators earn ETH fee revenue from completed work and LPT inflation rewards proportional to their delegated stake.
-
-**Gateways** are the demand-facing entry points. They accept jobs from applications and services, manage sessions with orchestrators, handle retries and fallbacks, and hold ETH deposits in the TicketBroker to pay for work. Gateways are the network participants that applications interact with directly - orchestrators are typically invisible to the end user.
-
-Delegators participate through the protocol by bonding LPT to orchestrators, not through the network directly. Builders and end users interact through the platform layer above the network.
-
-
-
-## What comes next in this section
-
-The network/ section covers each aspect of the execution layer in depth:
+## Network Components
-- **Actors** - orchestrator and gateway roles in full detail, including sub-roles and lifecycle
-- **Job lifecycle** - how a compute job moves from gateway submission through orchestrator execution to payment settlement
-- **Marketplace** - how orchestrators are discovered, priced, and selected
-- **Technical architecture** - the internal components of go-livepeer nodes, session management, and transport layer
-- **Interfaces** - the APIs and protocols that connect the network to the platform layer
+### Node Types
+The protocol implementation defines multiple node roles (not all are formal network actors) that cooperatively execute on the protocol to provide the desired network functions.
-
+- **Broadcaster Node**: Centers on LivepeerServer managing rtmpConnections and BroadcastSessionsManager
+- **Gateway Node**: Adds AISessionManager and AI HTTP handlers on top of broadcaster functionality
+- **Orchestrator Node**: Uses the orchestrator struct with SegmentChans for job distribution and Recipient for payments
+- **Transcoder Node**: RemoteTranscoderManager coordinates local or remote transcoding via LocalTranscoder
+- **AI Worker Node**: RemoteAIWorkerManager manages Docker containers running AI models
-## Related pages
+### Core Components
+- LivepeerNode: An interface node implemented by all other node types in the network (gateway/broadcaster, orchestrator, transcoder)
+- Media Server (`LivpeerServer`): The LivepeerServer manages media processing and serves HTTP/RTMP endpoints, providing
+ - RTMP ingestion for live streams
+ - HTTP push for video segments
+ - HLS playback endpoints
+ - Management of active connections
+- Broadcast Sessions Manager:
+- Orchestrator
+- Transcoder
+- AI Gateway
+- AI Workers
-
-
- Orchestrators, gateways, and transcoders - roles, responsibilities, and how they interact.
-
-
- How a compute job moves from submission to execution to payment settlement.
-
-
- How orchestrators are discovered, selected, and priced.
-
-
- The on-chain governance, staking, and economic rules that the network operates under.
-
-
diff --git a/v2/about/network/scaling.mdx b/v2/about/network/scaling.mdx
new file mode 100644
index 000000000..ca63fd6f4
--- /dev/null
+++ b/v2/about/network/scaling.mdx
@@ -0,0 +1,26 @@
+---
+title: Livepeer Scaling
+sidebarTitle: Scaling
+description: Learn about the Livepeer scaling.
+keywords:
+ - livepeer
+ - about
+ - livepeer network
+ - scaling
+ - learn
+'og:image': /snippets/assets/media/og-images/fallback.png
+'og:image:alt': Livepeer Docs social preview image
+'og:image:type': image/png
+'og:image:width': 1200
+'og:image:height': 630
+---
+
+This page describes:
+9. **Performance and Scaling**
+
+ * Network throughput
+ * Latency
+ * Scalability
+ * Bottlenecks
+ * Future scaling
+ * Points to explorer metrics.
diff --git a/v2/about/network/supply-side.mdx b/v2/about/network/supply-side.mdx
new file mode 100644
index 000000000..a6850cd3d
--- /dev/null
+++ b/v2/about/network/supply-side.mdx
@@ -0,0 +1,26 @@
+---
+title: Livepeer Supply Side
+sidebarTitle: Supply Side
+description: Learn about the Livepeer supply side.
+keywords:
+ - livepeer
+ - about
+ - livepeer network
+ - supply side
+ - supply
+ - side
+ - learn
+'og:image': /snippets/assets/media/og-images/fallback.png
+'og:image:alt': Livepeer Docs social preview image
+'og:image:type': image/png
+'og:image:width': 1200
+'og:image:height': 630
+---
+
+This page describes:
+5. **Supply Side**
+
+ * GPU operators
+ * Pools
+ * Hardware requirements
+ * Performance metrics
diff --git a/v2/about/protocol/design-philosophy.mdx b/v2/about/protocol/design-philosophy.mdx
index aa01138ac..816b5a1a7 100644
--- a/v2/about/protocol/design-philosophy.mdx
+++ b/v2/about/protocol/design-philosophy.mdx
@@ -1,119 +1,53 @@
---
-title: 'Protocol Design Philosophy'
-sidebarTitle: 'Design Philosophy'
-description: >-
- The engineering trade-offs behind Livepeer protocol design, including stake-as-security, dynamic inflation, probabilistic micropayments, protocol-network separation, and the Arbitrum deployment.
-pageType: concept
-audience: community
-purpose: explain
+title: Protocol Design Philosophy
+sidebarTitle: Design Philosophy
+description: Why the Livepeer protocol uses staking, inflation, probabilistic payments, and a strict boundary between protocol and execution network.
keywords:
- livepeer
- protocol
- design philosophy
- - trade-offs
- - stake
+ - probabilistic payments
- inflation
- - probabilistic micropayments
- - Arbitrum
- - governance
-'og:image': /snippets/assets/site/og-image/en/about.png
+ - staking
+'og:image': /snippets/assets/media/og-images/en/about.png
'og:image:alt': Livepeer Docs social preview image for About
'og:image:type': image/png
'og:image:width': 1200
'og:image:height': 630
-status: current
-lastVerified: 2026-04-07
+pageType: concept
+audience: community
+purpose: explain
+status: draft
+lastVerified: '2026-04-05'
---
-import { LinkArrow } from '/snippets/components/elements/links/Links.jsx'
import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-import { CenteredContainer } from '/snippets/components/wrappers/containers/Containers.jsx'
-
-
- The Livepeer protocol makes design choices optimised for permissionless participation, minimal on-chain overhead, and long-run sustainability. Each choice carries a trade-off. This page states those trade-offs directly.
-
-
----
-
-The Livepeer protocol is the product of specific engineering decisions made against a set of goals: permissionless access, economic security, censorship resistance, and the ability to coordinate a global GPU network without a central operator. Each mechanism in the protocol reflects a deliberate trade-off between these goals. This page explains the reasoning behind the five most significant design choices.
-
-It is written for researchers, protocol contributors, and founders doing technical due diligence. It assumes familiarity with the protocol mechanisms covered in , , , and .
-
-
-
-## Why stake-as-security instead of permissioned membership
-
-The protocol uses LPT staking as the primary security mechanism. Any participant who bonds LPT above a threshold becomes eligible to enter the active orchestrator set. There is no allowlist, no identity verification, and no operator controlled by a single entity.
-
-The alternative - a permissioned membership list - would allow the network to launch faster and would simplify selection logic. The cost is permanent dependency on a trusted gatekeeper. Permissioned membership introduces a censorship surface: the entity controlling the list can exclude participants, change admission criteria, or be compelled to do so. For a network that aims to be open to any jurisdiction and any use case, this dependency is disqualifying.
-
-Stake-as-security trades simplicity for permissionlessness. It is economically aligned: orchestrators who stake LPT have a direct financial stake in the network's success and reputation. Stake loss - through slashing or market depreciation - is a real cost for misbehaviour, which is the mechanism that replaces trust in a named operator.
-
-The cost of this design is that security scales with the value of bonded LPT, not with a fixed guarantee. When LPT price falls sharply, the cost of attacking the active set falls proportionally. The protocol acknowledges this coupling and addresses it partly through inflation: keeping a large fraction of LPT bonded increases the cost of acquiring enough stake to disrupt the active set.
-
-
-
-## Why dynamic inflation exists
-
-The protocol mints new LPT each round according to a `currentInflation` rate that adjusts automatically toward a `targetBondingRate`. When the fraction of LPT bonded across the network falls below the target, the inflation rate rises to make delegation more attractive. When it exceeds the target, the rate falls.
-The design goal is to keep a large, stable fraction of LPT bonded without a fixed schedule. A fixed issuance schedule would require the protocol designers to forecast demand accurately at launch - an impossible requirement for a network whose fee revenue and participation levels are unknown in advance. Dynamic inflation delegates that calibration to the market.
+This page is being developed. Its role is to explain why the protocol is designed the way it is, not just what the contracts do.
-The cost is that inflation rewards are the dominant income stream for orchestrators and delegators at current network scale. Fee revenue from video and AI usage is growing, but the inflation-to-fees ratio remains large. This means the protocol currently pays participants primarily through dilution of non-participating holders, not through usage revenue. LIP-107 (reducing `targetBondingRate` from 50% to 46% with accelerated `inflationChange`), LIP-100 (adding ceiling and floor bounds to the inflation rate), and LIP-101 (treasury restart) are the first governance actions aimed at bringing inflation and fee revenue into better balance. Current parameter values are governance-controlled - verify against [explorer.livepeer.org](https://explorer.livepeer.org) for live figures.
-
-The long-run design assumption is that as AI and video fee revenue grows, the protocol can reduce inflation without losing network security. Dynamic inflation is the mechanism that keeps the network alive until that threshold is crossed.
-
-
-
-## Why probabilistic micropayments instead of per-job on-chain settlement
-
-The protocol pays orchestrators through a probabilistic ticket system rather than a direct on-chain payment per video segment or AI inference call. A gateway attaches a signed ticket to each job. Each ticket has a face value and a win probability. Most tickets do not win. Winning tickets are redeemed on-chain for ETH from the gateway's reserve in the TicketBroker contract.
-
-Direct per-segment settlement is unworkable at the network's operating scale. A 30-minute video stream at one-second segments generates 1,800 payment transactions. At Arbitrum gas costs, this would add meaningful per-stream overhead and would make competitive pricing for low-margin transcoding impossible. AI inference workloads, which can involve sub-second pipeline calls, are even less compatible with per-call on-chain settlement.
-
-Probabilistic micropayments amortise settlement cost across many tickets. An orchestrator processing many jobs from many gateways will win approximately `winProbability * faceValue` per ticket in expectation. The expected value matches what a per-segment payment would deliver, at a fraction of the on-chain cost.
-
-The cost of this design is variance: orchestrators receive payment in occasional large winning-ticket redemptions rather than predictable per-job receipts. High-volume orchestrators with many concurrent sessions smooth this variance through the law of large numbers. Low-volume or new orchestrators experience more cash-flow variability. The reserve mechanism in TicketBroker - which holds a larger float of gateway ETH than expected redemptions require - limits the risk of a gateway becoming insolvent mid-stream.
-
-
-
-## Why the protocol and network stay separate
-
-The protocol does not route jobs, manage compute sessions, or verify individual segment outputs. The network does not issue tokens, update inflation rates, or manage governance. This separation is a hard architectural boundary.
-
-The alternative is a tightly coupled design where the chain participates in job routing and verification. Ethereum-based systems that attempted per-job verification on-chain in earlier designs encountered two problems: latency and cost. Waiting for block confirmation before delivering a transcoded segment makes real-time video impossible. Verifying every segment output on-chain at scale makes the economics uncompetitive with centralised alternatives.
-
-Keeping the protocol lightweight and on-chain preserves censorship resistance. The protocol's rules are immutable except through governance, are transparent, and cannot be changed by any single operator. Keeping the network off-chain preserves performance. Job routing, session management, and compute execution happen at the speed of the internet, not the speed of block production.
-
-The boundary means that the protocol cannot enforce every network behaviour directly. The protocol uses economic incentives instead: orchestrators who behave correctly earn fees and inflation rewards; orchestrators who behave incorrectly lose fee revenue through client-side selection (gateways stop routing to poorly performing nodes) and face future slashing mechanisms. Trust is replaced by economic alignment.
-
-
-
-## Why Arbitrum
-
-The protocol contracts are deployed on Arbitrum One, an Optimistic Rollup L2 that settles to Ethereum mainnet. The LPT token itself lives on Ethereum mainnet and is bridged to Arbitrum via the Livepeer L1-L2 bridge.
-
-The migration from mainnet to Arbitrum (completed in 2022) was driven by gas cost reality. Protocol operations - calling `Reward()`, redeeming winning tickets, bonding and unbonding LPT - were priced off the network for smaller participants at Ethereum mainnet gas prices. Arbitrum reduces transaction costs by approximately two orders of magnitude while inheriting Ethereum's security model through fraud proof settlement.
-
-The Optimistic Rollup design carries a specific trade-off: withdrawals from Arbitrum to Ethereum mainnet require a seven-day challenge period during which the transaction can be disputed. This affects LPT holders who bridge tokens in and out of the protocol. It does not affect in-protocol operations, which run entirely on Arbitrum.
+
-The choice of Arbitrum over alternative L2 designs (ZK-rollups, alternative L1s) reflects the state of the ecosystem at the time of migration and the importance of Ethereum's established validator set as a security foundation. The protocol's Controller architecture enables contract upgrades, so future chain migration is possible through governance if a better settlement layer becomes available.
+## What this page will cover
-
+- Why Livepeer uses stake as security instead of permissioned membership
+- Why inflation exists and how it supports network participation
+- Why probabilistic micropayments are used instead of per-job on-chain settlement
+- Why the protocol and execution network stay separate
+- Why Arbitrum is the primary protocol execution chain
-## Related pages
+## Best pages to read now
-
- How staking, delegation, probabilistic payments, and slashing work in detail.
+
+ The current entry page for protocol scope and responsibilities.
-
- ETH fee flows and LPT inflation rewards: who earns each and how they are distributed.
+
+ The current page for staking, rewards, and payment primitives.
-
- Stake-weighted voting, LIPs, the Governor contract, and the treasury.
+
+ The clearest current explanation of money flow and incentives.
-
- The on-chain contract architecture: Controller, BondingManager, TicketBroker, Minter, and more.
+
+ The current page for how protocol changes are authorised.
diff --git a/v2/about/protocol/economics.mdx b/v2/about/protocol/economics.mdx
index 72693b767..4e32aaed9 100644
--- a/v2/about/protocol/economics.mdx
+++ b/v2/about/protocol/economics.mdx
@@ -1,11 +1,10 @@
---
-title: 'Livepeer Protocol Economics'
-sidebarTitle: 'Protocol Economics'
+title: Livepeer Protocol Economics
+sidebarTitle: Protocol Economics
description: >-
- How LPT and ETH flow through the Livepeer protocol: staking, inflation rewards, usage fees, and the economic model governing network participation.
+ Learn how LPT, staking, inflation, rewards, fees, and payment flows shape the
+ Livepeer protocol economy.
pageType: concept
-audience: community
-purpose: explain
keywords:
- livepeer
- about
@@ -13,153 +12,161 @@ keywords:
- livepeer protocol economics
- protocol
- economics
- - inflation
- - staking
- - fees
-'og:image': /snippets/assets/site/og-image/en/about.png
-'og:image:alt': Livepeer Docs social preview image for About
+'og:image': /snippets/assets/media/og-images/fallback.png
+'og:image:alt': Livepeer Docs social preview image
'og:image:type': image/png
'og:image:width': 1200
'og:image:height': 630
-status: current
-lastVerified: 2026-04-07
+audience: general
+lastVerified: 2026-03-17
+purpose: concept
---
+{/* This page describes:
+6. **Economics**
-import { LinkArrow } from '/snippets/components/elements/links/Links.jsx'
-import { StyledTable, TableRow, TableCell } from '/snippets/components/wrappers/tables/Tables.jsx'
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-import { CenteredContainer } from '/snippets/components/wrappers/containers/Containers.jsx'
+ * Tokenomics
+ * Inflation model
+ * Staking & delegation
+ * Reward distribution
+ * Slashing
+ * Rounds
-
- Livepeer has two income streams: ETH fees from usage, and LPT inflation rewards from the protocol. Both flow through orchestrators to delegators. Fee revenue tracks demand. Inflation rewards bootstrap participation while demand grows.
-
----
-
-Livepeer uses both its native token (LPT) and Ethereum (ETH) to power its network and compensate actors for their contributions. ETH pays for compute work performed. LPT coordinates staking, delegation, governance, and inflation-based participation incentives.
-
-The two income streams are distinct in origin and denomination. Fee revenue in ETH reflects actual network usage: video transcoding and AI inference demand. Inflation rewards in LPT reflect the protocol's bootstrapping phase, sustaining security and participation while fee revenue grows toward sufficiency. Protocol parameters governing inflation are adjusted through governance — verify current values at [explorer.livepeer.org](https://explorer.livepeer.org).
-
-
-
-## 1. Staking flow (Delegators to Orchestrators)
-
-Staking bonds LPT into the BondingManager contract, backing an orchestrator's position in the active set and earning inflation rewards.
-
-**Token approval**: Delegators approve the BondingManager to transfer their LPT via the standard ERC-20 approval pattern before bonding.
-
-**Bonding**: Delegators call `Bond(amount, orchestratorAddress)`, which transfers LPT from the delegator to the BondingManager, updates the orchestrator's total delegated stake, and adjusts the orchestrator's position in the transcoder pool. The pool is sorted by delegated stake and maintained as a linked list; callers supply position hints to keep insertions O(1).
-
-**Orchestrator registration**: To enter the active set, a node bonds LPT to itself, calls `Transcoder(rewardCut, feeShare)` to register commission parameters, and sets a service URI via `SetServiceURI()`. The service URI is how gateways discover and connect to the orchestrator off-chain. The active set size is governance-controlled — verify the current cap at [explorer.livepeer.org](https://explorer.livepeer.org).
-
-
-
-## 2. Reward flow (Minter to Orchestrators to Delegators)
-
-Each round, active orchestrators call `Reward()` on the BondingManager to mint their share of the round's inflationary token issuance.
+*/}
-**Reward calculation**:
+Livepeer uses both its native token - LPT, and Ethereum (ETH) to power its network and compensate actors for their contributions.
+The Livepeer protocol uses a dynamic inflation rate and stake-for-access model to ensure the network's security and functionality.
-1. Orchestrator calls `Reward()` on BondingManager.
-2. BondingManager queries `CurrentMintableTokens()` from the Minter.
-3. Minter calculates mintable tokens proportional to the orchestrator's share of total delegated stake.
-4. Reward is distributed to the orchestrator's earnings pool.
-5. Orchestrator retains their `rewardCut` commission.
-6. Remaining rewards accumulate for delegators proportionally.
+We'll cover the LPT tokenomics and why delegating to orchestrators remains important even as inflation tapers off.
-**Claiming earnings**: Delegators call `ClaimEarnings(endRound)` to realise accumulated rewards and fees from past rounds.
+## Money Flow: LPT Token Economics
-**Inflation mechanics**: The `currentInflation` rate adjusts each round toward `targetBondingRate`. When the fraction of LPT bonded falls below the target, `currentInflation` rises by `inflationChange` per round. When it exceeds the target, the rate falls.
+### 1. **Staking Flow (Delegators → Orchestrators)**
-The current `targetBondingRate` is **50%** (500000000 on-chain). As of Q3 2025, staking participation sat at 48.7% — just below the target — causing inflation to tick upward to approximately **28% annualised**. A governance proposal (LIP-107) to reduce `targetBondingRate` to 46% with an accelerated `inflationChange` is under active community discussion as of early 2026 but has **not passed**. A subsequent proposal to introduce `inflationCeiling` and `inflationFloor` bounds (LIP-100) is planned but also not yet enacted. Monitor [forum.livepeer.org](https://forum.livepeer.org) and [explorer.livepeer.org/governance](https://explorer.livepeer.org/governance) for current status.
+**Step 1: Token Approval**
+Before bonding, delegators must approve the BondingManager to transfer their LPT tokens.
-
+**Step 2: Bonding**
+Delegators call `Bond(amount, orchestratorAddress)` which:
+- Transfers LPT from delegator to BondingManager
+- Updates orchestrator's delegated stake
+- Calculates pool position hints for gas optimisation
+- Updates the transcoder pool sorted by stake
-## 3. Payment flow (Gateways to Orchestrators)
+**Step 3: Orchestrator Registration**
+To become an orchestrator, a node must:
+- First bond LPT to itself
+- Call `Transcoder(rewardCut, feeShare)` with commission parameters
+- Register service URI via `SetServiceURI()`
-The payment system uses probabilistic micropayments to settle compute fees without a per-segment on-chain transaction.
+The transcoder pool maintains orchestrators sorted by delegated stake as a linked list, with hints optimizing insertions.
-**Gateway deposits**: Gateways fund their account via `FundDepositAndReserve()` on the TicketBroker contract:
-- **Deposit**: Locked collateral protecting against front-running; cannot be used immediately.
-- **Reserve**: Available pool from which winning ticket redemptions are paid.
+### 2. **Reward Flow (Minter → Orchestrators → Delegators)**
-**Off-chain ticket creation**: For each video segment or AI inference job, the gateway creates a signed ticket with a `faceValue` and `winProbability` and sends it off-chain to the orchestrator alongside the job. Most tickets do not win — a 1% win probability means one in one hundred tickets triggers a redemption.
+Each round, active orchestrators can call `Reward()` to mint inflationary tokens:
-**Ticket validation and queuing**: The orchestrator validates the ticket's signature and expiration, calculates whether it wins using `recipientRand`, and queues winning tickets for redemption. The gateway's available reserve (`MaxFloat`) is tracked to ensure sufficient funds exist.
+**Reward Calculation Process**:
+1. Orchestrator calls `Reward()` on BondingManager
+2. BondingManager queries `CurrentMintableTokens()` from Minter
+3. Minter calculates: `mintable = inflation * totalSupply / bonded`
+4. Reward distributed proportionally to orchestrator's stake
+5. Orchestrator keeps their commission (rewardCut)
+6. Remaining rewards distributed to delegators proportionally
-**On-chain redemption**: The orchestrator calls `RedeemWinningTicket(ticket, sig, recipientRand)` on the TicketBroker. The contract validates the ticket, transfers `faceValue` from the gateway's reserve to the orchestrator, and updates `claimedReserve` in BondingManager. This achieves approximately 99% reduction in on-chain transaction volume compared with per-segment settlement.
+**Claiming Earnings**:
+Delegators must call `ClaimEarnings(endRound)` to realize their accumulated rewards and fees from past rounds.
-
+### 3. **Payment Flow (Broadcasters → Orchestrators)**
-## 4. Fee flow (Orchestrators to Delegators)
+The payment system uses probabilistic micropayments to minimize on-chain transactions:
-Fees from ticket redemptions accumulate in the orchestrator's earnings pool each round and distribute to delegators proportionally.
+**Step 1: Broadcaster Deposits**
+Broadcasters fund their account via `FundDepositAndReserve()`:
+- **Deposit**: Locked collateral (can't be used immediately)
+- **Reserve**: Available pool for ticket redemptions [14](#0-13)
-- Orchestrator retains their `feeShare` commission.
-- Remaining fees distribute to delegators in proportion to their bonded stake.
-- Delegators claim accumulated fees and rewards together via `ClaimEarnings()`.
+**Step 2: Off-Chain Ticket Creation**
+For each video segment processed:
+- Broadcaster creates a signed ticket with faceValue and winProb
+- Ticket sent off-chain to orchestrator via HTTP headers
+- Most tickets don't win (e.g., 1% win probability)
-
+**Step 3: Ticket Validation & Queuing**
+Orchestrator validates ticket:
+- Checks signature and expiration
+- Calculates if ticket wins using `recipientRand`
+- Winning tickets queued in local database
+- Tracks sender's MaxFloat (reserve - pending redemptions)
-## 5. Withdrawal flows
+**Step 4: On-Chain Redemption**
+When sufficient funds available:
+- Orchestrator calls `RedeemWinningTicket(ticket, sig, recipientRand)`
+- TicketBroker validates ticket against on-chain state
+- Transfers `faceValue` from broadcaster's reserve to orchestrator
+- Updates `claimedReserve` in BondingManager
-**Unstaking (delegators)**:
+This achieves ~99% cost reduction vs. Per-segment on-chain payments while maintaining fair compensation through probabilistic expected value.
-1. Call `Unbond(amount)` — creates an unbonding lock.
-2. Wait the unbonding period. The current unbonding period is **7 rounds** (approximately 7 days at one round per day); verify at [explorer.livepeer.org](https://explorer.livepeer.org) as this is governance-controlled.
-3. Call `WithdrawStake(unbondingLockId)` — returns LPT to the delegator's wallet.
+### 4. **Fee Flow (Broadcasters → Orchestrators → Delegators)**
-**Payment withdrawal (gateways)**:
+Orchestrators earn fees from ticket redemptions:
+- Fees accumulate in orchestrator's earnings pool
+- Orchestrator keeps their commission (feeShare)
+- Remaining fees distributed to delegators
+- Delegators claim via `ClaimEarnings()`
-1. Call `Unlock()` on TicketBroker to begin the unlock period.
-2. Wait the unlock period.
-3. Call `Withdraw()` to receive remaining deposit and reserve balances.
+### 5. **Withdrawal Flows**
-
+**Unstaking (Delegators)**:
+1. Call `Unbond(amount)` - creates unbonding lock
+2. Wait `UnbondingPeriod` rounds (typically 7 rounds)
+3. Call `WithdrawStake(unbondingLockId)` - receive LPT back
-## Economic context
+**Payment Withdrawal (Broadcasters)**:
+1. Call `Unlock()` on TicketBroker
+2. Wait unlock period
+3. Call `Withdraw()` - receive remaining deposit + reserve
-Livepeer's economic health is measured by the trajectory of fee revenue relative to inflation rewards.
+## Client Integration
-**Q3 2025 figures (Messari State of Livepeer Q3 2025)**:
+The go-livepeer client abstracts all contract interactions through the `LivepeerEthClient` interface: [15](#0-14)
-- Total staking rewards: approximately **$18.1M** for the quarter (up 30% QoQ from $13.9M in Q2 2025).
-- AI workloads: over **72% of total protocol fee revenue** in Q3, up from 55% in Q2.
-- 27,845 winning tickets processed — a 37% increase from Q2 — with average fee per ticket rising 69% to approximately **$5.28**.
-- Staking participation: **48.7%**, just below the 50% target.
-- Annualised inflation rate: approximately **28%** at end of Q3.
+**Contract Address Resolution**:
+All contract addresses are dynamically discovered through the Controller registry using Keccak256 hashes of contract names. This enables contract upgrades without changing client code. [16](#0-15)
-Fee revenue is growing. AI inference is the dominant demand driver. The inflation-to-fee ratio remains large, and the community is actively debating LIP-107 and related proposals to manage it. The long-run design assumes fee revenue eventually sustains the network without dependence on continuous token dilution — dynamic inflation is the bootstrapping mechanism, not the target state.
+## Gas Optimisation Strategies
-
+### 1. **Pool Hints**
+When bonding or calling reward, the client calculates "hints" (previous/next positions in the sorted transcoder pool) to enable O(1) insertions instead of O(n) searches on-chain. [17](#0-16)
-## Complete money flow
+### 2. **Batch Operations**
+Multiple tickets can be created off-chain in batches, with only winning tickets requiring on-chain transactions.
-1. Token holders bond LPT through BondingManager (staking).
-2. Minter issues new LPT each round and distributes it to active orchestrators via BondingManager (inflation rewards).
-3. Orchestrators distribute a portion of rewards to delegators after retaining `rewardCut`.
-4. Gateways deposit ETH into TicketBroker (payment reserves).
-5. Orchestrators redeem winning tickets and receive ETH from TicketBroker (usage fees).
-6. Orchestrators distribute a portion of fees to delegators after retaining `feeShare`.
-7. Delegators claim accumulated rewards and fees via `ClaimEarnings()`.
+### 3. **Dynamic Gas Pricing**
+The client implements sophisticated gas price management, using 2x base fee with user-specified ceilings to balance confirmation speed and cost. [18](#0-17)
-Staking secures the network and earns inflation rewards. Active orchestrators earn ETH fees from gateways. Delegators participate in both streams without running infrastructure. Probabilistic payments enable cost-efficient micropayments at network scale.
+## Summary: Complete Money Flow
+
+1. **Token holders** approve and bond LPT → **BondingManager** (staking)
+2. **Minter** mints new LPT → **BondingManager** → **Orchestrators** (inflation rewards)
+3. **Orchestrators** distribute rewards → **Delegators** (minus commission)
+4. **Broadcasters** deposit LPT → **TicketBroker** (payment reserves)
+5. **Orchestrators** redeem tickets → receive LPT from **TicketBroker** (fees)
+6. **Orchestrators** distribute fees → **Delegators** (minus commission)
+7. **Delegators** claim earnings from **BondingManager** (accumulated rewards + fees)
-
+This creates a circular economy where:
+- Staking secures the network and earns inflation rewards
+- Active orchestrators earn fees from broadcasters
+- Delegators participate in rewards without running infrastructure
+- Probabilistic payments enable cost-efficient micropayments
+- All flows tracked on-chain with minimal gas overhead
-## Related pages
+## Notes
-
-
- Staking, delegation, probabilistic payments, and round mechanics in full detail.
-
-
- LPT's role in staking, governance, and the L1-to-Arbitrum bridge.
-
-
- How LIPs are proposed, voted on, and how protocol parameters change.
-
-
- The engineering trade-offs behind inflation design, probabilistic payments, and protocol-network separation.
-
-
+- The contracts are deployed on Ethereum mainnet (and Arbitrum for L2)
+- Contract addresses are stored in the Controller registry for upgradeability
+- All token operations use standard ERC20 approval patterns
+- The system supports both L1 and L2 deployments with backward compatibility
+- Round-based operations ensure coordinated protocol upgrades and state transitions
+- The probabilistic payment system reduces on-chain transactions by ~99% while maintaining fair expected value for all parties
diff --git a/v2/about/protocol/governance-model.mdx b/v2/about/protocol/governance-model.mdx
index 5951a5126..68ba1d041 100644
--- a/v2/about/protocol/governance-model.mdx
+++ b/v2/about/protocol/governance-model.mdx
@@ -2,10 +2,10 @@
title: Livepeer Governance Model
sidebarTitle: Governance Model
description: >-
- The on-chain governance model for the Livepeer protocol: a permissionless,
- transparent, community-driven framework for upgrades, parameter changes, and
- treasury stewardship. Covers key actors, processes, and mechanisms that drive
- coordination and ecosystem growth.
+ This page describes the on-chain governance model which provides a
+ permissionless, transparent, and community-driven framework for upgrading and
+ governing the Livepeer protocol. It touches on the key actors, processes and
+ mechanisms that drive coordination and growth of the Livepeer ecosystem.
pageType: concept
keywords:
- livepeer
diff --git a/v2/about/protocol/overview.mdx b/v2/about/protocol/overview.mdx
index 4af7a13d9..75ed7681f 100644
--- a/v2/about/protocol/overview.mdx
+++ b/v2/about/protocol/overview.mdx
@@ -2,10 +2,10 @@
title: Protocol Overview
sidebarTitle: Overview
description: >-
- Design, contract architecture, staking and reward mechanisms, incentive
- alignment, and governance model of the on-chain Livepeer Protocol. Covers how
- work is coordinated, secured, and rewarded, and how upgrades are proposed and
- implemented.
+ This section outlines the design, contract architecture, staking & reward
+ mechanisms, incentive alignment and governance model of the on-chain Livepeer
+ Protocol that governs how work is coordinated, secured and rewarded and how
+ upgrades are proposed and implemented.
keywords:
- livepeer
- about
diff --git a/v2/about/protocol/treasury.mdx b/v2/about/protocol/treasury.mdx
index b6506a86b..49b210290 100644
--- a/v2/about/protocol/treasury.mdx
+++ b/v2/about/protocol/treasury.mdx
@@ -2,9 +2,8 @@
title: Livepeer Treasury
sidebarTitle: Treasury
description: >-
- How the Livepeer treasury accumulates funds, how disbursements are authorised
- through governance, and how the treasury’s role is evolving across the
- protocol’s roadmap.
+ This page outlines how the treasury accumulates funds, how disbursements are
+ authorised, and how its role is evolving across the protocol’s roadmap.
pageType: concept
keywords:
- livepeer
diff --git a/v2/about/resources/compendium/livepeer-glossary.mdx b/v2/about/resources/compendium/livepeer-glossary.mdx
index 821ba2373..52f0b8d78 100644
--- a/v2/about/resources/compendium/livepeer-glossary.mdx
+++ b/v2/about/resources/compendium/livepeer-glossary.mdx
@@ -11,7 +11,7 @@ keywords:
- glossary
- comprehensive
- terms
-'og:image': /snippets/assets/site/og-image/fallback.png
+'og:image': /snippets/assets/media/og-images/fallback.png
'og:image:alt': Livepeer Docs social preview image
'og:image:type': image/png
'og:image:width': 1200
diff --git a/v2/about/resources/knowledge-hub/gateways-vs-orchestrators.mdx b/v2/about/resources/knowledge-hub/gateways-vs-orchestrators.mdx
index 095c63fb5..6bb1f83b4 100644
--- a/v2/about/resources/knowledge-hub/gateways-vs-orchestrators.mdx
+++ b/v2/about/resources/knowledge-hub/gateways-vs-orchestrators.mdx
@@ -2,13 +2,10 @@
title: 'Gateways Vs. Orchestrators: What’s the Difference?'
sidebarTitle: Gateways Vs. Orchestrators
description: >-
- Livepeer uses two core node types, Gateways and Orchestrators, that work
+ Livepeer uses two core node types-**Gateways** and **Orchestrators**-that work
together to provide real-time AI video compute at scale. Although closely
- connected, they serve entirely different purposes in the decentralised compute
- marketplace.
-pageType: resource
-audience: community
-purpose: explain
+ connected, they serve entirely different purposes. This page breaks down how
+ they differ and why both roles matter for a decentralized compute marketplace.
keywords:
- livepeer
- about
diff --git a/v2/about/resources/reference/technical-roadmap.mdx b/v2/about/resources/reference/technical-roadmap.mdx
index 2b6253f9e..2cb26bca7 100644
--- a/v2/about/resources/reference/technical-roadmap.mdx
+++ b/v2/about/resources/reference/technical-roadmap.mdx
@@ -1,157 +1,25 @@
---
-title: 'Technical Roadmap'
-sidebarTitle: 'Technical Roadmap'
-description: >-
- The Livepeer Foundation three-phase roadmap, current initiatives, and where to track ecosystem progress.
-pageType: reference
-audience: community
+description: Review the current Livepeer roadmap posts covering network and product direction.
purpose: reference
+pageType: reference
+title: "Technical Roadmap"
keywords:
- livepeer
- - roadmap
+ - about
+ - resources
- technical roadmap
- - foundation
- - cascade
- - AI inference
- - SPE
- - governance
-'og:image': /snippets/assets/site/og-image/en/about.png
-'og:image:alt': Livepeer Docs social preview image for About
+ - roadmap
+ - https
+ - introducing
+'og:image': /snippets/assets/media/og-images/fallback.png
+'og:image:alt': Livepeer Docs social preview image
'og:image:type': image/png
'og:image:width': 1200
'og:image:height': 630
-status: current
-lastVerified: 2026-04-07
----
-
-import { LinkArrow } from '/snippets/components/elements/links/Links.jsx'
-import { StyledTable, TableRow, TableCell } from '/snippets/components/wrappers/tables/Tables.jsx'
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-import { CenteredContainer } from '/snippets/components/wrappers/containers/Containers.jsx'
-
-
- The Livepeer ecosystem is guided by the Cascade vision: establishing Livepeer as the leading AI infrastructure for real-time video. The Foundation's roadmap executes that vision across three phases from 2025 to 2028 and beyond.
-
-
+audience: general
+lastVerified: 2026-03-17
---
+Use these roadmap posts to review the current Livepeer network vision and product direction:
-The Livepeer Foundation published the Cascade vision in late 2024, defining the project's direction toward real-time AI video infrastructure. A November 2025 update refined that vision as early validation - AI inference fee growth of 3x year-on-year, with over 72% of fee revenue now driven by AI workloads - confirmed the direction. The roadmap below reflects the Foundation's public planning as of early 2026.
-
-All protocol parameter values referenced in this page (inflation rate, bonding rate target, active set size) are governance-controlled and change between rounds. Verify current values at [explorer.livepeer.org](https://explorer.livepeer.org).
-
-
-
-## Phase overview
-
-The Foundation's roadmap is structured in three phases. Phase transitions are driven by ecosystem milestones, not fixed calendar dates.
-
-
-
-
- Phase
- Approximate timeframe
- Focus
-
-
-
-
- **Phase 1 - Foundation**
- 2025
- Establish AI subnet, initial SPE structure, core infrastructure hardening
-
-
- **Phase 2 - Scaling**
- 2026-2027
- Grow AI demand, diversify compute supply, expand gateway ecosystem, close latency gap with centralised alternatives
-
-
- **Phase 3 - Decentralisation**
- 2028 and beyond
- Reduce Foundation operational dependency, full community governance of key infrastructure decisions
-
-
-
-
-
-
-## Current phase: Foundation
-
-The network is in Phase 1 as of early 2026. The primary Phase 1 deliverables are the AI inference growth track, the SPE (Special Purpose Entity) organisational model, and go-livepeer software maturity.
-
-**AI inference growth**: AI inference fee revenue grew 21x over three consecutive quarters through Q3 2025. AI workloads now account for the majority of network fee revenue. Real-time AI video use cases - avatar generation, style transfer, video analysis pipelines - are the primary demand drivers. The Daydream platform and the Embody/Agent SPE represent the most visible demand-side initiatives.
-
-**SPE model**: The Foundation structured ecosystem work through specialised operational entities. Active SPEs include the Transformation SPE (ecosystem go-to-market), the Protocol R&D SPE (core go-livepeer and ai-worker development), and LiveInfra (network infrastructure reliability). SPE progress is tracked on the [Livepeer Forum](https://forum.livepeer.org).
-
-**go-livepeer releases**: Releases v0.8.7 through v0.8.10 added significant AI pipeline capabilities, improved orchestrator session management, and expanded the supported model set. Release notes are at [github.com/livepeer/go-livepeer/releases](https://github.com/livepeer/go-livepeer/releases) and [github.com/livepeer/ai-worker/releases](https://github.com/livepeer/ai-worker/releases).
-
-**Governance activity**: Three major LIPs advanced in the 2025-2026 period:
-- LIP-107: Proposes reducing `targetBondingRate` from 50% to 46% with an accelerated `inflationChange` parameter to reduce protocol inflation more responsively.
-- LIP-100: Proposes adding ceiling and floor bounds to the inflation rate to limit extreme inflation outcomes.
-- LIP-101: Restarted the on-chain treasury, enabling community-governed grants funded by a percentage of inflation.
-
-Verify current proposal status at [explorer.livepeer.org/governance](https://explorer.livepeer.org/governance) and [forum.livepeer.org](https://forum.livepeer.org).
-
-
-
-## Where to track progress
-
-
-
-
- Source
- What it tracks
- URL
-
-
-
-
- **Livepeer Explorer**
- On-chain metrics: bonding rate, inflation rate, active set, round data, fee revenue
- [explorer.livepeer.org](https://explorer.livepeer.org)
-
-
- **Livepeer Forum**
- Governance proposals (LIPs), SPE retrospectives, ecosystem discussions
- [forum.livepeer.org](https://forum.livepeer.org)
-
-
- **go-livepeer releases**
- Software releases, AI pipeline additions, bug fixes
- [github.com/livepeer/go-livepeer/releases](https://github.com/livepeer/go-livepeer/releases)
-
-
- **ai-worker releases**
- AI model support updates, inference worker changes
- [github.com/livepeer/ai-worker/releases](https://github.com/livepeer/ai-worker/releases)
-
-
- **Foundation blog**
- Vision updates, SPE announcements, ecosystem milestones
- [blog.livepeer.org](https://blog.livepeer.org)
-
-
- **Messari reports**
- Quarterly network performance analysis, fee trends, network health
- [messari.io](https://messari.io) (search Livepeer)
-
-
-
-
-
-
-## Related pages
-
-
-
- How inflation, fees, and rewards work and what the current economic state of the network is.
-
-
- How LIPs are proposed, voted on, and implemented.
-
-
- The top-level introduction to Livepeer's mission, history, and network structure.
-
-
- The engineering trade-offs behind the protocol's core mechanisms.
-
-
+- https://blog.livepeer.org/introducing-livepeer-cascade-a-vision-for-livepeers-future-in-the-age-of-real-time-ai-video/
+- https://blog.livepeer.org/a-real-time-update-to-the-livepeer-network-vision/
diff --git a/v2/about/resources/x-deprecated/livepeer-glossary.mdx b/v2/about/resources/x-deprecated/livepeer-glossary.mdx
deleted file mode 100644
index 52f0b8d78..000000000
--- a/v2/about/resources/x-deprecated/livepeer-glossary.mdx
+++ /dev/null
@@ -1,422 +0,0 @@
----
-title: Livepeer Glossary
-sidebarTitle: Livepeer Glossary
-description: >-
- A comprehensive glossary of terms used in the Livepeer Real-time AI & Video
- Network
-keywords:
- - livepeer
- - resources
- - livepeer glossary
- - glossary
- - comprehensive
- - terms
-'og:image': /snippets/assets/media/og-images/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-pageType: glossary
-audience: general
-lastVerified: 2026-03-17
-purpose: glossary
----
-
-
-Terms (Actors & Network)
-
-- Gateway
-- Orchestrator
-- Delegator
-- Developer
--
-
-Terms (web3)
-
-- DePIN
-- LPT
-- ETH
--
-
-Terms (video)
-
-- Transcoding
-- Ingest
-- Delivery
-- Streaming
--
-
-Terms (AI)
-
-- Inference
-- Model
-- Pipeline
-- World Model
-- Agent
-
-Terms (Other)
-
--
-
-
-
-title: 'Livepeer Glossary'
-sidebarTitle: 'Livepeer Glossary'
-description: 'A comprehensive glossary of terms used in the Livepeer Real-Time AI & Video Network'
-
-
-
-Terms not verified, brainstorm list only
-
-# Livepeer Core Terms
-
-### Livepeer Protocol
-
-The protocol is the ruleset + on-chain logic governing:
-
-- staking
-- delegation
-- inflation & rewards
-- orchestrator selection
-- slashing
-- probabilistic payments
-- verification rules
-
-The economic and coordination layer that enforces correct behavior.
-
-### Livepeer Network
-
-The network is the actual running system of machines performing work:
-
-- Orchestrators (GPU nodes)
-- Transcoders / Workers
-- Gateways
-- Broadcasters
-- Verification processes
-- Job routing
-- Real-time AI & video compute
-
-It is the live, operational decentralized GPU mesh running video + AI jobs.
-
-### Protocol Actor
-
-Protocol Actors are the main participants in the protocol who make up the core functions of th~~e network~~ (wrong).
-Protocol Actors include gateways, orchestrators, and delegators.
-
-### Livepeer Actor
-
-A Livepeer actor is a participant in the protocol or network-human or machine-that performs a defined role such as submitting jobs, providing compute, verifying work, or securing the system.
-
-### Network Participant
-
-Same as Protocol Actor (..?)
-
-### Livepeer Ecosystem
-
-### Ecosystem Partner
-
-A complimentary company working with Livepeer (for example: Storage, Security).
-
-### Developer Platform
-
-An abstraction layer on the livepeer protocol that provides tools and services for developers to use & build applications on top of Livepeer. Examples include Livepeer Studio, Daydream, and Streamplace.
-
-###
-
-# Actors & Network Roles
-
-### **Gateway**
-
-A _gateway_ is a Livepeer node operated by a user or organisation to interact **directly with the Livepeer protocol**.
-Gateways submit jobs, route work to orchestrators, manage payment flows, and provide a direct interface to the network.
-**Not** the same as hosted services like Studio or Daydream.
-
-### **Orchestrator (GPU Node)**
-
-A supply-side operator that contributes **GPU resources** to the network.
-Orchestrators receive jobs, perform transcoding or AI inference, and get paid via LPT rewards + ETH fees.
-
-### **Transcoder (Worker)**
-
-A worker process-often managed by an orchestrator-that performs the actual compute work (transcoding or AI inference).
-
-### **Delegator**
-
-A token holder who stakes their LPT to an orchestrator to help secure the network and earn a share of rewards.
-
-### **Developer**
-
-Anyone building applications _using_ Livepeer, usually through **hosted services** (e.g., Studio, Daydream) or library SDKs.
-Developers only run gateways if they want direct protocol access.
-
-### **Broadcaster (-> Gateway)**
-
-
-
- Deprecated Term
- {' '}
- See **Gateways** A job submitter-often a user-facing service-that sends video
- or AI jobs into the network via a gateway.
-
-
-### **Verifier**
-
-A network component (protocol-level) responsible for validating work performed by orchestrators to ensure correctness.
-
-### **Protocol**
-
-The on-chain governance and incentive layer that coordinates orchestrators, staking rewards, inflation, slashing, and job payments.
-
-
-
-# Core Network Concepts
-
-### **Job**
-
-A unit of work submitted to the network: video transcoding tasks, AI inference requests, or real-time processing pipelines.
-
-### **Segment**
-
-A short chunk of video that is independently transcoded, enabling parallel processing.
-
-### **Ticket / Payment Ticket**
-
-Livepeer’s probabilistic micropayment mechanism used to pay orchestrators efficiently at high throughput.
-
-### **Rounds**
-
-Discrete time intervals (Ethereum blocks) used to calculate staking rewards and coordinate global state.
-
-### **Slashing**
-
-A penalty applied to orchestrators for misbehavior (e.g., failing verification or submitting fraudulent results).
-
-### **Inflation**
-
-The issuance of new LPT each round, distributed to orchestrators and delegators.
-
-### **Reputation**
-
-A measure of an orchestrator’s performance, reliability, and trustworthiness, influencing job routing and payments.
-
-
-
-# Web3 Terms
-
-### **Ethereum Address (Wallet Public Address)**
-
-An Ethereum address on the blockchain is a 42-character hexadecimal string that starts with 0x.
-It is derived from the last 20 bytes of the public key and is used to send and receive funds or
-interact with smart contracts.
-
-### **Block Timestanps**
-
-The Ethereum blockchain uses a block.timestamp field within each block, which is a 256-bit value
-representing the number of seconds since January 1, 1970, at 00:00:00 UTC (Unix time).
-This timestamp is used by smart contracts for time-dependent functions but is a network mechanism,
-not part of the address format.
-
-### **DePIN**
-
-"Decentralized Physical Infrastructure Network."
-A network where physical or computational resources (GPUs, bandwidth, storage) are coordinated through crypto-economic incentives.
-
-### **LPT (Livepeer Token)**
-
-The governance and staking token used for orchestrator selection, delegation, reward distribution, and protocol security.
-The Livepeer Token id deployed to the Ethereum Mainnet, however multiple
-
-### Tokenomics (Token Economics)
-
-Main Definition: The study of designing economic systems for decentralized networks.
-This term is often used when describing both the protocol functions and which token incentives serve to create the optimal codified environment for the efficient operation of the network.
-Usage in Practice:
-This term is often used in multiple senses in web3, being used in both a macro economics sense (to describe high level actors incentives and their impact on behavior) and in a micro sense to describe inflation curves, token allocations, the tokenomics of a specific actor (such as orchestrator, delegator, broadcaster), and token release schedules.
-
-### Game Theory
-
-### On-chain
-
-On-chain refers to the data and operations that are recorded on the blockchain.
-In the context of Livepeer, it refers to the protocol layer that governs staking, delegation, rewards, and verification.
-
-### Off-chain
-
-Off-chain refers to the data and operations that are not recorded on the blockchain.
-In the context of Livepeer, it refers to the network layer that performs video transcoding,
-AI inference, and job routing, including orchestrators and gateways.
-
-### **ETH**
-
-Ethereum’s native token. Used to pay fees for transcoding, AI jobs, and network interactions.
-
-### **ARB**
-
-Arbitrum’s native token. Used to pay fees for transcoding, AI jobs, and network interactions.
-
-### **Layer 2**
-
-A scaling solution for Ethereum that enables high-throughput, low-cost transactions. Livepeer uses Arbitrum Layer 2 for its protocol.
-
-### **Staking**
-
-Locking LPT to an orchestrator to earn a share of rewards.
-
-### **Gas**
-
-The fee paid for on-chain operations.
-
-### **Slashing Conditions**
-
-Network-defined rules that determine when LPT is destroyed due to misbehavior.
-
-### Bridging
-
-The process of moving tokens between (eg Ethereum Layer 1 and Arbitrum L2)
-
-### Rollups
-
-One of the methods by which transactions on layer 2 blockchains are tallied and confirmed on the main chain.
-
-### Optimistic Rollup
-
-A type of Layer 2 scaling solution that processes transactions off-chain and posts only a compressed summary to Ethereum Mainnet. It assumes transactions are valid by default ("optimistic") and allows a challenge window — typically 7 days — during which anyone can dispute a fraudulent transaction. Arbitrum One uses this design. The 7-day challenge period on LPT bridge withdrawals from Arbitrum to Ethereum is a direct consequence of this security model.
-
-### Retryable Ticket
-
-An Arbitrum mechanism for cross-chain messages that originate on Ethereum and need to execute on Arbitrum. When a deposit is submitted via the Arbitrum bridge, a retryable ticket is created on Arbitrum to carry out the corresponding L2 action (e.g. crediting tokens). If the L2 execution fails — typically due to insufficient gas — the ticket can be resubmitted manually via the Arbitrum retryable dashboard. Tickets expire after 7 days if not redeemed.
-
-
-
-# Video Engineering Terms
-
-### **Transcoding**
-
-Converting video from one format, resolution, or bitrate to another. Livepeer accelerates this distribution step economically.
-
-### **Ingest**
-
-The process of receiving a live video feed from a broadcaster.
-
-### **Delivery**
-
-Sending processed (transcoded) video to viewers via a CDN or playback service.
-
-### **Streaming**
-
-Continuous transmission of audio/video over the network.
-
-### **RTMP**
-
-A common ingest protocol for live streaming to gateways.
-
-### **HLS**
-
-A segmented streaming protocol widely used for delivery to end-users.
-
-### **Bitrate**
-
-The amount of data encoded per second of video; a key parameter in transcoding.
-
-### **RTMP**
-
-[Real-Time Messaging Protocol (RTMP)](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol)
-is a communication protocol for streaming audio, video, and data over the Internet.
-
-
-
-# AI Terms
-
-### **Inference**
-
-Running a model to generate outputs (frames, embeddings, predictions) from inputs.
-
-### **Model**
-
-A machine learning system (e.g., diffusion model, transformer, world model) hosted on an orchestrator or gateway.
-
-### **Pipeline**
-
-A sequence of inference steps: e.g., frame generation → upscaling → audio alignment → encoding.
-
-### **Real-Time AI**
-
-AI workflows that generate or transform video frames fast enough to maintain interactive/streaming use cases.
-
-### **World Model**
-
-A holistic model capable of understanding and generating coherent multi-modal worlds (video, audio, action).
-
-### **Agent**
-
-A system that uses models to make decisions or interact with an environment-potentially running on decentralized GPUs.
-
-### **TensorRT**
-
-An inference optimisation framework used to accelerate model execution on NVIDIA GPUs.
-
-### **ControlNet**
-
-A conditioning mechanism for diffusion models that allows structural guidance (pose, depth, edges, etc).
-
-
-
-# Payments & Economics
-
-### **Fee Pool**
-
-Accumulated fees available for orchestrators to earn based on their performance and stake weight.
-
-### **Reward Cut**
-
-The percentage of staking rewards kept by the orchestrator.
-
-### **Fee Cut**
-
-The percentage of job fees kept by the orchestrator.
-
-### **Delegator Rewards**
-
-LPT or ETH earned by delegators proportional to their stake.
-
-
-
-# Operational Terms
-
-### **Node**
-
-Any machine running Livepeer software-gateway nodes, orchestrator nodes, or worker nodes.
-
-### **CLI**
-
-Command-line interface used to configure gateways or orchestrators.
-
-### **Configuration Parameters**
-
-Settings (flags/env vars) that control node behavior, payments, and preferred orchestrators.
-
-### **Health Check**
-
-A verification check to ensure orchestrators produce correct r
-
-# Other Terms
-
-### **Decentralized GPU Network**
-
-A marketplace of GPUs contributed by orchestrators worldwide, coordinated through crypto incentives.
-
-### **Open Source**
-
-Code that is publicly available and community-maintained-central to Livepeer’s philosophy.
-
-### **Edge Compute**
-
-Computing performed near the data source (e.g., near real-time video generation).
-
-### **Latency**
-
-The delay between receiving input and delivering output-critical in real-time video & AI.
-
-### **Quality Ladder**
-
-Multiple renditions of a video at different qualities, produced during transcoding for adaptive playback.
diff --git a/v2/developers/guides/developer-help.mdx b/v2/developers/guides/developer-help.mdx
deleted file mode 100644
index 5e4371da2..000000000
--- a/v2/developers/guides/developer-help.mdx
+++ /dev/null
@@ -1,283 +0,0 @@
----
-title: Developer Help
-sidebarTitle: Developer Help
-description: >-
- Every way to get help as a Livepeer developer — Discord channels, forum,
- office hours, GitHub issues, and more.
-pageType: faq
-keywords:
- - livepeer
- - developer
- - help
- - support
- - discord
- - forum
- - office hours
- - github
- - bug report
- - contact
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: developer
-purpose: faq
-lastVerified: '2026-03-03'
----
-import { GotoCard } from '/snippets/components/elements/links/Links.jsx'
-
-Whether you are stuck on an API call, troubleshooting a node, reporting a security vulnerability, or looking for a collaborator — this page maps every available help channel to the type of question it is best suited for.
-
-
-
-## Quick Reference
-
-| Channel | Best for | Response time |
-|---|---|---|
-| [Discord `#lounge`](https://discord.gg/livepeer) | Builder questions, general development | Hours |
-| [Discord `#ai-research`](https://discord.gg/livepeer) | AI inference, ComfyUI, pipelines | Hours |
-| [Discord `#delegating`](https://discord.gg/livepeer) | Staking, delegation, LPT | Hours |
-| [Discord `#governance`](https://discord.gg/livepeer) | Protocol proposals, governance votes | Hours–days |
-| [Livepeer Forum](https://forum.livepeer.org) | In-depth technical discussions, protocol questions | Days |
-| [Developer Office Hours](https://www.livepeer.org/dev-hub) | Synchronous help from the core team | Bi-weekly |
-| [GitHub Issues (studio)](https://github.com/livepeer/studio/issues) | Bugs in Livepeer Studio / API | Days |
-| [GitHub Issues (go-livepeer)](https://github.com/livepeer/go-livepeer/issues) | Bugs in the node software | Days |
-| [Immunefi Bug Bounty](https://immunefi.com/bug-bounty/livepeer/information/) | Smart contract security vulnerabilities | Per programme terms |
-
-
-
-## Discord
-
-The Livepeer Discord is the primary real-time community for builders and network participants.
-
-**Invite:** [discord.gg/livepeer](https://discord.gg/livepeer)
-
-### Channels
-
-
-
-
-
-**`#lounge`** — The main channel for developers. Ask questions about the API, SDKs, stream configuration, video assets, and general development. The most active support channel for application builders.
-
-**`#ai-research`** — Dedicated to Livepeer's AI inference capabilities. Ask about the AI subnet, ComfyUI workflows, ComfyStream, the Daydream API, pipeline configuration, and GPU requirements.
-
-
-
-
-
-**`#delegating`** — Questions about delegating LPT, staking rewards, choosing an orchestrator, and understanding delegation mechanics.
-
-
-
-
-
-**`#governance`** — Discussions around Livepeer Improvement Proposals (LIPs), governance votes on the Explorer, and protocol-level decision-making.
-
-
-
-
-
-**`#landing-pad`** — The first stop for new community members. Good place to introduce yourself and get oriented before asking technical questions in other channels.
-
-
-
-
-
-**`#general`** — General ecosystem chat.
-
-**`#introductions`** — Introduce yourself to the community.
-
-
-
-
-
-
-Discord is best for real-time, conversational questions. For questions that deserve a permanent, searchable answer — especially detailed technical or protocol questions — the Forum is a better home.
-
-
-
-
-## Livepeer Forum
-
-[forum.livepeer.org](https://forum.livepeer.org)
-
-The forum is the permanent knowledge base of the Livepeer community. Discussions here are indexed and searchable, making it the best place for questions that others are likely to search for in the future.
-
-### Forum Categories
-
-
-
-
-Questions for new participants — setting up wallets, delegating for the first time, understanding the network. Post here if you are stuck early in your journey.
-
-
-
-Technical discussions about building applications on Livepeer — API questions, SDK issues, integration patterns, and architecture decisions. The best category for developers who need an in-depth answer.
-
-
-
-Operational questions and discussions for people running orchestrator nodes — configuration, transcoding performance, reward mechanics, and GPU selection.
-
-
-
-Protocol-level technical discussions — smart contracts, cryptoeconomics, bonding mechanics, and security topics.
-
-
-
-Governance discussions and Livepeer Improvement Proposals (LIPs). Read active proposals, post feedback, or draft new proposals here before moving them to an on-chain vote.
-
-
-
-
-
-Before posting, search the forum for existing threads on your topic. Many common questions — particularly around orchestrator configuration, delegating, and API behaviour — have thorough existing answers.
-
-
-
-
-## Developer Office Hours
-
-**Bi-weekly calls with the Livepeer core team.**
-
-Office Hours are the best place for synchronous, conversation-style technical help from people who built the network. They are particularly useful for:
-
-- Integration questions that require back-and-forth discussion
-- Feedback on architecture decisions before building
-- Questions about upcoming features or protocol changes
-- Early-stage builders looking for guidance on product direction
-
-**Where to join:** [livepeer.org/dev-hub](https://www.livepeer.org/dev-hub) — the events calendar on the Dev Hub lists upcoming office hours sessions with join links.
-
-Office Hours sessions listed on livepeer.org have included:
-- **ComfyUI community demo sessions** — Discover new demos from the ComfyUI community
-- **Coordinated development calls** — Ongoing discussions on development coordination
-- **Ecosystem priority updates** — Updates on ecosystem priorities, goals, and growth
-
-
-
-## GitHub Issues
-
-For confirmed bugs, feature requests, and contribution discussions — GitHub Issues are the appropriate channel. Each repo has its own issue tracker.
-
-
-
-
- Report bugs with the Livepeer Studio dashboard, REST API, asset pipeline, or livestream behaviour. Use the issue templates provided.
-
-
-
- Report bugs in the orchestrator or broadcaster node software. Include go-livepeer version, OS, and reproduction steps.
-
-
-
- Report errors, outdated content, broken links, or missing documentation. Eight issue templates are available for different types of doc feedback.
-
-
-
- Report issues with the AI inference runtime — pipeline bugs, Docker image issues, or model loading problems.
-
-
-
- Report bugs in the JavaScript or React SDK. Include SDK version, browser/Node.js version, and a minimal reproduction.
-
-
-
- Issues with the Ethereum/Arbitrum smart contracts. For potential security vulnerabilities, use the Immunefi bug bounty programme instead.
-
-
-
-
-### Writing a Good Issue
-
-Before filing an issue on any Livepeer repository:
-
-1. **Search first** — Check whether the issue has already been reported
-2. **Use the templates** — Each repo provides issue templates; fill them out fully
-3. **Be specific** — Include versions, error messages, and reproduction steps
-4. **One issue per report** — Do not combine multiple bugs in a single issue
-
-
-
-## Livepeer Studio Support
-
-If you have a billing question, account issue, or need to contact Livepeer Inc about a commercial use case, the in-app support options inside [Livepeer Studio](https://livepeer.studio) are the appropriate route.
-
-For API access enquiries, enterprise use cases, or partnership discussions, contact the team via the Dev Hub at [livepeer.org/dev-hub](https://www.livepeer.org/dev-hub).
-
-
-
-## Security Vulnerabilities and Bug Bounties
-
-
-**Do not file security vulnerabilities as public GitHub issues.** Use the Immunefi programme below.
-
-
-For confirmed or suspected security vulnerabilities in Livepeer's smart contracts or protocol:
-
-**Immunefi Bug Bounty:** [immunefi.com/bug-bounty/livepeer](https://immunefi.com/bug-bounty/livepeer/information/)
-
-The programme covers smart contracts on Arbitrum and Ethereum. Rewards are paid in USDC. KYC is required for payout. A proof-of-concept (PoC) is required for all web/app reports.
-
-
-
-## Community and Social
-
-For less formal conversation, ecosystem news, and community announcements:
-
-
-
-
- The primary community hub — join for real-time chat with builders, orchestrators, delegators, and core team members.
-
-
-
- Permanent, searchable discussion threads for technical and protocol topics. Better than Discord for questions that benefit from lasting answers.
-
-
-
- Community discussions on Reddit — primarily ecosystem news and general protocol discussion.
-
-
-
- Livepeer has a Telegram presence for community updates. Find the link at the Community Hub on livepeer.org.
-
-
-
- Follow @Livepeer for protocol news, product launches, and ecosystem highlights. Not monitored for technical support queries.
-
-
-
- The official blog for in-depth technical articles, ecosystem stories, vision posts, and product announcements.
-
-
-
-
-
-
-## Grants and Funding Help
-
-If you are building something substantial on Livepeer and need funding:
-
-
-
-
- Open and Video Disruptor grant tracks for builders creating tools, applications, or educational content for the ecosystem.
-
-
-
- Scoped software bounties for specific tasks on the Livepeer protocol — a good entry point for open-source contributors.
-
-
-
- A bespoke 3-month programme for ambitious startups — grant funding, mentorship, investor access, and technical support.
-
-
-
-
-
-
-
-If you are unsure which channel to use: start with Discord `#lounge` for quick development questions, the Forum for technical questions that deserve a permanent answer, and GitHub Issues for confirmed bugs with reproduction steps.
-
diff --git a/v2/developers/opportunities/bug-bounties.mdx b/v2/developers/opportunities/bug-bounties.mdx
deleted file mode 100644
index 044f415dd..000000000
--- a/v2/developers/opportunities/bug-bounties.mdx
+++ /dev/null
@@ -1,200 +0,0 @@
----
-title: Bug Bounties
-sidebarTitle: Bug Bounties
-description: >-
- Report smart contract vulnerabilities in the Livepeer protocol and earn USDC
- rewards through the official Livepeer bug bounty programme on Immunefi.
-keywords:
- - livepeer
- - bug bounty
- - immunefi
- - security
- - smart contract
- - vulnerability
- - usdc
- - developer
- - builder opportunities
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-purpose: how_to
-pageType: reference
-audience:
- - security-researchers
- - protocol-contributors
- - developers
-status: current
-lastVerified: 2026-03
-sourceOfTruth: 'https://immunefi.com/bug-bounty/livepeer/information/'
----
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-import { DisplayCard } from '/snippets/components/wrappers/cards/CustomCards.jsx'
-import { BorderedBox } from '/snippets/components/wrappers/containers/Containers.jsx'
-
-{/* ============================================================
- INTRO
- ============================================================ */}
-
-
-
-Livepeer runs an active bug bounty programme on [Immunefi](https://immunefi.com/bug-bounty/livepeer/information/), the leading web3 bug bounty platform. The programme rewards security researchers who responsibly disclose vulnerabilities in Livepeer's smart contracts.
-
-Payouts are made in USDC on Ethereum, and KYC is required for all reward claims.
-
-
- The authoritative source for scope, reward tiers, rules, and submission instructions.
-
-
-
-
-{/* ============================================================
- SECTION 1 - PROGRAMME OVERVIEW
- ============================================================ */}
-
-
-
-## Programme Overview
-
-
-
-- **Scope:** Smart contracts only. The programme does not currently cover websites, apps, or off-chain infrastructure.
-- **Rewards:** Paid in USDC on Ethereum, denominated in USD.
-- **KYC:** Required for all reporters claiming a reward. You will need to provide visual proof of identity.
-- **Proof of Concept:** Required for all severity levels. Submissions without a PoC will not be considered.
-- **Triage:** Since early 2025, the Immunefi triage pipeline has been operated by the Protocol R&D SPE (Sidestream), which processes incoming reports and ensures response-readiness.
-
-
-
-
-
-{/* ============================================================
- SECTION 2 - SEVERITY AND REWARDS
- ============================================================ */}
-
-
-
-## Severity Levels and Rewards
-
-Rewards are distributed according to the Immunefi Vulnerability Severity Classification System (V2.2), a five-level scale covering both the consequence of exploitation and the likelihood of a successful attack.
-
-
-
-
- Rewards are capped at 10% of the economic damage caused, with the primary focus on possible loss of funds for Orchestrators, Delegators, and Broadcasters at the smart contract level.
-
- If there is a repeatable attack, only the first attack is considered unless further attacks cannot be mitigated via an upgrade or pause.
-
-
-
- Rewards for High severity vulnerabilities depend on the amount of unclaimed yield at risk and how long funds could be frozen.
-
-
-
-
-
-
-### Focus Areas
-
-The programme focuses on preventing:
-
-- Direct theft of user funds (at-rest or in-motion, excluding unclaimed yield)
-- Unexpected calls to privileged functions (for example, functions that should only be callable by the Governor contract)
-- Any condition that results in permanent freezing of user funds
-
-
-
-{/* ============================================================
- SECTION 3 - WHAT'S IN SCOPE
- ============================================================ */}
-
-
-
-## Scope
-
-The programme covers Livepeer's deployed smart contracts on Ethereum and Arbitrum. See the [full scope listing on Immunefi](https://immunefi.com/bug-bounty/livepeer/information/) for the definitive list of in-scope assets and contract addresses.
-
-### Out of Scope
-
-The following are explicitly excluded:
-
-- Testing on mainnet or public testnet deployed code -- all testing must be done on local forks
-- Testing with pricing oracles or third-party smart contracts
-- Phishing or social engineering attacks against employees or customers
-- Testing with third-party systems, browser extensions, or SSO providers
-- Denial of service attacks against project assets
-- Automated testing that generates high traffic
-- Public disclosure of an unpatched vulnerability before it has been resolved
-
-
-
-{/* ============================================================
- SECTION 4 - HOW TO SUBMIT
- ============================================================ */}
-
-
-
-## How to Submit a Report
-
-
-
- Ensure you have a working proof of concept on a local fork of mainnet or testnet. Document the attack vector, impact, and reproduction steps.
-
-
- Submit your report through the [Livepeer programme page on Immunefi](https://immunefi.com/bug-bounty/livepeer/information/). Do not disclose the vulnerability publicly before it has been resolved.
-
-
- On confirmation of a valid report, you will be asked to complete KYC verification via an external service before payment is released. You will need government-issued photo ID.
-
-
- Valid rewards are paid in USDC on Ethereum. Payout amounts are handled directly by the Livepeer team and are denominated in USD.
-
-
-
-
-
-
- Public disclosure of an unpatched vulnerability is a violation of the programme rules and will disqualify a submission from receiving a reward. Always report privately first.
-
-
-
-
-{/* ============================================================
- SECTION 5 - RECENT ACTIVITY
- ============================================================ */}
-
-
-
-## Recent Programme Activity
-
-The Livepeer bug bounty programme has been actively used. Recent examples include:
-
-- **March 2024** -- A protocol bug was fixed after a responsible disclosure through Immunefi. The vulnerability addressed a potential griefing attack allowing a bad actor to prevent a delegating token holder from accessing their rewards.
-- **October 2024** -- A critical-level bounty was paid after disclosure of a vulnerability that could have allowed a bad actor to drain ETH from the Minter contract via successive steps across multiple rounds.
-- **August 2025** -- A critical-level bounty was paid after disclosure of a vulnerability that could have allowed a bad actor to claim more ETH fees than intended through successive steps across multiple rounds.
-
-In all cases, no user funds were at risk at the time of patching and no exploits were observed on the network.
-
-
-
-{/* ============================================================
- SECTION 6 - RELATED
- ============================================================ */}
-
-
-
-
-
- Contribute code, documentation, or test coverage to Livepeer's core repositories.
-
-
- The SPE responsible for protocol security, vulnerability triage, and safe upgrades.
-
-
- Full scope, reward tiers, rules, and submission portal for the Livepeer bug bounty.
-
-
- The official Livepeer GitHub organisation. For non-security bugs, open an issue in the relevant repository.
-
-
diff --git a/v2/developers/opportunities/grants-and-programmes.mdx b/v2/developers/opportunities/grants-and-programmes.mdx
deleted file mode 100644
index fa49c9a36..000000000
--- a/v2/developers/opportunities/grants-and-programmes.mdx
+++ /dev/null
@@ -1,268 +0,0 @@
----
-title: Grants & Programmes
-sidebarTitle: Grants & Programmes
-description: >-
- Livepeer funding opportunities for app builders, AI workflow creators,
- orchestrators, and research teams -- from microgrants to multi-month
- accelerator programmes.
-keywords:
- - livepeer
- - developers
- - grants
- - programmes
- - hackathon
- - ai video startup
- - comfyui
- - bootcamp
- - funding
- - builder opportunities
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-purpose: how_to
-pageType: guide
-audience:
- - developers
- - app-builders
- - ai-workflow-creators
- - orchestrators
- - researchers
-status: current
-lastVerified: 2026-03
-sourceOfTruth: 'https://www.livepeer.org/dev-hub'
----
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-import { DisplayCard } from '/snippets/components/wrappers/cards/CustomCards.jsx'
-import { BorderedBox } from '/snippets/components/wrappers/containers/Containers.jsx'
-import { GotoCard } from '/snippets/components/elements/links/Links.jsx'
-
-{/* ============================================================
- INTRO
- ============================================================ */}
-
-
-
-Livepeer provides multiple funded pathways for builders across its ecosystem. Grants, accelerator programmes, hackathons, and hacker cohorts are run through a combination of Livepeer Foundation initiatives, SPE-funded programmes, and community partnerships with organisations like Encode Club.
-
-All grant programmes are managed through [livepeer.org/dev-hub](https://www.livepeer.org/dev-hub), which is the primary application entry point.
-
-
-
-{/* ============================================================
- SECTION 1 - GRANT TYPES
- ============================================================ */}
-
-
-
-## Grant Types
-
-
-
-
- For ambitious individuals and teams conducting cutting-edge video research or building novel user-centred applications leveraging Livepeer's decentralised video compute network.
-
- **Who it's for:** Researchers, independent developers, and creative technologists.
-
-
-
- For individuals and teams building tools and applications that support supply-side node operations, delegation, and the overall health of the Livepeer network.
-
- Past examples include governance bots, educational content for new orchestrators and delegators, and tooling to parse and debug node logs.
-
- **Who it's for:** Orchestrators, node operators, delegators, and tooling developers.
-
-
-
- Tightly scoped projects with clear deliverables that can be completed in one month or less. Covers integrating Livepeer into a product or feature, or creating educational guides, tutorials, and video walkthroughs.
-
- **Who it's for:** Independent developers, content creators, integration engineers.
-
-
-
- Grants for developers who build and open-source real-time AI video workflows using ComfyUI and ComfyStream with the Livepeer network. Additional incentives are available for extended contributions.
-
- **Who it's for:** ComfyUI workflow creators, AI video developers, creative coders.
-
-
-
-
-
-
-
- Grant programmes open and close on a rolling basis. The [Livepeer Dev Hub](https://www.livepeer.org/dev-hub) always shows currently open calls. If a specific programme is not listed, it may be between cohorts.
-
-
-
-
-{/* ============================================================
- SECTION 2 - ACCELERATOR PROGRAMME
- ============================================================ */}
-
-
-
-## AI Video Startup Programme
-
-
-
-Livepeer's AI Video Startup Programme is a bespoke three-month accelerator designed to help selected startups build and scale decentralised AI video applications on the Livepeer network.
-
-
-
-
-
-Selected teams receive:
-
-- Grant funding of up to $20,000
-- Infrastructure credits for AI inference and transcoding
-- Expert technical mentorship from the Livepeer engineering team
-- Early access to new AI video infrastructure and pipelines
-- Co-marketing and partnership activation opportunities
-- Investor networking and showcase opportunities
-
-The first cohort (August to October 2024) included eight startups: Flipguard, Katana, Newcoin, Operator, Origin Stories, Refraction, Supermodel, and StreamEth. Teams focused on incorporating generative AI features including text-to-image, image-to-image, image-to-video, upscaling, and speech-to-text into their applications, using existing Livepeer pipelines or building and deploying their own.
-
-A parallel programme run in partnership with Encode Club offers an eight-week accelerator for past Encode programme participants and others who wish to join, with weekly workshops, one-on-one sessions, and support for technical development, design, and fundraising.
-
-
-
- The AI Video Startup Programme is listed on the Dev Hub when applications are open.
-
-
- The Encode Club variant of the accelerator for programme alumni and the wider community.
-
-
-
-
-
-{/* ============================================================
- SECTION 3 - COMFYUI HACKER PROGRAMME
- ============================================================ */}
-
-
-
-## ComfyUI Live Video Hacker Programme
-
-The ComfyUI Live Video Hacker Programme brings together developers, creators, and AI enthusiasts to build real-time AI video workflows using ComfyUI and ComfyStream, powered by the Livepeer network.
-
-Participants join a cohort to create and publish innovative live video AI pipelines. Grants are available for contributors who open-source their workflow and publish a write-up. Additional incentives exist for more extensive contributions. Participants also join a closed Discord group with other developers for peer collaboration.
-
-**What you'll use:**
-
-- [ComfyStream](https://github.com/livepeer/comfystream) -- an open-source ComfyUI custom node for running real-time media workflows
-- [ComfyStream Docs](https://docs.comfystream.org) -- setup, deployment, and model guides
-- Livepeer network for GPU-backed real-time AI inference
-
-The first cohort ran in January 2025 with a demo day on 31 January 2025. A second cohort opened shortly after.
-
-
- Hacker Programme cohort applications are listed on the Dev Hub when open.
-
-
-
-
-{/* ============================================================
- SECTION 4 - BOOTCAMP
- ============================================================ */}
-
-
-
-## Real-Time Video AI Bootcamp
-
-Launched in February 2025 in partnership with Encode Club, the Real-Time Video AI Bootcamp is a developer-focused educational programme combining technical workshops, hands-on project development, and incentivised challenges to accelerate adoption of real-time AI video processing.
-
-Participants explore workflow orchestration using Livepeer's Pipelines product, gain experience with GPU-backed inference, and use the network's decentralised infrastructure to build interactive applications. The programme aims to onboard new technical talent and encourage ecosystem experimentation with Livepeer's AI stack.
-
-
-
- Encode Club partners with Livepeer on developer bootcamp and accelerator programmes.
-
-
- Watch for future bootcamp cohort announcements on the Dev Hub.
-
-
-
-
-
-{/* ============================================================
- SECTION 5 - HACKATHONS
- ============================================================ */}
-
-
-
-## Hackathons
-
-Livepeer hosts and co-sponsors hackathons as a way to generate new ideas, attract builders, and seed projects that may continue as grant recipients or SPE proposals.
-
-### Livepeer Summit Hackathon
-
-The Livepeer Summit brings together core contributors, builders, and ecosystem stakeholders for two days of strategy and hacking. The Summit Hackathon is central to the event, with participants invited to work on governance, growth, network design, Daydream, Gateway infrastructure, or any bold new direction for the ecosystem.
-
-Outputs range from quick experiments and ambitious prototypes to governance proposals. Past Summit participants have included protocol engineers, workflow owners, orchestrators, and community builders.
-
-[Learn more about the Livepeer Summit](https://summit2025.livepeer.org/)
-
-### Encode Club Hackathons
-
-Encode Club runs AI video-focused hackathons where participants can build on Livepeer's infrastructure. Winners are often invited into the accelerator programme for continued development.
-
-[Encode Club Programmes](https://www.encode.club)
-
-
-
-{/* ============================================================
- SECTION 6 - APPLYING
- ============================================================ */}
-
-
-
-## How to Apply
-
-All grant and programme applications are managed through the Livepeer Dev Hub. The Dev Hub shows currently open calls, with application forms and programme details linked from each listing.
-
-For programmes between cohorts, the Dev Hub will show upcoming or waitlist options.
-
-
-
- Go to [livepeer.org/dev-hub](https://www.livepeer.org/dev-hub) and review open calls.
-
-
- Match your project type to the grant or programme that fits -- see the [grant types overview](#grant-types) above.
-
-
- Most applications ask for a project description, team background, how you plan to use Livepeer, and your expected output or deliverables.
-
-
- Submit via the Dev Hub form. Stay active in the [Livepeer Discord](https://discord.gg/livepeer) to connect with the team and other applicants.
-
-
-
-
-
-
- If you have a project idea and are unsure where it fits, the Livepeer community on Discord and the Forum are good places to sense-check before applying formally.
-
-
-
-
-{/* ============================================================
- SECTION 7 - RELATED
- ============================================================ */}
-
-
-
-
-
- Apply for Foundation-issued RFPs or propose a funded SPE via the Livepeer onchain treasury.
-
-
- Contribute code, documentation, or tooling to Livepeer's open source repositories.
-
-
- Report smart contract vulnerabilities and earn USDC rewards via Immunefi.
-
-
- Bounties, governance proposals, ecosystem tools, and more on livepeer.org.
-
-
diff --git a/v2/developers/resources/deepwiki.mdx b/v2/developers/resources/deepwiki.mdx
deleted file mode 100644
index 61219b6ac..000000000
--- a/v2/developers/resources/deepwiki.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: DeepWiki
-sidebarTitle: DeepWiki
-description: >-
- Use DeepWiki to explore Livepeer repositories, architecture, and workflows
- through AI-generated codebase documentation and search.
-pageType: landing
-keywords:
- - livepeer
- - developers
- - technical references
- - deepwiki
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: developer
-lastVerified: 2026-03-17
-purpose: landing
----
-DeepWiki is a fantastic resource for exploring the Livepeer codebase.
-
-If you haven't heard of it before, DeepWiki - developed by Cognition AI (the creators of Devin AI) - is an AI-powered service that generates interactive, wiki-style documentation for GitHub repositories, turning codebases into accessible knowledge bases for developers to quickly understand architecture, functionality, and workflows through natural language Q&A.
-
-
- View Livepeer Org Repo's on DeepWiki
-
-
-
- {' '}
- As with all AI generated content, not everything on DeepWiki is accurate!
-
-
-
diff --git a/v2/developers/resources/glossary-data.json b/v2/developers/resources/glossary-data.json
index 383942a59..d8780e2e4 100644
--- a/v2/developers/resources/glossary-data.json
+++ b/v2/developers/resources/glossary-data.json
@@ -538,7 +538,7 @@
},
{
"term": "SVD (Stable Video Diffusion)",
- "definition": "Stability AI's latent diffusion model generating 14-25 frame video clips at 576×1024 resolution conditioned on a single input image.",
+ "definition": "Stability AI's latent diffusion model generating 14–25 frame video clips at 576×1024 resolution conditioned on a single input image.",
"category": "ai",
"tags": [
"ai"
diff --git a/v2/developers/resources/glossary.mdx b/v2/developers/resources/glossary.mdx
index 5689b96b9..9f237eaad 100644
--- a/v2/developers/resources/glossary.mdx
+++ b/v2/developers/resources/glossary.mdx
@@ -133,7 +133,7 @@ Terms developers encounter across Livepeer's SDKs, AI Gateway API, streaming pro
{ Term: "StreamDiffusion", Category: "ai", Niche: "model", Definition: "Optimised real-time diffusion pipeline using stream batching and stochastic similarity filtering to reduce latency for live video transforms." },
{ Term: "StreamPlace", Category: "livepeer", Niche: "product", Definition: "Project building the video layer for decentralised social platforms, focused on the AT Protocol ecosystem." },
{ Term: "Sub-second Latency", Category: "video", Niche: "playback", Definition: "Video delivery with end-to-end delay under one second, typically achieved via WebRTC's UDP-based transport." },
- { Term: "SVD (Stable Video Diffusion)", Category: "ai", Niche: "model", Definition: "Stability AI's latent diffusion model generating 14-25 frame video clips at 576×1024 resolution conditioned on a single input image." },
+ { Term: "SVD (Stable Video Diffusion)", Category: "ai", Niche: "model", Definition: "Stability AI's latent diffusion model generating 14–25 frame video clips at 576×1024 resolution conditioned on a single input image." },
{ Term: "TensorRT", Category: "ai", Niche: "framework", Definition: "NVIDIA's inference SDK optimising models through quantisation, layer fusion, and kernel auto-tuning for low-latency GPU inference." },
{ Term: "Text-to-Image", Category: "ai", Niche: "pipeline", Definition: "AI pipeline generating an image from a natural language text prompt using a language encoder and a diffusion model." },
{ Term: "Text-to-Speech", Category: "ai", Niche: "pipeline", Definition: "AI pipeline synthesising spoken audio from written text using phonetic conversion and audio synthesis models." },
@@ -695,7 +695,7 @@ Terms developers encounter across Livepeer's SDKs, AI Gateway API, streaming pro
- **Definition**: Stability AI's latent diffusion model generating 14-25 frame video clips at 576×1024 resolution conditioned on a single input image.
+ **Definition**: Stability AI's latent diffusion model generating 14–25 frame video clips at 576×1024 resolution conditioned on a single input image.
**External**: [Hugging Face — Stable Video Diffusion](https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt)
diff --git a/v2/gateways/guides/monitoring-and-tooling/x-resources/v2-about--blockchain-contracts.mdx b/v2/gateways/guides/monitoring-and-tooling/x-resources/v2-about--blockchain-contracts.mdx
index 57e046ee8..79ecf28ce 100644
--- a/v2/gateways/guides/monitoring-and-tooling/x-resources/v2-about--blockchain-contracts.mdx
+++ b/v2/gateways/guides/monitoring-and-tooling/x-resources/v2-about--blockchain-contracts.mdx
@@ -23,150 +23,66 @@ import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx
import { LinkArrow } from '/snippets/components/elements/links/Links.jsx'
import { Subtitle, CopyText } from '/snippets/components/elements/text/Text.jsx'
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-import { LinkArrow, DoubleIconLink, LinkIcon } from '/snippets/components/elements/links/Links.jsx'
-import { Subtitle, CopyText } from '/snippets/components/elements/text/Text.jsx'
-import { CenteredContainer, BorderedBox } from '/snippets/components/wrappers/containers/Containers.jsx'
-import { ScrollableDiagram } from '/snippets/components/displays/diagrams/ZoomableDiagram.jsx'
-import { contractAddresses } from '/snippets/data/contract-addresses/contractAddressesData.jsx'
-import { CustomCardTitle } from '/snippets/components/elements/text/CustomCardTitle.jsx'
-import { AddressLinks } from '/snippets/components/elements/links/Links.jsx'
-import { LazyLoad } from '/snippets/components/wrappers/containers/LazyLoad.jsx'
-import { ArbitrumIcon, ArbitrumSVG, LivepeerIcon, LivepeerSVG } from '/snippets/components/elements/icons/Icons.jsx'
-import { SolidityEmbed } from '/snippets/components/integrators/embeds/DataEmbed.jsx'
-import { FunctionField } from '/snippets/components/displays/response-fields/ResponseField.jsx'
+# Livepeer Blockchain Contracts
Livepeer uses a comprehensive system of Ethereum smart contracts to permissionlessly govern its decentralized network.
-export const controller = contractAddresses.arbitrumOne.current.find(c => c.name === 'Controller')?.address
-export const bondingManagerProxy = contractAddresses.arbitrumOne.current.find(c => c.name === 'BondingManager' && c.type === 'proxy')?.address
-export const bondingManagerTarget = contractAddresses.arbitrumOne.current.find(c => c.name === 'BondingManager' && c.type === 'target')?.address
-export const ticketBrokerProxy = contractAddresses.arbitrumOne.current.find(c => c.name === 'TicketBroker' && c.type === 'proxy')?.address
-export const ticketBrokerTarget = contractAddresses.arbitrumOne.current.find(c => c.name === 'TicketBroker' && c.type === 'target')?.address
-export const roundsManagerProxy = contractAddresses.arbitrumOne.current.find(c => c.name === 'RoundsManager' && c.type === 'proxy')?.address
-export const roundsManagerTarget = contractAddresses.arbitrumOne.current.find(c => c.name === 'RoundsManager' && c.type === 'target')?.address
-export const minter = contractAddresses.arbitrumOne.current.find(c => c.name === 'Minter')?.address
-export const serviceRegistryProxy = contractAddresses.arbitrumOne.current.find(c => c.name === 'ServiceRegistry' && c.type === 'proxy')?.address
-export const serviceRegistryTarget = contractAddresses.arbitrumOne.current.find(c => c.name === 'ServiceRegistry' && c.type === 'target')?.address
-export const aiServiceRegistry = contractAddresses.arbitrumOne.current.find(c => c.name === 'AIServiceRegistry')?.address
-export const lptArb = contractAddresses.arbitrumOne.current.find(c => c.name === 'LivepeerToken')?.address
-export const lptEth = contractAddresses.ethereumMainnet.current.find(c => c.name === 'LivepeerToken')?.address
-
-{/* NOTE Bridgeminter is at https://github.com/livepeer/protocol/blob/streamflow/contracts/token/BridgeMinter.sol*/}
-export const bridgeMinter = contractAddresses.ethereumMainnet.current.find(c => c.name === 'BridgeMinter')?.address
-export const l2Gateway = contractAddresses.arbitrumOne.current.find(c => c.name === 'L2LPTGateway')?.address
-export const l1Gateway = contractAddresses.ethereumMainnet.current.find(c => c.name === 'L1LPTGateway')?.address
-export const l1Escrow = contractAddresses.ethereumMainnet.current.find(c => c.name === 'L1Escrow')?.address
-export const bondingVotesProxy = contractAddresses.arbitrumOne.current.find(c => c.name === 'BondingVotes' && c.type === 'proxy')?.address
-export const bondingVotesTarget = contractAddresses.arbitrumOne.current.find(c => c.name === 'BondingVotes' && c.type === 'target')?.address
-export const governor = contractAddresses.arbitrumOne.current.find(c => c.name === 'Governor')?.address
-export const livepeerGovernorProxy = contractAddresses.arbitrumOne.current.find(c => c.name === 'LivepeerGovernor' && c.type === 'proxy')?.address
-export const livepeerGovernorTarget = contractAddresses.arbitrumOne.current.find(c => c.name === 'LivepeerGovernor' && c.type === 'target')?.address
-export const treasury = contractAddresses.arbitrumOne.current.find(c => c.name === 'Treasury')?.address
-export const l2Migrator = contractAddresses.arbitrumOne.current.find(c => c.name === 'L2Migrator' && c.type === 'proxy')?.address
-export const merkleSnapshot = contractAddresses.arbitrumOne.current.find(c => c.name === 'MerkleSnapshot')?.address
-export const lastVerifiedDate = contractAddresses.meta.lastVerified || "Pending"
-
-{/* Status helper: builds status string from enriched meta fields */}
-export const statusOf = (name, type, chain) => {
- const c = contractAddresses[chain || 'arbitrumOne'].current.find(e => e.name === name && (!type || e.type === type))
- if (!c?.meta) return "Verified · Active"
- const m = c.meta
- const parts = []
- if (c.verified) parts.push("Verified")
- if (m.holderCount) parts.push(`${m.holderCount} holders`)
- if (m.transactionCount && m.transactionCount < 1000) parts.push(`~${m.transactionCount} transactions`)
- if (m.statusLabel) parts.push(m.statusLabel)
- if (m.deployedAt && m.statusLabel !== 'Active') parts.push(`Deployed ${m.deployedAt}`)
- if (m.deployedBy) parts.push(`Deployed by ${m.deployedBy}`)
- if (m.lastActiveDate && m.statusLabel !== 'Active') parts.push(`Last active ${m.lastActiveDate}`)
- if (m.blockscoutLabel && m.blockscoutLabel !== name) parts.push(`"${m.blockscoutLabel}" on Blockscout`)
- if (m.notes) parts.push(m.notes)
- if (m.registeredInController) parts.push("Registered in Controller")
- return parts.join(" · ") || "Active"
-}
-
-
- Addresses on this page are automatically updated via a Github Action workflow.
- Data is sourced from the canonical and verified on-chain.
- Last verified: {lastVerifiedDate}
-
-
-
- Livepeer Contract Addresses Canonical Code >}
- horizontal
- />
- Livepeer Contracts Arbiscan On-chain Canonical >}
- horizontal
- />
-
-
-
-
-
-
-Livepeer uses a system of Ethereum smart contracts to permissionlessly govern its decentralised network.
-
-The [Livepeer Protocol](https://github.com/livepeer/protocol/tree/delta) is deployed on [Arbitrum One](https://arbiscan.io/accounts/label/livepeer) and uses these contracts to govern:
+The Livepeer Protocol is currently deployed on Arbitrum One and uses a collection of Ethereum smart contracts to govern:
-- Livepeer Token (LPT) ownership and delegation
-- Staking and selection of active orchestrators
+- LivepeerToken (LPT) ownership and delegation
+- Staking and selection of active transcoder operators (orchestrators)
- Distribution of inflationary rewards and fees to participants
- Time-based progression of the protocol through rounds
- Payment processing through a probabilistic micropayment system
-## Livepeer Contracts
+There are 3 core functions of contracts in the Livepeer Protocol:
+1. Core Protocol Contracts
+2. Token System
+3. Governance
That consist of **10 smart contracts** that work together to manage staking, payments, governance, and service discovery:
-1. **[Core Protocol Contracts](#core-protocol-contracts)** – staking, payments, round progression, and service discovery
-2. **[Token and Utility Contracts](#token-and-utility-contracts)** – the LPT token and bridge infrastructure
-3. **[Governance Contracts](#governance-contracts)** – on-chain voting, proposal execution, and treasury management
-4. **[Migration Contracts](#migration-contracts)** – historical Confluence upgrade contracts, migration complete
-
-
-
-
-```mermaid
-%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#18794E', 'primaryTextColor': '#fff', 'primaryBorderColor': '#3CB540', 'lineColor': '#3CB540', 'mainBkg': '#18794E', 'nodeBorder': '#3CB540', 'clusterBkg': 'transparent', 'clusterBorder': '#3CB540', 'titleColor': '#3CB540', 'edgeLabelBackground': 'transparent', 'textColor': '#3CB540', 'nodeTextColor': '#fff'}}}%%
+{/* 1. Controller [Core]
+2. BondingManager [Core]
+3. TicketBroker [Core]
+4. RoundsManager [Core]
+5. Minter [Core]
+6. ServiceRegistry [Core]
+7. MerkleSnapshot [Core]
+8. BondingVotes [Core]
+7. LivepeerToken [Token]
+8. Governor[Governance]
+9. LivepeerGovernor [Governance]
+10. Treasury [Governance] */}
+
+## Contract Interaction Architecture
+
+Here's how these contracts interact with each other:
+
+ FIX THIS DIAGRAM - unreadable
+````mermaid
graph TB
- subgraph "Registry"
- Controller["Controller\nContract Registry"]
- end
-
- subgraph "Discovery"
- ServiceRegistry["ServiceRegistry\nOrchestrator URI Mapping"]
- AIServiceRegistry["AIServiceRegistry\nAI Capability Registration"]
- end
-
- subgraph "Economic"
- LPT["LivepeerToken\nERC-20"]
- BondingManager["BondingManager\nStaking & Rewards"]
- TicketBroker["TicketBroker\nMicropayments"]
- Minter["Minter\nToken Inflation"]
+ subgraph "Discovery Layer"
+ Controller["Controller Contract Registry"]
+ ServiceRegistry["ServiceRegistry URI Mapping"]
end
- subgraph "Time"
- RoundsManager["RoundsManager\nProtocol Rounds"]
+ subgraph "Economic Layer"
+ LPT["LivepeerToken ERC20 Token"]
+ BondingManager["BondingManager Staking & Rewards"]
+ TicketBroker["TicketBroker Micropayments"]
+ Minter["Minter Token Inflation"]
end
- subgraph "Governance"
- BondingVotes["BondingVotes\nStake Checkpointing"]
- Governor["Governor\nUpgrade Executor"]
- LivepeerGovernor["LivepeerGovernor\nOn-chain Voting"]
- Treasury["Treasury\nProtocol Treasury"]
+ subgraph "Time & Governance"
+ RoundsManager["RoundsManager Protocol Rounds"]
+ Governor["LivepeerGovernor Governance"]
end
subgraph "Participants"
- Gateway["Gateway Node"]
+ Broadcaster["Broadcaster Node"]
Orchestrator["Orchestrator Node"]
- Delegator["LPT Holder"]
+ Delegator["Token Holder"]
end
Controller -.->|"Address Lookup"| LPT
@@ -175,39 +91,33 @@ graph TB
Controller -.->|"Address Lookup"| RoundsManager
Controller -.->|"Address Lookup"| Minter
Controller -.->|"Address Lookup"| ServiceRegistry
- Controller -.->|"Address Lookup"| BondingVotes
- Controller -.->|"Address Lookup"| LivepeerGovernor
- Controller -.->|"Address Lookup"| Treasury
+ Controller -.->|"Address Lookup"| Governor
- Delegator -->|"approve() LPT"| LPT
- Delegator -->|"bond(amount, orch)"| BondingManager
- Delegator -->|"castVote()"| LivepeerGovernor
- BondingManager -->|"transferFrom()"| LPT
- BondingManager -->|"checkpointBondingState()"| BondingVotes
+ Delegator -->|"Approve() LPT"| LPT
+ Delegator -->|"Bond(amount, orchestrator)"| BondingManager
+ BondingManager -->|"TransferFrom()"| LPT
- Orchestrator -->|"transcoder(rewardCut, feeShare)"| BondingManager
- Orchestrator -->|"setServiceURI(url)"| ServiceRegistry
- Orchestrator -->|"reward()"| BondingManager
- BondingManager -->|"createReward()"| Minter
- Minter -->|"mint() new LPT"| LPT
- Minter -->|"trustedTransferTokens()"| Treasury
+ Orchestrator -->|"Transcoder(cuts)"| BondingManager
+ Orchestrator -->|"SetServiceURI(url)"| ServiceRegistry
+ Orchestrator -->|"Reward()"| BondingManager
+ BondingManager -->|"CreateReward()"| Minter
+ Minter -->|"Mint() new LPT"| LPT
- Gateway -->|"fundDepositAndReserve()"| TicketBroker
- Orchestrator -->|"redeemWinningTicket()"| TicketBroker
- TicketBroker -->|"winningTicketTransfer()"| LPT
+ Broadcaster -->|"Approve() LPT"| LPT
+ Broadcaster -->|"FundDepositAndReserve()"| TicketBroker
+ TicketBroker -->|"TransferFrom()"| LPT
- RoundsManager -->|"currentRound()"| BondingManager
- RoundsManager -->|"blockHashForRound()"| TicketBroker
+ Orchestrator -->|"RedeemWinningTicket()"| TicketBroker
+ TicketBroker -->|"Transfer() to orchestrator"| LPT
+ TicketBroker -->|"Update claimedReserve"| BondingManager
- BondingVotes -->|"getPastVotes()"| LivepeerGovernor
- LivepeerGovernor -->|"execute()"| Governor
- Governor -->|"setContractInfo()"| Controller
-```
+ RoundsManager -->|"Round data"| BondingManager
+ RoundsManager -->|"Block hashes"| TicketBroker
-
-
+ BondingManager -->|"Stake weight"| Governor
+ Delegator -->|"CastVote()"| Governor
+````
-
## Core Protocol Contracts
@@ -381,595 +291,60 @@ The [ServiceRegistry](https://github.com/livepeer/protocol/blob/e8b6243c/contrac
-#### **Controller**
-
- Arbitrum One
-
-The Controller is the central registry for all protocol contracts. Every other contract resolves peer contract addresses by calling `getContract(keccak256(""))` on the Controller. Upgrades are applied by registering a new implementation address under the same name hash – the proxy addresses never change.
+## Token & Utility Contracts
Livepeer moved from the Ethereum mainnet to the Arbitrum One network in 2022 to increase transaction throughput and reduce fees.
-- Central address registry for all protocol contracts
-- Enables contract upgrades while keeping proxy addresses stable
-- Provides `pause()`/`unpause()` for emergency system-wide halts
-- Owner is the Governor contract – all upgrades must go through governance
+On Ethereum mainnet, only the `LivepeerToken` and `BridgeMinter` contracts remain operational; all other contracts have migrated to Arbitrum One.
This ensures the token has the higher security of the Ethereum mainnet while the network enjoys the higher throughput and lower fees of Arbitrum.
-
- Look up a registered contract by keccak256 name hash
-
-
- Returns address and git commit hash
-
-
- Register or update a contract; callable by owner (Governor) only
-
-
- Halt all contracts that check `controller.paused()`
-
-
- Resume all contracts that check `controller.paused()`
-
-
- Update the Controller reference in a registered contract
-
+
#### **LivepeerToken (LPT)**: Ethereum Mainnet Only
-}
- filename="Controller.sol"
-/>
-
-
-
-#### **BondingManager**
-
- Arbitrum One
-
-The BondingManager is the most critical economic contract in the protocol. It manages the active orchestrator pool as a sorted doubly-linked list, handles all LPT bonding and unbonding, and distributes inflationary rewards and fees each round.
-
-The [LivepeerTokenFaucet](https://github.com/livepeer/protocol/blob/e8b6243c/contracts/token/LivepeerTokenFaucet.sol) is used on testnets for distributing test LPT tokens.
-
-Source: `BondingManager.sol` includes this as struct comment: "// % of fees paid to delegators by transcoder".
-
-} title="BondingManager" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("BondingManager", "proxy")}_
-
- {/* Current target (V11, deployed 16 Feb 2026): 0x4bA7E7531Ab56bC8d78dB4FDc88D21F621f34BB4
- Confirmed via Controller.getContract(keccak256("BondingManagerTarget")) on-chain 18 Mar 2026.
- Source code not yet verified on Blockscout — SolidityEmbed below shows delta branch source which should match. */}
-
-**Purpose**:
-
-- Manages the active orchestrator pool (sorted by stake using SortedDoublyLL)
-- Handles `bond()`, `unbond()`, and `withdrawStake()` for all delegators
-- Distributes inflationary LPT rewards to orchestrators and their delegators each round
-- Manages the unbonding period – delegators must wait `unbondingPeriod` rounds before withdrawing
-- Tracks per-round earnings pools for each orchestrator
-- Calls `checkpointBondingState()` on BondingVotes on every state change for governance weight
-- Since Delta upgrade: sends `treasuryRewardCutRate` fraction of each reward to Treasury; contributions halt automatically when treasury balance exceeds `treasuryBalanceCeiling`
-
-
- **Slashing:** `slashTranscoder()` exists in the contract but is currently inoperative: the Verifier role is set to the null address (`0x000...`). Slashing could be re-enabled via governance by configuring the Verifier role and making necessary compatibility updates. It is out of scope for current audits.
-
-
-**Key functions** (from `BondingManager.sol`, `delta` branch):
-
-
- Delegate LPT stake to an orchestrator
-
-
- Begin withdrawal; creates an unbonding lock, starts the unbonding period
-
-
- Cancel unbonding and re-bond stake to current delegate
-
-
- Re-bond to a new orchestrator from unbonded state
-
-
- Complete withdrawal after unbonding period expires
-
-
- Withdraw accumulated ETH fees to a recipient address
-
-
- Register as an orchestrator or update parameters; `_rewardCut` is % of reward kept by orchestrator; `_feeShare` is % of fees passed to delegators
-
-
- Called by active orchestrators each round to mint inflationary LPT and distribute to earnings pool
-
-
- Claim accumulated rewards and fees. Note: `_endRound` is unused; earnings are always claimed through the current round regardless of the value passed.
-
-
- Publicly callable function to fix a stale voting power checkpoint for any account. Useful for operators after an inconsistent state.
-
-
- Transfer ownership of a bond (or portion) to a new delegator. Used for stake migrations between wallets.
-
-
- Returns unclaimed pending stake for a delegator through the current round
-
-
- Returns unclaimed pending ETH fees for a delegator through the current round
-
-
- Returns orchestrator state: lastRewardRound, rewardCut, feeShare, activationRound, deactivationRound, cumulativeRewards, cumulativeFees, lastFeeRound
-
-
- Returns delegator state: bondedAmount, fees, delegateAddress, delegatedAmount, startRound, lastClaimRound, nextUnbondingLockId
-
-
-**Contract**
-
-}
- filename="BondingManager.sol"
-/>
-
-
-
-#### **TicketBroker**
-
- Arbitrum One
-
-The TicketBroker implements Livepeer's off-chain probabilistic micropayment (PM) system. Gateways pre-fund a deposit and reserve on-chain; they send lottery tickets to orchestrators off-chain with each transcoding job. Orchestrators redeem winning tickets on-chain to claim payment. This amortises per-segment payment costs across many tickets.
-
-} title="TicketBroker" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("TicketBroker", "proxy")}_
-
-**Purpose**:
-
-- Holds gateway ETH deposits and reserves
-- Validates and settles winning probabilistic payment tickets
-- Manages the unlock period before gateways can withdraw funds
-- Tracks claimed reserves per orchestrator per round to prevent over-redemption
-- Emits `WinningTicketRedeemed` (ticket redemption attempt) and `WinningTicketTransfer` (ETH actually moved) events used for on-chain payment monitoring
-
-**Key functions** (from `MixinTicketBrokerCore.sol`):
-
-
- Gateway adds ETH to deposit (payable)
-
-
- Gateway adds ETH to reserve (payable)
-
-
- Fund both deposit and reserve in one call (payable); msg.value must equal the sum of both amounts
-
-
- Fund deposit and reserve on behalf of another address (payable)
-
-
- Orchestrator redeems a winning ticket; transfers ETH to fee pool via BondingManager. Emits both `WinningTicketTransfer` and `WinningTicketRedeemed`.
-
-
- Gateway initiates the withdrawal unlock period; emits `Unlock`
-
-
- Gateway cancels an in-progress unlock; emits `UnlockCancelled`
-
-
- Gateway withdraws all deposit and reserve after unlock period; emits `Withdrawal`
-
-
- Returns full sender state: deposit amount, withdrawRound, and reserve info
-
-
- Returns whether a sender has an unlock in progress
-
-
-**Contract**
-
-}
- filename="TicketBroker.sol"
-/>
-
-
-
-#### **RoundsManager**
-
- Arbitrum One
-
-The RoundsManager defines the protocol's time unit. A round is a fixed number of Arbitrum blocks. The current round must be initialised before orchestrators can call `reward()`. It stores per-round block hashes used as randomness for ticket validation.
-
-} title="RoundsManager" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("RoundsManager", "proxy")}_
-
-**Purpose**:
-
-- Tracks the current round number and round length in blocks
-- Stores block hashes per round for ticket randomness (used by TicketBroker)
-- Enforces the round lock period – orchestrators cannot change parameters during the lock window at end of each round
-- `initializeRound()` must be called at the start of each new round before reward calls proceed
-
-**Key functions** (from `RoundsManager.sol`):
-
-
- Initialise a new round; callable by any address; updates block hash store and lip upgrade rounds
-
-
- Returns current round number
-
-
- Returns whether the current round has been initialised
-
-
- Returns whether the current round is in its lock period
-
-
- Returns the stored block hash for a given round
-
-
- Returns round length in blocks
-
-
- Returns lock period as a percentage of round length (MathUtils percPoint)
-
-
-**Contract**
-
-}
- filename="RoundsManager.sol"
-/>
-
-
-
-#### **Minter**
-
- Arbitrum One
-
-The Minter controls LPT token inflation. Each round it calculates the mintable token supply based on the configured inflation rate. Since the Delta upgrade (LIP-91), a configurable fraction of each round's reward is minted to the Treasury rather than solely to orchestrators and delegators.
-
-} title="Minter" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("Minter")}_
-
-**Purpose**:
-
-- Manages LPT token inflation schedule
-- Calculates mintable tokens per round based on current `inflation` rate and total LPT supply
-- Adjusts inflation up or down each round based on actual bonding rate vs `targetBondingRate`
-- Called by BondingManager during orchestrator `reward()` calls – not called directly
-- Holds ETH received from TicketBroker redemptions and disburses to orchestrators
-
-**Key functions** (from `Minter.sol`):
-
-
- Called only by BondingManager; mints a fraction of mintable tokens for the round as a reward
-
-
- Transfer LPT to an address; callable by BondingManager only
-
-
- Burn LPT; callable by BondingManager only
-
-
- Withdraw ETH to an address; callable by BondingManager only
-
-
- Receive ETH from TicketBroker on ticket redemption (payable)
-
-
- Returns LPT mintable in the current round
-
-
- Returns LPT already minted in the current round
-
-
- Returns current inflation rate as a MathUtils percPoint value
-
-
- Returns per-round inflation adjustment amount
-
-
- Returns the target bonding rate that inflation adjusts towards
-
-
-**Contract**
-
-}
- filename="Minter.sol"
-/>
-
-
-
-#### **ServiceRegistry**
-
- Arbitrum One
-
-The ServiceRegistry stores each orchestrator's publicly advertised HTTPS service URI on-chain. Gateway nodes query this registry during network initialisation to discover orchestrators. Each update emits a `ServiceURIUpdate` event that off-chain indexers track.
-
-} title="ServiceRegistry" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("ServiceRegistry", "proxy")}_
-
-**Purpose**:
-
-- Allows orchestrators to register and update their service endpoint URIs
-- Enables gateway nodes to discover orchestrators when using `-network arbitrum-one-mainnet`
-- Not used when a gateway specifies `-orchAddr` directly
-
-**Key functions** (from `ServiceRegistry.sol`):
-
-
- Orchestrator registers or updates their HTTPS endpoint; emits `ServiceURIUpdate(address indexed _addr, string _serviceURI)`
-
-
- Returns the registered URI for a given orchestrator address
-
-
-**Contract**
-
-}
- filename="ServiceRegistry.sol"
-/>
-
-
-
-#### **AIServiceRegistry**
-
- Arbitrum One
-
-A standalone ServiceRegistry for AI subnet orchestrators. Detached from the Controller – its address is hardcoded in go-livepeer (`starter.go`) rather than resolved dynamically. Deployed by a different deployer than the main protocol contracts.
-
-} title="AIServiceRegistry" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("AIServiceRegistry")}_
-
-**Purpose**:
-
-- Stores service URI and capability metadata for AI-enabled orchestrators
-- Used when a node is started with `-aiServiceRegistry` flag
-- Same interface as ServiceRegistry (`setServiceURI`, `getServiceURI`)
-
-
-
-
-## Token and Utility Contracts
-
-The LivepeerToken contract originates on Ethereum Mainnet and is bridged to Arbitrum One via paired gateway contracts, with a BridgeMinter handling L1 mint operations.
-All active protocol operations use the Arbitrum One representation.
-LPT must be bridged before it can be staked, delegated, or used for payments.
-
-Livepeer moved from Ethereum Mainnet to Arbitrum One in 2022 (the Confluence upgrade) to increase throughput and reduce fees.
-
-On Ethereum Mainnet, only the `LivepeerToken` and `BridgeMinter` contracts remain operational. All other Ethereum Mainnet protocol contracts are paused.
-
-
-```mermaid
-%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#18794E', 'primaryTextColor': '#fff', 'primaryBorderColor': '#3CB540', 'lineColor': '#3CB540', 'mainBkg': '#18794E', 'nodeBorder': '#3CB540', 'clusterBkg': 'transparent', 'clusterBorder': '#3CB540', 'titleColor': '#3CB540', 'edgeLabelBackground': 'transparent', 'textColor': '#3CB540', 'nodeTextColor': '#fff'}}}%%
-graph TB
- subgraph "Ethereum Mainnet"
- L1LPT["LivepeerToken (origin)"]
- BridgeMinter["BridgeMinter"]
- L1GW["L1LPTGateway"]
- ESC["L1Escrow"]
- end
- subgraph "Arbitrum One"
- L2LPT["LivepeerToken (bridged)"]
- L2GW["L2LPTGateway"]
- Minter["Minter (inflation)"]
- end
- L1GW -->|"lock LPT"| ESC
- L2GW -->|"mint on L2"| L2LPT
- BridgeMinter -->|"mint on L1"| L1LPT
- Minter -->|"mint rewards"| L2LPT
- L1GW <-.->|"Arbitrum bridge"| L2GW
-```
-
-
-
-#### **LivepeerToken (LPT)**
-
- Ethereum Mainnet (origin)
-
+The [LivepeerToken](https://github.com/livepeer/protocol/blob/e8b6243c/contracts/token/LivepeerToken.sol) is the native protocol token used for staking, payments, and governance based on the [ERC-20](https://eips.ethereum.org/EIPS/eip-20) standard.
-The LivepeerToken is the native protocol token. It is an ERC-20 with AccessControl-based MINTER_ROLE and BURNER_ROLE. The canonical token contract lives on Ethereum Mainnet; a bridged representation exists on Arbitrum One.
-
-} title="LivepeerToken" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("LivepeerToken")}_
-
-**Address (Ethereum Mainnet)**:
-
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("LivepeerToken", null, "ethereumMainnet")}_
-
-**Purpose**:
-
-- ERC-20 token used for bonding, staking, gateway payment reserves, and governance voting weight
-- `approve()` must be called before bonding or funding deposits
-- On Arbitrum One: minted by Minter (inflationary rewards) and by the bridge (inflows from L1)
-
-**Key functions** (from `LivepeerToken.sol`, inherits [OpenZeppelin](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20) ERC20 + ERC20Permit + ERC20Burnable + AccessControl):
-
-
- Standard ERC-20 interface
-
-
- EIP-2612 gasless approval
-
-
- Callable only by MINTER_ROLE (Minter contract on Arbitrum, BridgeMinter on L1)
-
-
- Callable only by BURNER_ROLE
-
-
-**Contract**
-
-}
- filename="LivepeerToken.sol"
-/>
-
-
-
-#### **BridgeMinter**
-
-Ethereum Mainnet
-
-Holds MINTER_ROLE on the L1 LivepeerToken. Called by the bridge when LPT is transferred from Arbitrum back to Ethereum Mainnet, minting the corresponding L1 LPT.
-
-
- `BridgeMinter.sol` is an Ethereum Mainnet contract predating the Delta upgrade.
- See on the `streamflow` branch of `livepeer/protocol`
-
-
-} title="BridgeMinter" />}>
- **Address (Ethereum Mainnet)**:
-
- _{statusOf("BridgeMinter", null, "ethereumMainnet")}_
+
+ **Purpose**:
-**Purpose**:
+ - ERC20 token for all economic activity in the network
+ - Used for bonding/staking to orchestrators
+ - Required for broadcaster deposits and payments
+ - Governance voting weight
-- Holds MINTER_ROLE on the L1 LivepeerToken contract
-- Called exclusively by L1LPTGateway when LPT is bridged from Arbitrum back to Ethereum Mainnet
-- Also callable by L1Migrator for migration operations (`withdrawETHToL1Migrator`, `withdrawLPTToL1Migrator`)
-- Registered with the Ethereum Mainnet Controller (`0xF96D54E490317c557A967ABfA5d6e33006BE69b3`)
-
-**Key functions** (from `BridgeMinter.sol`, `streamflow` branch):
-
-
- Mint LPT to an address; callable by L1LPTGateway only
-
-
- Send contract ETH balance to L1Migrator; callable by L1Migrator only
-
-
- Send contract LPT balance to L1Migrator; callable by L1Migrator only
-
-
- Transfer token ownership and balances to a new Minter; callable by Controller owner only
-
-
- Accept ETH deposits; required for migration compatibility with older Minter implementations (payable)
-
-
-**Contract**
-
-}
- filename="BridgeMinter.sol"
-/>
+ **Key Operations**:
+ - `Transfer()`, `BalanceOf()`, `TotalSupply()` - Standard ERC20 operations
+ - `Approve()` - Required before bonding or funding deposits
-#### **L1 LPTGateway / L2 LPTGateway**
-
- Ethereum Mainnet
-
-
- Arbitrum One
-
-Paired bridge gateway contracts on Ethereum Mainnet (L1) and Arbitrum One (L2). LPT bridged L1→L2 is locked in L1Escrow; LPT bridged L2→L1 is released from escrow or minted via BridgeMinter. Based on the Dai bridge architecture.
-
-} title="Bridge Gateways" />}>
- **L2LPTGateway (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("L2LPTGateway")}_
-
-**L1LPTGateway (Ethereum Mainnet)**:
-
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("L1LPTGateway", null, "ethereumMainnet")}_
-
-**L1Escrow (Ethereum Mainnet)**:
+#### **BridgeMinter**:
+Ethereum Mainnet Only
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("L1Escrow", null, "ethereumMainnet")}_
+The [BridgeMinter](https://github.com/livepeer/protocol/blob/e8b6243c/contracts/token/BridgeMinter.sol) is a minting contract that mints LPT tokens on the Arbitrum One network when it receives a valid deposit from the Ethereum mainnet.
-**Contract**
+
+ **Purpose**:
-}
- filename="L2LPTGateway.sol"
-/>
+ - Mints LPT tokens on Arbitrum One when it receives a valid deposit from the Ethereum mainnet
-#### **LivepeerTokenFaucet**
-Testnet Deployments
-
-
-The LivepeerTokenFaucet is a non-production deploy-time convenience contract.
- There is currently no active public testnet on Arbitrum or Ethereum.
- You can run your own testnet using the full deploy script at [deploy/deploy_contracts.ts](https://github.com/livepeer/protocol/blob/streamflow/deploy/deploy_contracts.ts)
-
-
-A deploy-time convenience contract that distributes test LPT in local and testnet environments.
-It deploys automatically via [`deploy_contracts.ts`](https://github.com/livepeer/protocol/blob/delta/deploy/deploy_contracts.ts) when targeting any non-production network, seeded with `genesis.crowdSupply` worth of test LPT.
- It is never deployed on `mainnet` or `arbitrumMainnet`.
-
-} title="LivepeerTokenFaucet" />} >
+#### **LivepeerTokenFaucet**:
+Testnets Only
-**Purpose**:
-
-- Distributes test LPT to developers running a local Livepeer stack
-- Enforces a per-address rate limit via `requestWait` (in hours) between requests
-- Whitelist addresses bypass the rate limit entirely
-- Seeded at deploy time with `genesis.crowdSupply`; never exists on mainnet or Arbitrum One mainnet
-
-**Key functions** (from `LivepeerTokenFaucet.sol`):
-
-
- Request test LPT; transfers `requestAmount` to caller. Requires either whitelisted status or that `requestWait` hours have elapsed since last request.
-
-
- Add an address to the rate-limit bypass whitelist; callable by owner only
-
-
- Remove an address from the whitelist; callable by owner only
-
+The [LivepeerTokenFaucet](https://github.com/livepeer/protocol/blob/e8b6243c/contracts/token/LivepeerTokenFaucet.sol) is used on testnets for distributing test LPT tokens.
-**Contract**
+
+ **Purpose**:
-}
- filename="LivepeerTokenFaucet.sol"
-/>
+ - Provides test tokens on testnets
+ - Rate-limited token requests
+ - Development and testing support
@@ -977,341 +352,115 @@ It deploys automatically via [`deploy_contracts.ts`](https://github.com/livepeer
## Governance Contracts
-The Delta upgrade ([LIP-89](https://github.com/livepeer/LIPs/blob/master/LIPs/LIP-89.md), [LIP-91](https://github.com/livepeer/LIPs/blob/master/LIPs/LIP-91.md) - October 2023) introduced full on-chain governance alongside the [Livepeer Treasury](/v2/about/livepeer-protocol/treasury). The governance system consists of four contracts working together: BondingVotes checkpoints voting power, LivepeerGovernor manages proposal voting, Treasury holds protocol funds, and Governor executes approved upgrades.
-
-```mermaid
-%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#18794E', 'primaryTextColor': '#fff', 'primaryBorderColor': '#3CB540', 'lineColor': '#3CB540', 'mainBkg': '#18794E', 'nodeBorder': '#3CB540', 'clusterBkg': 'transparent', 'clusterBorder': '#3CB540', 'titleColor': '#3CB540', 'edgeLabelBackground': 'transparent', 'textColor': '#3CB540', 'nodeTextColor': '#fff'}}}%%
-graph LR
- BM[BondingManager] -->|"checkpoint"| BV[BondingVotes]
- D[Delegator] -->|"castVote()"| LG[LivepeerGovernor]
- BV -->|"voting power"| LG
- LG -->|"queue"| T[Treasury / Timelock]
- T -->|"execute"| GOV[Governor]
- GOV -->|"update contracts"| C[Controller]
- MINT[Minter] -.->|"trustedTransferTokens()"| T
-```
+#### **Governor**:
-
+[Governor](https://github.com/livepeer/protocol/blob/e8b6243c/contracts/governance/Governor.sol) handles protocol upgrades through a multi-step transaction proposal and execution process.
-#### **BondingVotes**
-
- Arbitrum One
-
-BondingVotes implements the ERC-5805 votes interface, storing per-round stake checkpoints for every delegator and orchestrator. The LivepeerGovernor queries it to determine voting power at proposal creation time. Checkpoints are written automatically by BondingManager on every bond, unbond, reward, and earnings claim.
-
-} title="BondingVotes" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("BondingVotes", "proxy")}_
+
+ **Purpose**:
-**Purpose**:
+ - Handles protocol upgrades through a multi-step transaction proposal and execution process
-- Stores per-round stake checkpoints for every participant
-- Implements ERC-5805 (`getPastVotes`, `getPastTotalSupply`) used by LivepeerGovernor
-- Checkpoints are written by BondingManager – not called directly by users
-- Supports delegator vote overrides: a delegator can override their orchestrator's vote
-
-**Key functions** (from `BondingVotes.sol`, `delta` branch):
-
-
- Called by BondingManager to checkpoint stake state; not callable directly by users
-
-
- Checkpoint total active stake; called by BondingManager
-
-
- Returns voting power for an account at the start of a given round
-
-
- Returns total voting power (active stake) at a given round
-
-
- Returns whether an account has any checkpointed stake
-
-
-**Contract**
-
-}
- filename="BondingVotes.sol"
-/>
+ **Key Operations**:
+ - `Propose()` - Submit a new proposal
+ - `Queue()` - Queue a proposal for execution
+ - `Execute()` - Execute a queued proposal
-#### **Governor**
-
- Arbitrum One
-
-The original upgrade execution contract. Holds the owner role on the Controller. Executes protocol upgrades (contract address updates, parameter changes) via a staged update queue with a configurable block delay.
-
-} title="Governor" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("Governor")}_
-
-**Purpose**:
-
-- Owns the Controller contract – only address that can call `setContractInfo()`
-- Executes protocol upgrade transactions after governance approval
-- Enforces a staged execution queue with a mandatory block-number delay
-
-**Key functions** (from `Governor.sol`):
-
-
- Queue a batch of upgrade transactions with a delay in blocks; callable by owner only; emits `UpdateStaged`
-
-
- Execute a queued update after its block delay has elapsed; emits `UpdateExecuted`
-
-
- Cancel a staged update; callable by owner only; emits `UpdateCancelled`
-
+#### **LivepeerGovernor**:
-The `Update` struct contains: `address[] target`, `uint256[] value`, `bytes[] data`, `uint256 nonce`.
+The [LivepeerGovernor](https://github.com/livepeer/protocol/blob/e8b6243c/contracts/governance/LivepeerGovernor.sol) implements on-chain governance for protocol upgrades and parameter changes.
-`owner` is a public state variable (not a function) returning the current owner address.
+
+ **Purpose**:
-**Contract**
+ - On-chain voting on protocol proposals
+ - Weighted by bonded stake
+ - Implements governance mechanisms
-}
- filename="Governor.sol"
-/>
+ **Key Operations**:
+ - `CastVote()` - Vote on governance proposals
+ - `CastVoteWithReason()` - Vote with explanation
-#### **LivepeerGovernor**
-
- Arbitrum One
-
-Implements [OpenZeppelin](https://docs.openzeppelin.com/contracts/5.x/api/governance)'s upgradeable Governor framework adapted for Livepeer's stake-weighted voting. Voting power equals bonded LPT as recorded by BondingVotes at proposal creation time. Supports GovernorCountingOverridable – delegators can override their orchestrator's vote on any proposal.
-
-} title="LivepeerGovernor" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("LivepeerGovernor", "proxy")}_
-
-**Purpose**:
-
-- On-chain voting for protocol proposals, weighted by bonded LPT stake
-- Delegators can override their orchestrator's vote (GovernorCountingOverridable)
-- Passed proposals execute through the Treasury timelock, then through the Governor to the Controller
-- `bumpGovernorVotesTokenAddress()` must be called if BondingVotes address ever changes
-
-**Key functions** (from `LivepeerGovernor.sol`, `delta` branch):
-
-
- One-time initialisation via proxy
-
-
- Submit a new governance proposal; returns proposalId
-
-
- Cast a vote (0=Against, 1=For, 2=Abstain)
-
-
- Vote with explanation
-
-
- Queue a passed proposal into the timelock
-
-
- Execute a queued proposal after timelock delay
-
-
- Returns `MathUtils.PERC_DIVISOR` (the quorum denominator)
-
-
- Update the internal BondingVotes reference if its address has changed
-
-
-**Contract**
-
-}
- filename="LivepeerGovernor.sol"
-/>
-
-
+#### **Treasury**:
-#### **Treasury**
-
- Arbitrum One
-
-An [OpenZeppelin](https://docs.openzeppelin.com/contracts/5.x/api/governance#TimelockController) TimelockControllerUpgradeable that holds the protocol's on-chain treasury. A configurable percentage of each round's inflationary LPT rewards is directed here by the Minter. All disbursements require a passed LivepeerGovernor proposal. Automatic contributions halt when the treasury balance exceeds `treasuryBalanceCeiling` (configured in BondingManager).
+[Treasury](https://github.com/livepeer/protocol/blob/e8b6243c/contracts/governance/Treasury.sol) manages the on-chain treasury for funding and accounting.
-} title="Treasury" />}>
- **Address (Arbitrum One)**:
-
- {/* CHANGELOG PIPELINE UPDATE */}
- _{statusOf("Treasury")}_
+
+ **Purpose**:
-**Purpose**:
+ - Manages protocol treasury for funding
+ - Tracks allocations and expenditures
+ - Funds Special Purpose Entities (SPEs)
-- Receives a fraction of each round's inflationary LPT rewards (rate set by `treasuryRewardCutRate` in BondingManager)
-- Governed entirely by LivepeerGovernor – all disbursements require a passed proposal
-- Implements TimelockController – all operations have a mandatory delay between queue and execution
-- Contributions automatically halt when LPT balance exceeds `treasuryBalanceCeiling`
-- Funds Special Purpose Entities (SPEs) and ecosystem grants via governance proposals
-
-**Key functions** ([OpenZeppelin](https://docs.openzeppelin.com/contracts/5.x/api/governance#TimelockController)) TimelockControllerUpgradeable):
-
-
- Schedule an operation; callable by proposer role (LivepeerGovernor)
-
-
- Execute a ready operation; callable by executor role
-
-
- Cancel a pending operation; callable by canceller role
-
-
- Check if an operation exists
-
-
- Check if an operation is past its delay and ready to execute
-
-
- Returns the minimum delay for all operations
-
-
-**Contract**
-
-}
- filename="Treasury.sol"
-/>
+ **Key Operations**:
+ - `Deposit()` - Add funds to the treasury
+ - `Withdraw()` - Allocate funds to recipients
-
-
-## Migration Contracts
-
-The [Confluence upgrade (2022)](https://medium.com/livepeer-blog/the-confluence-upgrade-is-live-3b6b342ea71e) migrated the Livepeer protocol from Ethereum Mainnet to Arbitrum One.
-These contracts facilitated that migration.
- The migration is complete - no new migrations are possible - but both contracts remain registered in the Controller.
- L2Migrator continues to process pending `claimStake` calls from participants who have not yet claimed their migrated stake as of March 2026.
-
-#### **L2Migrator**
-
- Arbitrum One
-
-
-Facilitated the migration of bonded stake and delegations from Ethereum Mainnet to Arbitrum One during the Confluence upgrade. Participants who migrated on L1 claim their Arbitrum-side stake by calling `claimStake()` here. The contract still holds residual ETH and continues to receive `claimStake` calls from participants who have not yet claimed.
-
-} title="L2Migrator" />}>
- **Address (Arbitrum One)**:
-
- _{statusOf("L2Migrator", "proxy")}_
-**Purpose**:
-
-- Receives cross-chain migration messages from the L1Migrator via the Arbitrum bridge
-- Allows participants to claim their migrated bonded stake on Arbitrum One via `claimStake()`
-- Allows delegators to claim migrated delegations via `claimDelegatorStake()`
-- Holds residual ETH from migration fee payments; no new migrations are possible
-
-**Key functions**:
+{/* ## Contract Interaction Architecture
-
- Claim migrated stake on Arbitrum One; callable by participants who completed an L1 migration
-
-
- Finalise a delegator migration initiated on L1; called via the bridge
-
-
-
+Here's how these contracts interact with each other:
-#### **MerkleSnapshot**
-
- Arbitrum One
-
+````mermaid
+graph TB
+ subgraph "Discovery Layer"
+ Controller["Controller Contract Registry"]
+ ServiceRegistry["ServiceRegistry URI Mapping"]
+ end
-Stores Merkle roots used to verify stake snapshots taken at the time of the Confluence migration. Used internally by L2Migrator to validate migration claims. No activity since deployment — its role was fulfilled during the migration window.
+ subgraph "Economic Layer"
+ LPT["LivepeerToken ERC20 Token"]
+ BondingManager["BondingManager Staking & Rewards"]
+ TicketBroker["TicketBroker Micropayments"]
+ Minter["Minter Token Inflation"]
+ end
-} title="MerkleSnapshot" />}>
- **Address (Arbitrum One)**:
-
- _{statusOf("MerkleSnapshot")}_
+ subgraph "Time & Governance"
+ RoundsManager["RoundsManager Protocol Rounds"]
+ Governor["LivepeerGovernor Governance"]
+ end
-**Purpose**:
+ subgraph "Participants"
+ Broadcaster["Broadcaster Node"]
+ Orchestrator["Orchestrator Node"]
+ Delegator["Token Holder"]
+ end
-- Stores Merkle root snapshots (keyed by snapshot ID) set at migration time
-- Provides `verify()` for L2Migrator to validate that a claimed stake amount was included in the original snapshot
-- Read-only in practice; `setSnapshot()` is callable only by the Controller owner and has not been called since the migration
+ Controller -.->|"Address Lookup"| LPT
+ Controller -.->|"Address Lookup"| BondingManager
+ Controller -.->|"Address Lookup"| TicketBroker
+ Controller -.->|"Address Lookup"| RoundsManager
+ Controller -.->|"Address Lookup"| Minter
+ Controller -.->|"Address Lookup"| ServiceRegistry
+ Controller -.->|"Address Lookup"| Governor
-**Key functions** (from `MerkleSnapshot.sol`):
+ Delegator -->|"Approve() LPT"| LPT
+ Delegator -->|"Bond(amount, orchestrator)"| BondingManager
+ BondingManager -->|"TransferFrom()"| LPT
-
- Verify a Merkle proof against a stored snapshot root
-
-
- Store a Merkle root for a given snapshot ID; callable by Controller owner only
-
+ Orchestrator -->|"Transcoder(cuts)"| BondingManager
+ Orchestrator -->|"SetServiceURI(url)"| ServiceRegistry
+ Orchestrator -->|"Reward()"| BondingManager
+ BondingManager -->|"CreateReward()"| Minter
+ Minter -->|"Mint() new LPT"| LPT
-**Contract**
+ Broadcaster -->|"Approve() LPT"| LPT
+ Broadcaster -->|"FundDepositAndReserve()"| TicketBroker
+ TicketBroker -->|"TransferFrom()"| LPT
-}
- filename="MerkleSnapshot.sol"
-/>
+ Orchestrator -->|"RedeemWinningTicket()"| TicketBroker
+ TicketBroker -->|"Transfer() to orchestrator"| LPT
+ TicketBroker -->|"Update claimedReserve"| BondingManager
-
+ RoundsManager -->|"Round data"| BondingManager
+ RoundsManager -->|"Block hashes"| TicketBroker
-
-
-## Full Address Reference
-
-For the complete list of all current, paused, migration-residual, legacy-operational, and historical contract addresses across Arbitrum One and Ethereum Mainnet, see the [Contract Addresses](/v2/about/resources/livepeer-contract-addresses) reference page.
-
-Last Verified {lastVerifiedDate}
-
- Contract Address Reference Page · Livepeer Docs <> Automatically Updated >>}
- horizontal
- arrow
-/>
-
- Livepeer Contract Addresses Canonical Code >}
- horizontal
- />
- Livepeer Contracts Arbiscan On-chain Canonical >}
- horizontal
- />
-
-
-
-
-## Related Pages
-
-
- } href="/v2/about/livepeer-protocol/livepeer-token" horizontal arrow>
- LPT token mechanics, supply, minting, and the role of the token in the protocol.
-
- } href="/v2/about/livepeer-protocol/treasury" horizontal arrow>
- On-chain treasury, funding proposals, SPEs, and the treasury balance ceiling.
-
- } href="/v2/about/livepeer-protocol/governance-model" horizontal arrow>
- On-chain voting, proposal lifecycle, and delegator vote overrides.
-
- } href="/v2/about/livepeer-protocol/economics" horizontal arrow>
- Inflation model, bonding rate targets, reward distribution, and fee economics.
-
-
+ BondingManager -->|"Stake weight"| Governor
+ Delegator -->|"CastVote()"| Governor
+``` */}
diff --git a/v2/gateways/guides/roadmap-and-funding/x-resources/v2-providers--cloud-spe-gateway.mdx b/v2/gateways/guides/roadmap-and-funding/x-resources/v2-providers--cloud-spe-gateway.mdx
index c02976847..f4cae5dc1 100644
--- a/v2/gateways/guides/roadmap-and-funding/x-resources/v2-providers--cloud-spe-gateway.mdx
+++ b/v2/gateways/guides/roadmap-and-funding/x-resources/v2-providers--cloud-spe-gateway.mdx
@@ -18,7 +18,7 @@ keywords:
- ai gateway
- community gateway
- spe
-og:image: /snippets/assets/media/og-images/en/gateways.png
+og:image: /snippets/assets/domain/04_GATEWAYS/social-preview-gateways.jpg
---
import { BorderedBox } from '/snippets/components/wrappers/containers/Containers.jsx'
diff --git a/v2/gateways/x-archived/_contextData_/new/gateways-new/portal.mdx b/v2/gateways/x-archived/_contextData_/new/gateways-new/portal.mdx
deleted file mode 100644
index 20232f4ad..000000000
--- a/v2/gateways/x-archived/_contextData_/new/gateways-new/portal.mdx
+++ /dev/null
@@ -1,295 +0,0 @@
----
-mode: frame
-title: Gateway Home Portal
-sidebarTitle: Gateway Portal
-description: 'Welcome To The Gateway Portal: Explore, Navigate, Create'
-keywords:
- - home
- - index
- - landing
- - gateway
- - gateways
- - applications
- - production builds
- - broadcaster
- - livepeer gateway
- - livepeer gateways
- - livepeer broadcaster
- - livepeer broadcasters
- - livepeer broadcasting
- - livepeer broadcast
- - livepeer broadcasts
- - livepeer broadcast portal
- - livepeer gateways portal
- - livepeer broadcaster portal
- - livepeer broadcasters portal
- - livepeer broadcasting portal
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-tag: Start Here
-pageType: landing
-audience: gateway-operator
-purpose: landing
----
-
-import { PortalHeroContent, HeroImageBackgroundComponent, LogoHeroContainer, HeroContentContainer, HeroSectionContainer, PortalCardsHeader, PortalContentContainer } from '/snippets/components/page-structure/portals.jsx'
-import { H1, H2, H5,P } from '/snippets/components/display/frame-mode.jsx'
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-import { BlinkingIcon } from '/snippets/components/elements/links/Links.jsx'
-import { Starfield } from "/snippets/components/page-structure/heroGif.jsx";
-
-{/* HeroSectionContainer - Full width of content area (excludes sidebar, adapts to sidebar collapse) */}
-
-
- {/* HeroImageBackgroundComponent: Full-width Starfield Background - fills entire content area */}
-
-
-
-
- {/* HeroContentContainer - 80% width, centered within content area */}
-
- {/* LogoHeroContainer */}
-
-
- {/* PortalHeroContent */}
-
- }
- overview={
- <>
- Gateways serve as the primary demand aggregation layer in the Livepeer network.
- They accept video transcoding and AI inference requests from end customers,
- then distribute these jobs across the network of GPU-equipped Orchestrators.
-
-
- Gateways are the core building block for those developers looking to productise applications built on top of the Livepeer protocol.
- {/*
- Note: In earlier documentation, Gateways were referred to as Broadcasters
-
*/}
- >
- }
- />
-
-
-
-
- {/* END HERO */}
-
-
-{/* MOVE TO EXPLAINER / PRIMER */}
- {/*
*Mental Model*
-
-
-
- Running a Gateway is similar to operating an API Gateway or Load Balancer in cloud computing -
- it ingests traffic, routes workloads to backend GPU nodes, and manages session flow
- without doing the heavy compute itself.
-
-
-
- ```mermaid
- %%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a1a', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2d9a67', 'lineColor': '#2d9a67', 'secondaryColor': '#0d0d0d', 'tertiaryColor': '#1a1a1a', 'background': '#0d0d0d', 'fontFamily': 'system-ui' }}}%%
- flowchart LR
- subgraph Clients["Client / Application Layer"]
- A["Apps & SDKs • Video Ingest • AI Inference Requests • WebRTC / HTTP"]
- end
-
- subgraph Gateway["Gateway Layer (Livepeer Gateway)"]
- B["Gateway Node
Cloud Analogy: • API Gateway • L7 Load Balancer • Control Plane
• Payments • Accounting • Slashing / Security"]
- end
-
- A -->|Requests| B
- B -->|Dispatch Jobs| C
- C -->|Results / Streams| B
- B -->|Responses| A
- C -->|Usage & Proof| D
-
- classDef default fill:#1a1a1a,color:#fff,stroke:#2d9a67,stroke-width:2px
- style Clients fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Gateway fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Compute fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Settlement fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- ```
-
-
-
-
-
- Running a Gateway is **not** like running a validator on Ethereum.
- Validators secure consensus whereas Gateways route workloads. It's more akin to a Sequencer on a Layer 2.
- Just as a Sequencer ingests user transactions, orders them, and routes them into the rollup execution layer,
- a Livepeer Gateway performs the same function for the Livepeer compute network.
-
-
-
- ```mermaid
- %%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a1a', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2d9a67', 'lineColor': '#2d9a67', 'secondaryColor': '#0d0d0d', 'tertiaryColor': '#1a1a1a', 'background': '#0d0d0d', 'fontFamily': 'system-ui' }}}%%
- flowchart LR
- subgraph User["User Layer"]
- A["Client Video/AI Request"]
- end
-
- subgraph Gateway["Gateway Layer"]
- B["Livepeer Gateway = L2 Sequencer
= L2 Execution Layer"]
- end
-
- subgraph Settlement["Settlement Layer"]
- D["Ethereum Consensus & Payment Security"]
- end
-
- A --> B
- B --> C
- C --> B
- B --> A
- C --> D
-
- classDef default fill:#1a1a1a,color:#fff,stroke:#2d9a67,stroke-width:2px
- style User fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Gateway fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Compute fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Settlement fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- ```
-
-
-
-
-
- For the rest of us, running a Gateway is like being a film producer.
- You take a request, assemble the right specialists, manage constraints,
- and ensure the final result is delivered reliably-without doing every task yourself.
-
-
-
- ```mermaid
- %%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a1a', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2d9a67', 'lineColor': '#2d9a67', 'secondaryColor': '#0d0d0d', 'tertiaryColor': '#1a1a1a', 'background': '#0d0d0d', 'fontFamily': 'system-ui' }}}%%
- flowchart LR
- subgraph Persona["Persona: Gateway Operator = Film Producer"]
- P["Film Producer Mindset • Owns delivery • Sets constraints • Chooses specialists • Ensures quality"]
- end
-
- subgraph Request["Act I - The Pitch"]
- A["Incoming Request • Live Video Stream • AI Inference Job • Quality & Latency Requirements"]
- end
-
- subgraph Planning["Act II - Pre-Production"]
- B["Gateway (Producer)
• Interpret the request • Set budget & latency constraints • Choose specialists • Plan execution"]
- end
-
- subgraph Crew["Act III - Production Crew"]
- C["Orchestrators / GPU Workers
• Transcoding • AI Inference • Real-time Processing"]
- end
-
- subgraph Delivery["Act IV - Final Cut & Release"]
- D["Verified Output • Stream / AI Result • Quality checked • Delivered on time"]
- end
-
- subgraph Settlement["Credits & Accounting"]
- E["Onchain Settlement • Usage recorded • Payments distributed • Trust enforced"]
- end
-
- P --> A
- A --> B
- B --> C
- C --> B
- B --> D
- C --> E
-
- classDef default fill:#1a1a1a,color:#fff,stroke:#2d9a67,stroke-width:2px
- style Persona fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Request fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Planning fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Crew fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Delivery fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style Settlement fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- ```
-
-
-
- */}
-
-
-
-
-
-
-
- What? Where Am I? What's a Gateway? Why do I need one?
-
-
- Find Video and AI Services available via Gateways on the Livepeer Network.
-
-
-
- Developer Level Up
-
-
- Deploy your own Gateway on the Livepeer Protocol - no GPU required!
-
-
- Tools and Dashboards to help find and manage Gateways -> for users and
- operators.
-
-
- Full guides, examples and tutorials on running a Livepeer Gateway node.
-
-
- All your Gateway questions answered.
-
-
-
-
-
diff --git a/v2/gateways/x-archived/_contextData_/new/gateways-new/setup/configure/video-configuration-view.mdx b/v2/gateways/x-archived/_contextData_/new/gateways-new/setup/configure/video-configuration-view.mdx
deleted file mode 100644
index 05ffc1591..000000000
--- a/v2/gateways/x-archived/_contextData_/new/gateways-new/setup/configure/video-configuration-view.mdx
+++ /dev/null
@@ -1,193 +0,0 @@
----
-title: Video Configuration
-sidebarTitle: Video & Transcoding Configuration
-description: Configure Video Services on a Livepeer Gateway
-keywords:
- - livepeer
- - gateways
- - run a gateway
- - configure
- - video configuration view
- - video
- - configuration
- - services
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-icon: film-canister
----
-
-
-
-
-import { DoubleIconLink } from '/snippets/components/elements/links/Links.jsx'
-import { DynamicTable } from '/snippets/components/wrappers/tables/Table.jsx'
-import { ScrollableDiagram } from '/snippets/components/content/zoomableDiagram.jsx'
-
-{/* Views:
-
-- Intro & Architecture
-- Quickstart
-- Full Config Guide
-- Config Flags
-*/}
-
-## TL;DR Configuration
-
-If you just want a working video gateway, run the below command:
-
-
-```bash wrap lines icon="terminal" Off-Chain Video Gateway
-livepeer -gateway \
- -network offchain \
- # Minimum required video flags
- -rtmpAddr=0.0.0.0:1935 \
- -httpAddr=0.0.0.0:8935 \
- -transcodingOptions=P240p30fps16x9,P360p30fps16x9 \
- # You will need to add your local orchestrator address if you are running offchain
- -orchAddr=
-```
-
-```bash wrap lines icon="link" On-Chain Video Gateway
-livepeer -gateway \
- -network arbitrum-one-mainnet \
- # See the on-chain setup guide for more details on these flags
- -ethUrl= \
- -ethAcctAddr= \
- -ethPassword= \
- -ethKeystorePath= \
- # Minimum required video flags
- -rtmpAddr=0.0.0.0:1935 \
- -httpAddr=0.0.0.0:8935 \
- -maxPricePerUnit=1000 \
- -transcodingOptions=P240p30fps16x9,P360p30fps16x9 \
- -orchAddr=
- # You will need to connect to a public orchestrator if you are running onchain
-
-```
-
-
-
-
-## Gateways for Video Transcoding
-In traditional video transcoding, the Gateway ingests video streams via [RTMP](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol) or [HTTP](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol),
-segments them, and distributes transcoding work to Orchestrators
-
-The workflow involves segmenting video, sending segments with payments to Orchestrators,
-receiving transcoded results, and serving them via HLS .
-
-Gateways that receive a live or recorded RTMP stream need to transcode it into multiple renditions before sending it to Orchestrators for distribution.
-
-{/* Key components include:
-
-- **[BroadcastSessionsManager](https://github.com/livepeer/go-livepeer/blob/5691cb48/core/broadcast.go)**: Manages transcoding sessions and selects Orchestrators
-- **[RTMP](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol) Server**: Handles RTMP (Real-Time Message Protocol) stream ingestion
-- **[Payment Manager](https://github.com/livepeer/go-livepeer/blob/5691cb48/core/live_payment.go)**: Generates and sends payment tickets for transcoding work */}
-
-{/* 2. Diagram */}
-
-
-
-```mermaid
-%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a1a', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2d9a67', 'lineColor': '#2d9a67', 'secondaryColor': '#0d0d0d', 'tertiaryColor': '#1a1a1a', 'background': '#0d0d0d', 'fontFamily': 'system-ui' }}}%%
-flowchart TB
- subgraph INPUT["Video Input Sources"]
- direction LR
- RTMP["RTMP Stream :1935"]
- HTTP["HTTP Upload :8935"]
- end
-
- GATEWAY["Gateway Node LivepeerNode -gateway mode"]
-
- INPUT --> GATEWAY
-
- subgraph MANAGER["Broadcast Session Manager"]
- BSM["BroadcastSessionsManager Manages transcoding sessions Selects orchestrators"]
- end
-
- GATEWAY --> BSM
-
- subgraph PROCESSING["Video Processing Pipeline"]
- direction TB
- SEG["Segment Video Split into chunks"]
- TRANS["Send to Orchestrators with payment tickets"]
- ORCH["Orchestrators Transcode segments Multiple renditions"]
- RECEIVE["Receive Results Transcoded segments"]
- end
-
- BSM --> SEG --> TRANS --> ORCH --> RECEIVE
-
- subgraph OUTPUT["Output & Delivery"]
- direction LR
- HLS["HLS Manifest .m3u8"]
- RENDITIONS["Multiple Renditions 240p, 360p, 720p, 1080p"]
- end
-
- RECEIVE --> HLS --> RENDITIONS
-
- subgraph PAYMENT["Payment System"]
- direction TB
- PM["Payment Manager Generate tickets"]
- TICKETS["Per-segment payments Based on pixels transcoded"]
- end
-
- TRANS --> PM --> TICKETS --> ORCH
-
- subgraph STORAGE["Storage (Optional)"]
- OBJ["Object Store S3/IPFS"]
- end
-
- RENDITIONS -.-> OBJ
-
- classDef default fill:#1a1a1a,color:#fff,stroke:#2d9a67,stroke-width:2px
- classDef video fill:#1a1a1a,color:#fff,stroke:#3b82f6,stroke-width:2px
- classDef payment fill:#1a1a1a,color:#fff,stroke:#fbbf24,stroke-width:2px
- class RTMP,HTTP,BSM,SEG,TRANS,ORCH,RECEIVE,HLS,RENDITIONS video
- class PM,TICKETS payment
- style INPUT fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style MANAGER fill:#0d0d0d,stroke:#3b82f6,stroke-width:1px
- style PROCESSING fill:#0d0d0d,stroke:#3b82f6,stroke-width:1px
- style OUTPUT fill:#0d0d0d,stroke:#3b82f6,stroke-width:1px
- style PAYMENT fill:#0d0d0d,stroke:#fbbf24,stroke-width:1px
- style STORAGE fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px,stroke-dasharray: 5 5
-```
-
-
-
-
- go-livepeer/core/livepeernode.go
-
-
-
- # Quick Start Video Gateway Configuration
-
-For a basic video gateway, start with the below recommended settings and gradually add options based on your specific needs.
-The most critical settings are `-orchAddr` (to connect to orchestrators) and network addresses to allow external access.
-
-```bash wrap lines icon="terminal" Transcoding Options
-livepeer -gateway \
- -network offchain \
- -rtmpAddr=0.0.0.0:1935 \
- -httpAddr=0.0.0.0:8935 \
- -cliAddr=0.0.0.0:5935 \
- -maxSessions=10 \
- -orchAddr= \
- -transcodingOptions=P240p30fps16x9,P360p30fps16x9,P720p30fps16x9
- # You can also use a JSON file: path/to/transcodingOptions.json
-```
-
-
-
- wip
-
-
- wip
-
diff --git a/v2/gateways/x-archived/_contextData_/new/gateways-new/setup/configure/video-configuration.mdx b/v2/gateways/x-archived/_contextData_/new/gateways-new/setup/configure/video-configuration.mdx
deleted file mode 100644
index c5a04b01e..000000000
--- a/v2/gateways/x-archived/_contextData_/new/gateways-new/setup/configure/video-configuration.mdx
+++ /dev/null
@@ -1,745 +0,0 @@
----
-title: Video Configuration
-sidebarTitle: Video & Transcoding Configuration
-description: Configure Video Services on a Livepeer Gateway
-keywords:
- - livepeer
- - gateways
- - run a gateway
- - configure
- - video configuration
- - video
- - configuration
- - services
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: gateway-operator
-purpose: concept
-icon: film-canister
----
-
-
-
-
-
- {' '}
- Ugh I hate this page. I think its best to move everything to quickstart and have
- this be a comprehensive flag overview{' '}
-
-
-import { DoubleIconLink } from '/snippets/components/elements/links/Links.jsx'
-import { DynamicTable } from '/snippets/components/wrappers/tables/Table.jsx'
-import { ScrollableDiagram } from '/snippets/components/content/zoomableDiagram.jsx'
-import { CustomResponseField } from '/snippets/components/content/responseField.jsx'
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-
-{/* Page Flow:
-
-1. Intro
-2. Diagram
-3. Main Flags
-4. Quickstart Code
-5. Full Config Guide Options */}
-
-## TL;DR Configuration
-
-If you just want a working video gateway, use the below command:
-
-
-
-Replace {''} with your locally running orchestrator http address.
-```bash wrap lines icon="terminal" Off-Chain Video Gateway
-livepeer -gateway \
- -network offchain \
- # Minimum required video flags
- -rtmpAddr=0.0.0.0:1935 \
- -httpAddr=0.0.0.0:8935 \
- -transcodingOptions=P240p30fps16x9,P360p30fps16x9 \
- # You will need to add your local orchestrator address if you are running off-chain
- -orchAddr= #comma separated list of orchestrator addresses
- # Example: -orchAddr=http://192.168.1.100:8935,http://192.168.1.101:8935
- # You can also use a JSON file: -orchAddr=/path/to/orchestrators/orchestrators-portal.json
-```
-
-
-Replace {''} with publicly available orchestrator addresses.
-
-```bash wrap lines icon="link" On-Chain Video Gateway
-livepeer -gateway \
- -network arbitrum-one-mainnet \
- # See the on-chain setup guide for more details on these flags
- -ethUrl= \
- -ethAcctAddr= \
- -ethPassword= \
- -ethKeystorePath= \
- # Minimum required video flags
- -rtmpAddr=0.0.0.0:1935 \
- -httpAddr=0.0.0.0:8935 \
- -transcodingOptions=P240p30fps16x9,P360p30fps16x9 \
- # Price per unit is required on-chain (see pricing guide)
- -maxPricePerUnit=1000 \
- # You will need to connect to a public orchestrator if you are running onchain
- -orchAddr= #comma separated list of orchestrators
- # Example: -orchAddr=https://orch1.example.com:8935,https://orch2.example.com:8935
- # You can also use a JSON file: -orchAddr=/path/to/orchestrators/orchestrators-portal.json
-
-```
-
-Livepeer does not currently maintain a list of publicly available Orchestrators. You need to discover them through:
-
-- **Livepeer CLI**: Use livepeer_cli → Option 9: "List registered orchestrators"
-- **Network discovery**: The gateway discovers orchestrators from the on-chain registry
-- **Community resources**: Check Livepeer community channels or documentation
-
-Jump to the for details on connecting to orchestrators.
-
-
-
-
-
-{/* 1. Intro */}
-Gateways for Video Transcoding In traditional video transcoding, the Gateway
-ingests video streams via
-[RTMP](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol) or
-[HTTP](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol), segments
-them, and distributes transcoding work to Orchestrators{' '}
-
-{/* The workflow involves segmenting video, sending segments with payments to Orchestrators,
-receiving transcoded results, and serving them via HLS .
-
-Gateways that receive a live or recorded RTMP stream need to transcode it into multiple renditions before sending it to Orchestrators for distribution. */}
-
-{/* Key components include:
-
-- **[BroadcastSessionsManager](https://github.com/livepeer/go-livepeer/blob/5691cb48/core/broadcast.go)**: Manages transcoding sessions and selects Orchestrators
-- **[RTMP](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol) Server**: Handles RTMP (Real-Time Message Protocol) stream ingestion
-- **[Payment Manager](https://github.com/livepeer/go-livepeer/blob/5691cb48/core/live_payment.go)**: Generates and sends payment tickets for transcoding work */}
-
-{/* 2. Diagram */}
-
-
-
-```mermaid
-%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a1a', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2d9a67', 'lineColor': '#2d9a67', 'secondaryColor': '#0d0d0d', 'tertiaryColor': '#1a1a1a', 'background': '#0d0d0d', 'fontFamily': 'system-ui' }}}%%
-flowchart TB
- subgraph INPUT["Video Input Sources"]
- direction LR
- RTMP["RTMP Stream :1935"]
- HTTP["HTTP Upload :8935"]
- end
-
- GATEWAY["Gateway Node LivepeerNode -gateway mode"]
-
- INPUT --> GATEWAY
-
- subgraph MANAGER["Broadcast Session Manager"]
- BSM["BroadcastSessionsManager Manages transcoding sessions Selects orchestrators"]
- end
-
- GATEWAY --> BSM
-
- subgraph PROCESSING["Video Processing Pipeline"]
- direction TB
- SEG["Segment Video Split into chunks"]
- TRANS["Send to Orchestrators with payment tickets"]
- ORCH["Orchestrators Transcode segments Multiple renditions"]
- RECEIVE["Receive Results Transcoded segments"]
- end
-
- BSM --> SEG --> TRANS --> ORCH --> RECEIVE
-
- subgraph OUTPUT["Output & Delivery"]
- direction LR
- HLS["HLS Manifest .m3u8"]
- RENDITIONS["Multiple Renditions 240p, 360p, 720p, 1080p"]
- end
-
- RECEIVE --> HLS --> RENDITIONS
-
- subgraph PAYMENT["Payment System"]
- direction TB
- PM["Payment Manager Generate tickets"]
- TICKETS["Per-segment payments Based on pixels transcoded"]
- end
-
- TRANS --> PM --> TICKETS --> ORCH
-
- subgraph STORAGE["Storage (Optional)"]
- OBJ["Object Store S3/IPFS"]
- end
-
- RENDITIONS -.-> OBJ
-
- classDef default fill:#1a1a1a,color:#fff,stroke:#2d9a67,stroke-width:2px
- classDef video fill:#1a1a1a,color:#fff,stroke:#3b82f6,stroke-width:2px
- classDef payment fill:#1a1a1a,color:#fff,stroke:#fbbf24,stroke-width:2px
- class RTMP,HTTP,BSM,SEG,TRANS,ORCH,RECEIVE,HLS,RENDITIONS video
- class PM,TICKETS payment
- style INPUT fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style MANAGER fill:#0d0d0d,stroke:#3b82f6,stroke-width:1px
- style PROCESSING fill:#0d0d0d,stroke:#3b82f6,stroke-width:1px
- style OUTPUT fill:#0d0d0d,stroke:#3b82f6,stroke-width:1px
- style PAYMENT fill:#0d0d0d,stroke:#fbbf24,stroke-width:1px
- style STORAGE fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px,stroke-dasharray: 5 5
-```
-
-
-
-
- go-livepeer/core/livepeernode.go
-
-
-{/* 3. Main Flags */}
-
-## Essential Configuration Flags
-
-#### Required Flags
-
-
- Enable Gateway mode
-
-
- Set to the blockchain network for production gateways `arbitrum-one-mainnet`
-
-
- Set to `http://:` to connect to orchestrators
-
-#### Network Configuration
-
- Set to `0.0.0.0:1935` to allow external RTMP connections
-
-
- Set to `0.0.0.0:8935` to allow external HLS/API access
-
-#### Transcoding Configuration
-
- Set to `path/to/transcodingOptions.json` to use a custom transcoding configuration
-
-#### Additional On-Chain Flags
-Add these flags for on-chain configuration. See for details.
-
-
- value:
- "arbitrum-one-mainnet"
- ,
- ]}
-/>
-
- value:
- "1000"
- ,
- ]}
-/>
-
- value:
- "YOUR_RPC_URL"
- ,
- ]}
- required
-/>
-
- value:
- "YOUR_ETH_ADDRESS"
- ,
- ]}
-/>
-
- value:
- "YOUR_PASSWORD"
- ,
- ]}
-/>
-
- value:
- "KEYSTORE_PATH"
- ,
- ]}
-/>
-
-
-## Comprehensive Configuration Guide
-
-### Configuration Methods
-
-You have three ways to configure your Livepeer gateway after installation:
-
-- Command-line flags (most common)
-- Environment variables (prefixed with LP\_)
-- Configuration file (plain text key value format)
-
-### Configuration Examples
-
-The below examples show the most common configuration methods.
-
-
-
-.
-
-
-.
-
-
-.
-
-
-
-```bash wrap icon="docker" Create docker-compose.yml
-# 1. Create a basic docker-compose.yml
-cat > docker-compose.yml << EOF
-version: '3.9'
-services:
- gateway:
- image: livepeer/go-livepeer:master
- ports:
- - 1935:1935 # RTMP ingest
- - 8935:8935 # HLS/API
- volumes:
- - gateway-data:/root/.lpData
- command: |
- -gateway
- -network offchain
- -rtmpAddr=0.0.0.0:1935
- -httpAddr=0.0.0.0:8935
- -orchAddr=https://orchestrator.example.com:8935
- -transcodingOptions=P240p30fps16x9,P360p30fps16x9,P720p30fps16x9
-
-volumes:
- gateway-data:
-EOF
-```
-
-Start the Gateway
-
-```bash wrap icon="docker" Start the gateway
-# 2. Start the gateway
-docker-compose up -d
-```
-
-
-
-.
-
-
-
-```bash
-livepeer -gateway \
- -network offchain \
- -transcodingOptions=${env:HOME}/.lpData/offchain/transcodingOptions.json \
- -orchAddr=0.0.0.0:8935 \
- -httpAddr=0.0.0.0:9935 \
- -v=6
-```
-
-
-
-
-```bash wrap icon="docker" Create docker-compose.yml
-# 1. Create a basic docker-compose.yml
-cat > docker-compose.yml << EOF
-version: '3.9'
-services:
- gateway:
- image: livepeer/go-livepeer:master
- ports:
- - 1935:1935 # RTMP ingest
- - 8935:8935 # HLS/API
- volumes:
- - gateway-data:/root/.lpData
- command: |
- -gateway
- -network arbitrum-one-mainnet
- -rtmpAddr=0.0.0.0:1935
- -httpAddr=0.0.0.0:8935
- -orchAddr=https://orchestrator.example.com:8935
- -transcodingOptions=P240p30fps16x9,P360p30fps16x9,P720p30fps16x9
- -ethUrl \
- -ethAcctAddr \
- -ethPassword \
- -ethKeystorePath \
- -maxPricePerUnit 1000
-
-volumes:
- gateway-data:
-EOF
-```
-
-Start the Gateway
-
-```bash wrap icon="docker" Start the gateway
-# 2. Start the gateway
-docker-compose up -d
-```
-
-
-
-.
-
-
-
-```bash
-livepeer -gateway \
- -network arbitrum-one-mainnet \
- -ethUrl= \
- -ethAcctAddr= \
- -ethPassword= \
- -ethKeystorePath= \
- -maxPricePerUnit=1000 \
- -orchAddr= \
- -monitor=true
-```
-
-## Transcoding Options JSON
-
-Livepeer supports JSON configuration files for transcoding options through the `-transcodingOptions` flag.
-
-The transcodingOptions.json file lets you precisely control the encoding ladder.
-
-This file is a custom configuration file containing an array of rendition objects that defines which renditions (resolutions + bitrates)
-your Gateway will produce for each incoming stream.
-
-It overrides the default built-in ladder (e.g., P240p30fps16x9, etc.).
-
-```json wrap lines icon="brackets-curly" transcodingOptions.json example
-[
- {
- // required
- "bitrate": 1600000,
- "width": 854,
- "height": 480,
- // optional
- "name": "480p0",
- "fps": 0,
- "profile": "h264constrainedhigh",
- "gop": "1"
- },
- {
- // required
- "bitrate": 3000000,
- "width": 1280,
- "height": 720,
- // optional
- "name": "720p0",
- "fps": 0,
- "profile": "h264constrainedhigh",
- "gop": "1"
- },
- {
- // required
- "bitrate": 6500000,
- "width": 1920,
- "height": 1080,
- // optional
- "name": "1080p0",
- "fps": 0,
- "profile": "h264constrainedhigh",
- "gop": "1"
- }
-]
-```
-
-#### Notes
-
-- JSON configuration only applies to transcoding options, not other gateway flags
-- The file must contain valid JSON with the specified structure
-- All fields are optional except width, height, and bitrate
-- You can mix JSON configuration with other command-line flags
-
-
- Configure pricing for your gateway.
-
-
-## Full Configuration Flag Reference
-
-### Essential Changes
-
-
-
-### Network Configuration
-
-
-
-### Transcoding Settings
-
-
-
-### Production Considerations
-
-
-
-
-
-
-
-
- ## Modify Config Files
-
-
-
-Create the transcodingOptions.json file using the above template.
-
-```bash icon="docker"
-nano -p /var/lib/docker/volumes/gateway-lpData/_data/transcodingOptions.json
-```
-
-Modify the docker-compose.yml file from the root user's home directory _/root/_
-and add the following below `-pixelsPerUnit=1`
-
-```bash icon="docker"
--transcodingOptions=/root/.lpData/transcodingOptions.json
-```
-
-
-
-
-Create the transcodingOptions.json file using the above template.
-
-```bash icon="linux"
-sudo nano /usr/local/bin/lptConfig/transcodingOptions.json
-```
-
-Modify the Linux Service file /etc/systemd/system/livepeer.service and add the
-following below `-pixelsPerUnit=1`
-
-```bash icon="linux"
--transcodingOptions=/usr/local/bin/lptConfig/transcodingOptions.json \
-```
-
-
-
-
-Create the transcodingOptions.json file using the above template.
-
-Open notepad (or your text editor of choice) paste the template above and save
-the transcodingOptions.json file in the following location.
-
-In Windows, %USERNAME% is already a built-in environment variable
--> You can use it directly.
-
-```bash icon="windows"
-C:\Users\%USERNAME%\.lpData\transcodingOptions.json
-```
-
-Modify Windows bat file to include the following command after
-`-pixelsPerUnit=1`
-
-```bash icon="windows"
--transcodingOptions=C:\Users\%USERNAME%\.lpData\transcodingOptions.json
-```
-
-
-
-
diff --git a/v2/gateways/x-archived/about_old/architecture.mdx b/v2/gateways/x-archived/about_old/architecture.mdx
deleted file mode 100644
index 04c523b90..000000000
--- a/v2/gateways/x-archived/about_old/architecture.mdx
+++ /dev/null
@@ -1,145 +0,0 @@
----
-title: Gateway Architecture
-sidebarTitle: Architecture
-description: This page describes the architecture of Livepeer Gateways.
-keywords:
- - livepeer
- - gateways
- - about gateways
- - gateway architecture
- - gateway
- - architecture
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: gateway-operator
-purpose: landing
----
-
-import { ScrollableDiagram } from '/snippets/components/content/zoomableDiagram.jsx'
-import { DoubleIconLink } from '/snippets/components/elements/links/Links.jsx'
-
-Livepeer Gateway Architecture is defined in the `livepeer-go` core codebase.
-
-
-
-## Gateway Technical Architecture
-
-
-
-```mermaid
-%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a1a', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2d9a67', 'lineColor': '#2d9a67', 'secondaryColor': '#0d0d0d', 'tertiaryColor': '#1a1a1a', 'background': '#0d0d0d', 'fontFamily': 'system-ui' }}}%%
-flowchart TB
- subgraph INPUT["Input Sources"]
- direction LR
- RTMP["RTMP Stream"]
- HTTP["HTTP Upload"]
- AI_REQ["AI Request"]
- end
-
- GATEWAY["Gateway Node LivepeerNode"]
-
- INPUT --> GATEWAY
-
- subgraph MANAGERS["Session Managers"]
- direction LR
- BSM["BroadcastSessionsManager Video Transcoding"]
- ASM["AISessionManager AI Processing"]
- end
-
- GATEWAY --> BSM
- GATEWAY --> ASM
-
- subgraph VIDEO["Video Pipeline"]
- SEG["Segment Processing"]
- ORCH_V["Orchestrators Transcoding"]
- HLS["HLS/DASH Output"]
- end
-
- subgraph AI["AI Pipeline"]
- PROC["AI Processing"]
- ORCH_AI["Orchestrators AI Models"]
- OUT_AI["AI Output Images/Video"]
- end
-
- BSM --> SEG --> ORCH_V --> HLS
- ASM --> PROC --> ORCH_AI --> OUT_AI
-
- subgraph PAYMENT["Payment"]
- direction LR
- PAY_SEG["Per Segment"]
- PAY_PIX["Per Pixel"]
- end
-
- ORCH_V --> PAY_SEG
- ORCH_AI --> PAY_PIX
-
- classDef default fill:#1a1a1a,color:#fff,stroke:#2d9a67,stroke-width:2px
- classDef video fill:#1a1a1a,color:#fff,stroke:#3b82f6,stroke-width:2px
- classDef ai fill:#1a1a1a,color:#fff,stroke:#a855f7,stroke-width:2px
- class RTMP,HTTP,BSM,SEG,ORCH_V,HLS,PAY_SEG video
- class AI_REQ,ASM,PROC,ORCH_AI,OUT_AI,PAY_PIX ai
- style INPUT fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style MANAGERS fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style VIDEO fill:#0d0d0d,stroke:#3b82f6,stroke-width:1px
- style AI fill:#0d0d0d,stroke:#a855f7,stroke-width:1px
- style PAYMENT fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
-```
-
-
-
-### Flow Diagram
-
-
-
-```mermaid
-%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a1a', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2d9a67', 'lineColor': '#2d9a67', 'secondaryColor': '#0d0d0d', 'tertiaryColor': '#1a1a1a', 'background': '#0d0d0d', 'fontFamily': 'system-ui', 'clusterBkg': 'rgba(255,255,255,0.05)', 'clusterBorder': '#2d9a67' }}}%%
-graph TD
- classDef default stroke-width:2px
- A["Application Daydream, ComfyUI, BYOC"] -->|Job Request| B["Gateway Job Intake, Pricing, Capability Match"]
- B -->|Route Job| C["Orchestrator GPU Compute, AI Inference, Transcoding"]
- C -->|Results| B
- B -->|Response| A
-```
-
-
-
-
-
-### Layered Architecture
-
-
-
-```mermaid
-%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a1a', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2d9a67', 'lineColor': '#2d9a67', 'secondaryColor': '#0d0d0d', 'tertiaryColor': '#1a1a1a', 'background': '#0d0d0d', 'fontFamily': 'system-ui', 'clusterBkg': 'rgba(255,255,255,0.05)', 'clusterBorder': '#2d9a67' }}}%%
-graph LR
- classDef default stroke-width:2px
- subgraph APP[Application Layer]
- X["User App Web, Mobile, TouchDesigner"]
- end
- subgraph GW[Gateway Layer]
- G1[Job Intake]
- G2[Capability Discovery]
- G3[Pricing & Marketplace]
- G4[Routing / Scheduling]
- end
- subgraph ORC[Orchestrator Layer]
- O1[GPU Worker]
- O2[AI Models / BYOC Containers]
- O3[Transcoder]
- end
- X --> G1
- G1 --> O1
- O1 --> G1
- G1 --> X
-```
-
-
diff --git a/v2/gateways/x-archived/references/technical-architecture.mdx b/v2/gateways/x-archived/references/technical-architecture.mdx
deleted file mode 100644
index 7b5c3c6b2..000000000
--- a/v2/gateways/x-archived/references/technical-architecture.mdx
+++ /dev/null
@@ -1,169 +0,0 @@
----
-title: Technical Architecture
-sidebarTitle: Technical Architecture
-description: Technical Architecture Diagrams and References
-keywords:
- - livepeer
- - gateways
- - references
- - technical architecture
- - technical
- - architecture
- - diagrams
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: gateway-operator
-purpose: reference
----
-
-
-
-
-import { ScrollableDiagram } from '/snippets/components/content/zoomableDiagram.jsx'
-
-
-
-
- Inference, Transcoding, BYOC]
- end
- U --> GI --> GM --> GR --> OC --> OG --> OC --> GI --> U`}
- />
-
-
-
-
- >Gateway: Submit job
- Gateway->>Marketplace: Query orchestrator capabilities
- Marketplace-->>Gateway: Matching candidates
- Gateway->>Orchestrator: Dispatch workload
- Orchestrator->>Gateway: Return results
- Gateway->>App: Deliver output`}
- />
-
-
-
-
- • Ingest (RTMP/HTTP/WebRTC) • Segment video • Queue + order jobs • AI pipeline routing • Orchestrator selection • Verification & receipts"]
-
- CAM -->|"Live stream"| GATEWAY
- VID -->|"VOD upload"| GATEWAY
- AIIN -->|"AI job request"| GATEWAY
-
- subgraph JOBS["Workflows"]
- VJ["Video Transcoding Job"]
- AIJ["AI Inference Job (Daydream / ComfyStream / BYOC)"]
- end
-
- GATEWAY --> VJ
- GATEWAY --> AIJ
-
- subgraph ORCH["Orchestrator Network (GPU Operators)"]
- O1["Orchestrator A GPU Pool"]
- O2["Orchestrator B GPU Pool"]
- O3["Orchestrator C GPU Pool"]
- end
-
- VJ -->|"Transcode segments"| O1
- VJ --> O2
- AIJ -->|"Run model / inference"| O1
- AIJ --> O3
-
- subgraph OUTPUTS["Outputs"]
- HLS["Adaptive Bitrate Video (HLS/LL-HLS)"]
- AIOUT["AI Frames / Stylized Video"]
- end
-
- O1 --> GATEWAY
- O2 --> GATEWAY
- O3 --> GATEWAY
-
- GATEWAY --> HLS
- GATEWAY --> AIOUT
-
- ETH[("Arbitrum Blockchain Payments • Tickets • Rewards")]
- GATEWAY --> ETH
- O1 --> ETH
- O2 --> ETH
- O3 --> ETH
-
- classDef default fill:#1a1a1a,color:#fff,stroke:#2d9a67,stroke-width:2px
- style INPUT fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style JOBS fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style ORCH fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style OUTPUTS fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px`}
- />
-
-
-
-
-
-{/* ### Marketplace Interaction Model
-
- P
- O --> P
- A --> D
- P --> R
- R --> A`}
-/>
-
-### BYOC (Bring Your Own Container) Architecture
-
- B[Compliant Runtime Spec]
- B --> C[Gateway Intake]
- C --> D[Capability Validation]
- D --> E[Orchestrator Container Runner]
- E --> F[GPU Execution]
- F --> C --> A`}
-/> */}
diff --git a/v2/gateways/x-archived/run-a-gateway/connect/connect-with-offerings.mdx b/v2/gateways/x-archived/run-a-gateway/connect/connect-with-offerings.mdx
deleted file mode 100644
index 5f9eb8006..000000000
--- a/v2/gateways/x-archived/run-a-gateway/connect/connect-with-offerings.mdx
+++ /dev/null
@@ -1,120 +0,0 @@
----
-title: Discover & Connect Marketplace Compute Services
-sidebarTitle: Discover & Connect Services
-description: >-
- This page explains how to find and broker Orchestrator AI & Video Offerings
- via your Gateway for Livepeer Application consumption.
-keywords:
- - livepeer
- - gateways
- - run a gateway
- - connect
- - connect with offerings
- - discover
- - marketplace
- - compute
- - services
- - explains
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: gateway-operator
----
-
-
-
-
-import { CustomCallout } from '/snippets/components/elements/links/Links.jsx'
-import { ScrollableDiagram } from '/snippets/components/content/zoomableDiagram.jsx'
-
-# How to Discover & Connect Marketplace Offerings
-
-This page explains how Gateways can discover and offer Orchestrator Services,
-available on the Marketplace, to Applications & Builders.
-
-## Discovery Process
-
-Gateways discover orchestrators through the orchestrator pool in `discovery/discovery.go` [discovery.go:64-111](https://github.com/livepeer/go-livepeer/blob/5691cb48/discovery/discovery.go#L64-L111)
-
-1. **Query orchestrators**: Get `OrchestratorInfo` from each orchestrator
-2. **Filter capabilities & price**: Match against required capabilities & pricing limits & optionally rank results
-3. **Expose results**: Make matching orchestrator services available through HTTP endpoints
-4. **Route requests**: Forward incoming requests to selected orchestrators
-
-## Find All Orchestrators & Offerings
-
-The `/getNetworkCapabilities` endpoint in [server/handlers.go](https://github.com/livepeer/go-livepeer/blob/5691cb48/server/handlers.go#L275-L295)
-exposes all available orchestrator offerings
-
-```go
-func (s *LivepeerServer) getNetworkCapabilitiesHandler() http.Handler {
- return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- // Returns orchestrators with their capabilities, pricing, and hardware
- })
-}
-```
-
-**Response Data Structure**
-
-The response uses NetworkCapabilities structure from `common/types.go` [types.go:166-176](https://github.com/livepeer/go-livepeer/blob/5691cb48/common/types.go#L166-L176)
-
-```go
-type NetworkCapabilities struct {
- Orchestrators []*OrchNetworkCapabilities `json:"orchestrators"`
-}
-
-type OrchNetworkCapabilities struct {
- Address string `json:"address"`
- LocalAddress string `json:"local_address"`
- OrchURI string `json:"orch_uri"`
- Capabilities *net.Capabilities `json:"capabilities"`
- CapabilitiesPrices []*net.PriceInfo `json:"capabilities_prices"`
- Hardware []*net.HardwareInformation `json:"hardware"`
-}
-```
-
-## Gateway
-
-Gateways expose offerings describing:
-
-### **1. Supported Models**
-
-Example:
-
-- `stable-diffusion-v1.5`
-- `depth-anything`
-- `controlnet_lineart`
-- `ip_adapter`
-
-### **2. Supported Pipelines**
-
-- Daydream-style real-time style transfer
-- ComfyStream workflows
-- BYOC containers
-- Custom inference graphs
-
-### **3. Pricing**
-
-A Gateway may price:
-
-- `$0.004 / frame`
-- `$0.06 / second`
-- `$0.0005 / inference token`
-
-### **4. Regions**
-
-Example:
-
-- `us-east`
-- `eu-central`
-- `ap-southeast`
-
-### **5. Reliability Scores**
-
-Gateways may publish:
-
-- Availability %
-- Average inference latency
-- Failover configuration
diff --git a/v2/gateways/x-archived/run-a-gateway/install/community-projects.mdx b/v2/gateways/x-archived/run-a-gateway/install/community-projects.mdx
deleted file mode 100644
index 7d6a09c5a..000000000
--- a/v2/gateways/x-archived/run-a-gateway/install/community-projects.mdx
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: 'Easy Install [DevOps & Community Projects]'
-sidebarTitle: Single Click Deployment
-description: Community CICD Pipelines to make installation accessible & easy
-keywords:
- - livepeer
- - gateways
- - run a gateway
- - install
- - community projects
- - easy
- - devops
- - community
- - projects
- - pipelines
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: gateway-operator
-icon: timeline-arrow
-tag: beta
----
-
-
-
-
-
-Page Not Finalised
-
-**Notes:**
-
-- Gateway hub will be an automated addition pipeline with human in the loop.
-
-**TODO:**
-
-- Verify all content
-- Add a real link for community submissions
-- Not happy with contribution layout
-
-
-import { YouTubeVideo } from '/snippets/components/content/video.jsx';
-import { GotoCard, GotoLink } from '/snippets/components/elements/links/Links.jsx'
-
-# Gateway HUB
-
-A collection of community projects that make running a Livepeer Gateway easy.
-
-**Quick Links**
-
-
-
- Fully Managed DevOps Platform for Livepeer
-
-
- Coming Soon
-
-
-Have a Guide or Project to Contribute?
-
-
-
- Contribute to the Gateway Hub
-
-
-
-## GWID (Gateway Wizard)
-
-
- {' '}
- This is a community contributed project. Please contact the team for help & support.{' '}
-
-
-GWID is a fully managed DevOps platform for Livepeer. It provides a simple and easy way to deploy and manage Livepeer gateways. It also provides easy integration with other services to test the gateway.
-
-
-
-
- View the GWID repository on GitHub
-
-
-### GWID RFP & Updates
-
-- [GWID SPE Proposal: Gateway Wizard Phase 1](https://forum.livepeer.org/t/gwid-spe-pre-proposal-gateway-wizard-phase-1/2868)
-- [Get to know GWID - A Fully Managed DevOp Platform for Livepeer](https://forum.livepeer.org/t/get-to-know-gwid-and-the-team-a-fully-managed-devop-platform-for-livepeer/2851)
-
-### GWID Documentation
-
-Below is the current README from the GWID repository.
-
-
- The embedded GWID README is unavailable in this docs branch.
- Use the GitHub repository link above to review the current installation and deployment instructions.
-
diff --git a/v2/gateways/x-archived/run-a-gateway/install/linux-install.mdx b/v2/gateways/x-archived/run-a-gateway/install/linux-install.mdx
deleted file mode 100644
index 1ab4e21bd..000000000
--- a/v2/gateways/x-archived/run-a-gateway/install/linux-install.mdx
+++ /dev/null
@@ -1,353 +0,0 @@
----
-title: Linux Install
-sidebarTitle: Linux Install
-description: How to install a Livepeer Gateway from source binary
-keywords:
- - livepeer
- - gateways
- - run a gateway
- - install
- - linux install
- - linux
- - gateway
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: gateway-operator
-icon: linux
----
-
-
-
-
-import { StyledStep, StyledSteps } from '/snippets/components/wrappers/steps/Steps.jsx'
-import { CustomCodeBlock, CodeComponent } from '/snippets/components/content/code.jsx'
-import { DownloadButton } from '/snippets/components/elements/buttons/Buttons.jsx'
-import { latestVersion } from '/snippets/automations/globals/globals.mdx'
-
- Dual AI & Video
-
-
-
-{/* Test - remove after verifying: */}
-
-Latest go-livepeer version: {latestVersion} (dynamically fetched)
-
-This guide covers installing the Livepeer Gateway from source binary on Linux.
-
-
-
- Ensure you have `wget` and `tar` installed & up-to-date on your system.
- - `tar` is pre-installed on macOS and most linux distributions.
-
- Quick Install `wget` with [Homebrew](https://brew.sh/)
- ```bash lines icon="terminal" install wget with brew
- # Check if wget is installed
- brew list --versions wget
- # Install wget if not already installed
- brew install wget
- ```
-
- Other `wget` Install Options
-
-
- You can use brew or your package manager to install `wget`
-
-
- **Linux Ubuntu/Debian**
- ```bash icon="terminal" lines
- sudo apt-get update && sudo apt-get upgrade wget
- sudo apt install -y wget
- ```
-
- **Alpine**
- ```bash lines icon="terminal"
- sudo apk update
- sudo apk add wget
- ```
-
- **Fedora/RHEL/CentOS/Rocky**
- ```bash lines icon="terminal"
- sudo dnf update
- sudo dnf install -y wget
- ```
-
- **Arch**
- ```bash lines icon="terminal"
- sudo pacman -Syu
- sudo pacman -S wget
- ```
-
-
-
- ```bash lines icon="terminal" brew install wrap
- # Install brew if not already installed
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- ```
- ```bash lines icon="terminal" version check
- # Check if wget is installed
- brew list --versions wget
- brew list --versions tar
- ```
-
- ```bash lines icon="terminal" upgrade wget
- # Upgrade wget if already installed
- brew upgrade wget
- brew upgrade tar
- ```
-
- ```bash lines icon="terminal" install wget
- # Install wget if not already installed
- brew install wget
- ```
-
- ```bash lines icon="terminal" update all brew packages
- # Update all brew packages
- brew update && bre upgrade
- ```
-
-
-
-
- MacOS users will also need to install `libx11` and `--cask xquartz`
-
-You can use brew or curl to install `wget`
-
-
- Using [brew](https://brew.sh/)
- ```bash lines icon="terminal" brew wrap
- # Install brew if not already installed
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
- # Check if wget is installed
- brew list --versions wget
-
- # Upgrade wget if already installed
- brew upgrade wget
-
- # Install wget if not already installed
- brew install wget libx11 --cask xquartz
-
- # Update all brew packages
- brew update && bre upgrade
- ```
-
-
-
- Using [curl](https://curl.haxx.se/)
-
- ```bash lines icon="terminal" curl wrap
- curl -LO https://ftp.gnu.org/gnu/wget/wget-1.21.4.tar.gz
- tar -xzf wget-1.21.4.tar.gz
- cd wget-1.21.4
- ./configure && make && sudo make install
- ```
-
-
-
-
-
-
-
-
- Note: {''} is dynamically fetched from the [go-livepeer releases page](https://github.com/livepeer/go-livepeer/releases) via Gtihub API.
-
-
- In case of fetch issues: Replace {''} with the latest version number
- ```bash lines icon="terminal" wrap wget
- sudo wget https://github.com/livepeer/go-livepeer/releases/download//livepeer-linux-amd64.tar.gz
- ```
-
-
-
-
- Note: {''} is dynamically fetched from the [go-livepeer releases page](https://github.com/livepeer/go-livepeer/releases) via Gtihub API.
-
- Intel
-
-
-
- ```bash lines icon="terminal" wrap curl
- curl -LO https://github.com/livepeer/go-livepeer/releases//download/livepeer-darwin-amd64.tar.gz
- tar -zxvf livepeer-darwin-amd64.tar.gz
- sudo mv livepeer-darwin-amd64/* /usr/local/bin/
- livepeer -gateway
- ```
-
-
- Apple Silicon
-
-
-
- ```bash lines icon="terminal" wrap curl
- curl -LO https://github.com/livepeer/go-livepeer/releases//download/livepeer-darwin-arm64.tar.gz
- tar -zxvf livepeer-darwin-arm64.tar.gz
- sudo mv livepeer-darwin-arm64/* /usr/local/bin/
- livepeer -gateway
- ```
-
-
-
-
-
- In case of fetch issues: Replace {''} with the latest version number
- ```bash lines icon="terminal" wrap curl
- curl -LO https://github.com/livepeer/go-livepeer/releases/download//livepeer-linux-amd64.tar.gz
- ```
-
-
-
-
- Unpack and remove the compressed file
-
- ``` bash icon="terminal" lines
- sudo tar -zxvf livepeer-linux-amd64.tar.gz
- sudo rm livepeer-linux-amd64.tar.gz
- sudo mv livepeer-linux-amd64/* /usr/local/bin/
- ```
-
-
-
-
-
-
- Off-chain mode is the default network and requires no blockchain connectivity (no wallet or RPC).
-
- - defaultNetwork := "offchain"
-
- ```bash icon="terminal" lines run the Gateway
- # Run the gateway
- livepeer -gateway
- ```
-
-
-
-
- You will need to **Generate Keystore File**
-
-
- When generating a new keystore file, the program will prompt you for a
- password. This password is used to decrypt the keystore file and access the
- private key. Make sure to never share or lose access to either the password or
- the keystore file
-
-
- ```bash icon="terminal" lines Run the Gateway
- # Set your Arbitrum RPC URL
- export RPC_URL=""
-
- # Run the gateway
- livepeer -network arbitrum-one-mainnet -ethUrl $RPC_URL -gateway
- ```
-
-
-
- **Output Example**
- ```bash icon="terminal" lines Off-Chain Gateway Example Output
- >_ livepeer -gateway
-
- *---------*------*
- | Gateway | true |
- *---------*------*
- I1222 12:37:23.339916 97244 starter.go:537] ***Livepeer is running on the offchain network***
- I1222 12:37:23.340276 97244 starter.go:554] Creating data dir: /Users//.lpData/offchain
- I1222 12:37:23.344584 97244 starter.go:723] ***Livepeer is in off-chain mode***
- E1222 12:37:23.345022 97244 starter.go:1586] No orchestrator specified; transcoding will not happen
- I1222 12:37:23.350972 97244 starter.go:1827] ***Livepeer Running in Gateway Mode***
- I1222 12:37:23.350991 97244 starter.go:1828] Video Ingest Endpoint - rtmp://127.0.0.1:1935
- I1222 12:37:23.351002 97244 starter.go:1837] Livepeer Node version: 0.8.8
- I1222 12:37:23.351124 97244 mediaserver.go:247] HTTP Server listening on http://127.0.0.1:9935
- I1222 12:37:23.351398 97244 webserver.go:20] CLI server listening on 127.0.0.1:5935
- ```
-
-
-
-
-Jump to [Configuration](/v2/gateways/run-a-gateway/configure/configuration-overview) to
-finish configuring the Gateway
-
-
-
-
-# Create a file containing your Gateway Ethereum password
-
-```text
-sudo mkdir /usr/local/bin/lptConfig
-sudo nano /usr/local/bin/lptConfig/node.txt
-```
-
-Enter your password and save the file
-
-
-
-# Create a system service
-
-```text
-sudo nano /etc/systemd/system/livepeer.service
-```
-
-Paste and update the following startup script with your personal info:
-
-```jsx
-[Unit]
-Description=Livepeer
-
-[Service]
-Type=simple
-User=root
-Restart=always
-RestartSec=4
-ExecStart=/usr/local/bin/livepeer -network arbitrum-one-mainnet \
--ethUrl= \
--cliAddr=127.0.0.1:5935 \
--ethPassword=/usr/local/bin/lptConfig/node.txt \
--maxPricePerUnit=300 \
--broadcaster=true \
--serviceAddr=:8935 \
--transcodingOptions=/usr/local/bin/lptConfig/transcodingOptions.json \
--rtmpAddr=0.0.0.0:1935 \
--httpAddr=0.0.0.0:8935 \
--monitor=true \
--v 6
-
-[Install]
-WantedBy=default.target
-```
-
-Start the system service
-
-```text
-sudo systemctl daemon-reload
-sudo systemctl enable --now livepeer
-```
-
-Open the Livepeer CLI
-
-```text
-livepeer_cli -host 127.0.0.1 -http 5935
-```
-
-
-
diff --git a/v2/gateways/x-archived/run-a-gateway/install/windows-install.mdx b/v2/gateways/x-archived/run-a-gateway/install/windows-install.mdx
deleted file mode 100644
index 573f64979..000000000
--- a/v2/gateways/x-archived/run-a-gateway/install/windows-install.mdx
+++ /dev/null
@@ -1,152 +0,0 @@
----
-title: Windows Install
-sidebarTitle: Windows Install
-description: How to install a Livepeer Gateway using Windows
-keywords:
- - livepeer
- - gateways
- - run a gateway
- - install
- - windows install
- - windows
- - gateway
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: gateway-operator
-icon: windows
----
-
-
-
-
-import { StyledSteps, StyledStep } from '/snippets/components/wrappers/steps/Steps.jsx'
-import { CustomCodeBlock } from '/snippets/components/content/code.jsx'
-import { latestVersion as version} from '/snippets/automations/globals/globals.mdx'
-
-
- This content is referenced from the [current docs windows install
- guide](https://docs.livepeer.org/gateways/guides/windows-install) **TODO** - [
- ] UNVERIFIED INSTALL DOCS - VERIFY CONTENT - [ ] MOVE ETH WALLET SETUP CONTENT
-
-
- Video Only
-
-
-Latest go-livepeer version: {version} (dynamically fetched)
-
-This guide covers installing the Livepeer Gateway from source binary on Windows.
-
-This is a Linux distribution operating in WSL2
-
-
-
- Install WSL2 (Windows host)
-
- ```bash icon="terminal" lines In Powershell(Admin)
- wsl --install
- # Reboot when prompted.
- ```
-
- ```bash icon="terminal" wrap lines Check
- wsl --status
- # Output: Version: WSL 2
- # Output:Default distro: Ubuntu
- ```
-
- ```bash icon="terminal" wrap lines Enter WSL
- wsl
- ```
-
-
-
- ## Download and unzip the Livepeer binary
-
-
-
- In case of fetch issues: Replace {''} with the latest [go-livepeer release](https://github.com/livepeer/go-livepeer/releases) number
- ```bash icon="terminal" wrap lines
- https://github.com/livepeer/go-livepeer/releases/download//livepeer-windows-amd64.zip
- ```
-
-
-
-
- ## Create a bat file to launch Livepeer.
-
-Create a file named gateway.bat:
-
-```bash icon="terminal" wrap lines
- touch gateway.bat
-```
-
-Use the following as a template, adding your personal info where needed (on-chain) and save a .bat file
-in the same directory as the Livepeer executable.
-
-
-
- ```bash icon="terminal" wrap lines
- livepeer.exe -network=offchain -gateway -cliAddr=127.0.0.1:5935 -monitor=true -v=6 -rtmpAddr=0.0.0.0:1935 -httpAddr=0.0.0.0:8935
-
- PAUSE
- ```
-
-
- ```bash icon="terminal" wrap lines
- livepeer.exe -network=arbitrum-one-mainnet -ethUrl= -ethAcctAddr= -ethPassword= -ethKeystorePath= -gateway -cliAddr=127.0.0.1:5935 -rtmpAddr=0.0.0.0:1935 -httpAddr=0.0.0.0:8935 -maxPricePerUnit=300 -monitor=true -v=6
-
- PAUSE
- ```
-
- **Required On-Chain Parameters**
-
- Network Configuration
- - `-network`: Must be set to the blockchain network `arbitrum-one-mainnet`
-
- Ethereum Configuration
- - `-ethUrl`: Ethereum JSON-RPC URL (required for on-chain)
- - `-ethAcctAddr`: Your Ethereum account address
- - `-ethPassword`: Password for your ETH account or path to password file
- - `-ethKeystorePath`: Path to your keystore directory or keyfile
-
-
-
-
-
-
-
-## Start the Livepeer Gateway
-
-Start the Livepeer Gateway using the .bat file.
-
- ```bash icon="terminal" wrap lines
- livepeer_cli.exe -host 127.0.0.1 -http 5935
- ```
-
-
-
- _If you'd like the Gateway to start with Windows you can create a System service
- using [NSSM](https://nssm.cc/) or the Windows Task Scheduler._
-
-
-
-{' '}
-
-
- Open the Livepeer CLI, then Jump to [Configuration
- Options](/v2/gateways/run-a-gateway/configure/configuration-overview) to finish
- configuring the Gateway
-
diff --git a/v2/gateways/x-archived/run-a-gateway/monitor/monitor-and-optimise.mdx b/v2/gateways/x-archived/run-a-gateway/monitor/monitor-and-optimise.mdx
deleted file mode 100644
index c65a2adbf..000000000
--- a/v2/gateways/x-archived/run-a-gateway/monitor/monitor-and-optimise.mdx
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: Monitor & Optimise Gateway Services
-sidebarTitle: Monitor & Optimise
-description: Monitor & Optimise Gateway Services
-keywords:
- - livepeer
- - gateways
- - run a gateway
- - monitor
- - monitor and optimise
- - optimise
- - gateway
- - services
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: gateway-operator
-purpose: concept
----
-
-
-
-
-import { DoubleIconLink } from '/snippets/components/elements/links/Links.jsx'
-import { ScrollableDiagram } from '/snippets/components/content/zoomableDiagram.jsx'
-
- Currently operating as a brainstorming page
-
-## Request Routing
-
-**Request Processing Flow (both)**
-
-- **Request Validation**: OpenAPI validation middleware validates request structure
-- **Session Selection**: AISessionManager selects appropriate orchestrator based on model capability
-- **Payment Processing**: Calculates payment based on pixel count for non-live endpoints
-- **Model Execution**: Sends request to AI worker with specified model
-
-
-
-```mermaid
-%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a1a', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2d9a67', 'lineColor': '#2d9a67', 'secondaryColor': '#0d0d0d', 'tertiaryColor': '#1a1a1a', 'background': '#0d0d0d', 'fontFamily': 'system-ui' }}}%%
-flowchart TB
- A[Incoming Request] --> B[Request Validation]
- B --> C[Session Selection]
- C --> D[Payment Processing]
- D --> E[Model Execution]
- E --> F[Response]
-
- style A fill:#1a1a1a,stroke:#2d9a67,color:#fff
- style B fill:#1a1a1a,stroke:#2d9a67,color:#fff
- style C fill:#1a1a1a,stroke:#2d9a67,color:#fff
- style D fill:#1a1a1a,stroke:#2d9a67,color:#fff
- style E fill:#1a1a1a,stroke:#2d9a67,color:#fff
- style F fill:#1a1a1a,stroke:#2d9a67,color:#fff
-```
-
-
-
-#### Transcoding Requests
-
-Traditional video transcoding requests are handled through:
-
-- **RTMP ingest**: Port `1935` by default
-- **HTTP push**: `/live/{streamKey}` endpoint when `-httpIngest` is enabled
-- **HLS output**: Adaptive bitrate streams for playback
-
-#### AI Requests
-
-AI processing requests are routed through dedicated endpoints
-
- (fixme) OpenAPI Spec is here: ai/worker/api/openapi.json
-
-
- Generate images from text prompts.
- Uses `jsonDecoder` for parsing
-
-
- Transform images with prompts.
- Uses `multipartDecoder` for file uploads
-
-
- Create videos from images.
- Uses `multipartDecoder` for file uploads
-
-
- Upscale (enhance) images to higher resolution.
- Uses `multipartDecoder` for file uploads
-
-
- Apply transformations to a live video streamed to the returned endpoints.
- Live video endpoint has specialized handling for real-time streaming with MediaMTX integration
-
-
-## Payment Models
-
-The dual setup handles two different payment models:
-
-#### Transcoding Payments
-
-Basis: Per video segment processed
-Method: Payment tickets sent with each segment
-Verification: Multi-orchestrator verification for quality assurance
-
-#### AI Payments
-
-Basis: Per pixel processed (width × height × outputs)
-Method: Pixel-based payment calculation
-Live Video: Interval-based payments during streaming
-
-## Operational Considerations
-
-#### Resource Allocation
-
-When running dual setup, consider:
-
-- GPU resources: Shared between transcoding and AI workloads
-- Memory: AI models require significant RAM when loaded ("warm")
-- Network: Bandwidth for both stream ingest and AI request/response
-
-#### Monitoring
-
-Monitor both workload types:
-
-- Transcoding: Segment processing latency, success rates
-- AI: Model loading times, inference latency, pixel processing rates
-
-#### Scaling Strategies
-
-- Horizontal: Deploy multiple gateway instances behind a load balancer
-- Vertical: Allocate more GPU resources for AI model parallelism
-- Specialized: Separate nodes for transcoding vs AI based on workload patterns
diff --git a/v2/gateways/x-archived/run-a-gateway/run-a-gateway.mdx b/v2/gateways/x-archived/run-a-gateway/run-a-gateway.mdx
deleted file mode 100644
index 61517b53b..000000000
--- a/v2/gateways/x-archived/run-a-gateway/run-a-gateway.mdx
+++ /dev/null
@@ -1,239 +0,0 @@
----
-title: Run a Gateway
-sidebarTitle: Run A Gateway
-description: |-
- Connect Applications with Video & AI services by running your own Gateway!
- This page gives an overview of the steps to run a Gateway node.
-keywords:
- - livepeer
- - gateways
- - run a gateway
- - gateway
- - connect
- - applications
- - video
-'og:image': /snippets/assets/site/og-image/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-audience: gateway-operator
----
-
-
-import { GotoLink } from '/snippets/components/elements/links/Links.jsx'
-import { ScrollableDiagram } from '/snippets/components/content/zoomableDiagram.jsx'
-import { StyledSteps, StyledStep } from '/snippets/components/wrappers/steps/Steps.jsx'
-import { FlexContainer } from '/snippets/components/wrappers/containers/Layout.jsx'
-
-
-## Introduction Gateways are essential infrastructure in the Livepeer network. They
-provide the service coordination layer (routing & verification) that connects applications
-to the decentralized GPU compute layer (DePIN). This guide explains the requirements,
-setup steps, and best practices for running a Gateway node."
-
-## Gateway Modes
-
-You can run a gateway
-
-- **Off-chain** -> dev or local mode
-- **On-chain** -> production mode connected to the
- blockchain-based Livepeer network (on Arbitrum).{' '}
-
-## Gateway Capabilities
-
-You can run a Gateway for:
-
-- Video Only -> traditional transcoding services
-- AI Only -> AI inference services
-- Dual: AI & Video -> both video transcoding and AI
- inference services
-
-## Gateway Architecture
-
-
-```mermaid
-%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a1a', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2d9a67', 'lineColor': '#2d9a67', 'secondaryColor': '#0d0d0d', 'tertiaryColor': '#1a1a1a', 'background': '#0d0d0d', 'fontFamily': 'system-ui' }}}%%
-flowchart LR
- subgraph INPUT["Input Sources"]
- CAM["Camera / RTMP / WebRTC"]
- VID["Video File"]
- AIIN["AI Prompt / Model Request"]
- end
-
- GATEWAY["Gateway Node • Ingest (RTMP/HTTP/WebRTC) • Segment video • Queue + order jobs • AI pipeline routing • Orchestrator selection • Verification & receipts"]
-
- CAM -->|"Live stream"| GATEWAY
- VID -->|"VOD upload"| GATEWAY
- AIIN -->|"AI job request"| GATEWAY
-
- subgraph JOBS["Workflows"]
- VJ["Video Transcoding Job"]
- AIJ["AI Inference Job (Daydream / ComfyStream / BYOC)"]
- end
-
- GATEWAY --> VJ
- GATEWAY --> AIJ
-
- subgraph ORCH["Orchestrator Network (GPU Operators)"]
- O1["Orchestrator A GPU Pool"]
- O2["Orchestrator B GPU Pool"]
- O3["Orchestrator C GPU Pool"]
- end
-
- VJ -->|"Transcode segments"| O1
- VJ --> O2
- AIJ -->|"Run model / inference"| O1
- AIJ --> O3
-
- subgraph OUTPUTS["Outputs"]
- HLS["Adaptive Bitrate Video (HLS/LL-HLS)"]
- AIOUT["AI Frames / Stylized Video"]
- end
-
- O1 --> GATEWAY
- O2 --> GATEWAY
- O3 --> GATEWAY
-
- GATEWAY --> HLS
- GATEWAY --> AIOUT
-
- ETH[("Arbitrum Blockchain Payments • Tickets • Rewards")]
- GATEWAY --> ETH
- O1 --> ETH
- O2 --> ETH
- O3 --> ETH
-
- classDef default fill:#1a1a1a,color:#fff,stroke:#2d9a67,stroke-width:2px
- style INPUT fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style JOBS fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style ORCH fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
- style OUTPUTS fill:#0d0d0d,stroke:#2d9a67,stroke-width:1px
-
-```
-
-
-
-
-## Gateway Operator Journey
-
-
-
- B
- B --> C1
- C1 --> C2
- C2 --> D
- D --> E1
- E1 --> E2
- E2 --> F
-
- classDef default fill:#1a1a1a,color:#fff,stroke:#2d9a67,stroke-width:2px`}
- />
-
-
-
-
-
- Check hardware, network, and software requirements.
-
-
-
- Install the Livepeer Gateway software.
-
-
-
- Configure transcoding options, models, pipelines & pricing
-
-
-
- Price & publish offerings to the Marketplace.
-
-
-
- Connect with Orchestrators, price & route offerings in the Marketplace.
-
-
-
- Monitor performance, optimise routing & service quality.
-
-
-
-
-
-
-
-## Related Pages
-
- Looking for information on how gateways earn fees for services?
-
-
-
- Just want to get started?
-
-
-```text
diff --git a/v2/home/about-livepeer/evolution.mdx b/v2/home/about-livepeer/evolution.mdx
index a4e22ed20..b7fc2b65b 100644
--- a/v2/home/about-livepeer/evolution.mdx
+++ b/v2/home/about-livepeer/evolution.mdx
@@ -24,12 +24,13 @@ keywords:
audience: everyone
lastVerified: 2026-03-17
---
+{/* The journey of Livepeer from video to AI - key achievements */}
import { YouTubeVideo } from '/snippets/components/displays/video/Video.jsx';
-import { Image } from '/snippets/components/elements/images/Image.jsx';
-import { LinkArrow } from '/snippets/components/elements/links/Links.jsx';
+import { Image } from '/snippets/components/elements/images/Image.jsx'
+import { LinkArrow } from '/snippets/components/elements/links/Links.jsx'
+
-{/* The journey of Livepeer from video to AI - key achievements */}
{/* */}
diff --git a/v2/home/about-livepeer/vision.mdx b/v2/home/about-livepeer/vision.mdx
index 472427710..1ac7ed391 100644
--- a/v2/home/about-livepeer/vision.mdx
+++ b/v2/home/about-livepeer/vision.mdx
@@ -27,16 +27,16 @@ keywords:
audience: everyone
lastVerified: 2026-03-17
---
+{/* The story, founder vision & Livepeer Mission */}
import { YouTubeVideo } from '/snippets/components/displays/video/Video.jsx';
-import { Image } from '/snippets/components/elements/images/Image.jsx';
-import { LinkArrow, GotoLink, GotoCard } from '/snippets/components/elements/links/Links.jsx';
-import { Quote, FrameQuote } from '/snippets/components/displays/quotes/Quote.jsx';
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx';
-import { QuadGrid } from '/snippets/components/wrappers/grids/QuadGrid.jsx';
-import { DisplayCard } from '/snippets/components/wrappers/cards/CustomCards.jsx';
+import { Image } from '/snippets/components/elements/images/Image.jsx'
+import { LinkArrow, GotoLink, GotoCard } from '/snippets/components/elements/links/Links.jsx'
+import { Quote, FrameQuote } from '/snippets/components/displays/quotes/Quote.jsx'
+import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
+import { QuadGrid } from '/snippets/components/wrappers/grids/QuadGrid.jsx'
+import { DisplayCard } from '/snippets/components/wrappers/cards/CustomCards.jsx'
-{/* The story, founder vision & Livepeer Mission */}
{/* Video of Doug talking about Livepeer */}
diff --git a/v2/home/mission-control.mdx b/v2/home/mission-control.mdx
index 1ba6183df..10217bd11 100644
--- a/v2/home/mission-control.mdx
+++ b/v2/home/mission-control.mdx
@@ -20,12 +20,13 @@ keywords:
'og:image': 'https://raw.githubusercontent.com/livepeer/docs/docs-v2-assets/snippets/assets/domain/00_HOME/Eric%20Shreck%20Gif.gif'
---
-import { PortalHeroContent, HeroImageBackgroundComponent, LogoHeroContainer, HeroContentContainer, HeroSectionContainer, PortalCardsHeader, PortalContentContainer } from '/snippets/components/scaffolding/portals/Portals.jsx';
+import { PortalHeroContent, HeroImageBackgroundComponent, LogoHeroContainer, HeroContentContainer, HeroSectionContainer, PortalCardsHeader, PortalContentContainer } from '/snippets/components/scaffolding/portals/Portals.jsx'
import { Starfield } from "/snippets/components/scaffolding/heroes/HeroGif.jsx";
-import { H1, H2, P } from '/snippets/components/scaffolding/frame-mode/FrameMode.jsx';
-import { BlinkingIcon } from '/snippets/components/elements/links/Links.jsx';
-import { LivepeerIcon } from '/snippets/components/elements/icons/Icons.jsx';
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx';
+import { H1, H2, P } from '/snippets/components/scaffolding/frame-mode/FrameMode.jsx'
+import { BlinkingIcon } from '/snippets/components/elements/links/Links.jsx'
+import { LivepeerIcon } from '/snippets/components/elements/icons/Icons.jsx'
+import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
+
diff --git a/v2/index.mdx b/v2/index.mdx
index eaa686aca..7a37e55e4 100644
--- a/v2/index.mdx
+++ b/v2/index.mdx
@@ -694,7 +694,7 @@ Run command: node operations/scripts/generators/content/catalogs/generate-pages-
## Resources
- [Help Center](resources/help-center.mdx)
- [⚠️ Resource Hub](resources/portal.mdx)
-- [⚠️ Resource Portal](resources/resources-portal.mdx)
+- [⚠️ Resource Portal](resources/portal.mdx)
### Changelog
- [Changelog](resources/changelog/changelog.mdx)
diff --git a/v2/orchestrators/resources/glossary.mdx b/v2/orchestrators/resources/glossary.mdx
index 179e882df..72feda5e2 100644
--- a/v2/orchestrators/resources/glossary.mdx
+++ b/v2/orchestrators/resources/glossary.mdx
@@ -555,7 +555,7 @@ Terms covering GPU setup, AI pipeline configuration, staking mechanics, payment
**Definition**: On-chain transaction (`Reward()`) that an active orchestrator submits once per round to mint and distribute new LPT inflation rewards.
- **Context**: Missing a reward call permanently forfeits that round's rewards. Gas cost on Arbitrum is approximately $0.01-$0.12 per call. Orchestrators typically automate reward calling via a cron job or dedicated service.
+ **Context**: Missing a reward call permanently forfeits that round's rewards. Gas cost on Arbitrum is approximately $0.01–$0.12 per call. Orchestrators typically automate reward calling via a cron job or dedicated service.
**Status**: current
diff --git a/v2/orchestrators/x-archived/unclassified/dep-quickstart-add-your-gpu-to-livepeer.mdx b/v2/orchestrators/x-archived/unclassified/dep-quickstart-add-your-gpu-to-livepeer.mdx
deleted file mode 100644
index 61ebc74d3..000000000
--- a/v2/orchestrators/x-archived/unclassified/dep-quickstart-add-your-gpu-to-livepeer.mdx
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: Configure your Orchestrator
-sidebarTitle: Add your GPU to Livepeer
-description: >-
- Configure go-livepeer after installation: Arbitrum connection, pricing, service address, and optional transcoding or
- AI config.
-audience: orchestrator
-purpose: tutorial
-keywords:
- - livepeer
- - orchestrators
- - configuration
- - pricePerUnit
- - serviceAddr
- - transcoding
- - AI
-'og:image': /snippets/assets/domain/SHARED/LivepeerDocsLogo.svg
----
-
-{/* Legacy configuration page retained for reference after the new quickstart and setup guides became canonical. */}
-
-
-
-import { CustomCodeBlock } from '/snippets/components/content/code.jsx'
-
-After [installing go-livepeer](/v2/orchestrators/setup/rs-install), configure the node so gateways can discover you and send work. This page covers core flags and optional config files.
-
-## Core configuration
-
-### Network and wallet
-
-- **-ethUrl** - Arbitrum RPC URL. See [Connect to Arbitrum](/v2/orchestrators/setup/sc-connect).
-- **-ethAcctAddr** - (Optional) ETH account address if you already have a keystore.
-- **-network** - Use `arbitrum-one-mainnet` for production.
-
-### Orchestrator identity and pricing
-
-- **-serviceAddr** - Public hostname or IP and port (e.g. `orchestrator.example.com:8935`). Prefer a hostname you control; changing it later requires an on-chain update.
-- **-pricePerUnit** - Price in wei per pixel (transcoding). Required at startup; can be updated later via CLI or on-chain.
-- **-pixelsPerUnit** - Pixels per pricing unit (default 1). Affects how price is calculated per segment.
-
-### GPU and mode
-
-- **-orchestrator** - Run in orchestrator mode.
-- **-transcoder** - Enable GPU transcoding.
-- **-nvidia** - Comma-separated NVIDIA GPU IDs (e.g. `0,1`). Omit for CPU-only.
-
-Example minimal run:
-
- \\
- -serviceAddr \\
- -pricePerUnit \\
- -nvidia 0,1`}
- language="bash"
- icon="terminal"
-/>
-
-## Optional: transcoding options
-
-You can define transcoding profiles in a JSON file and reference them. Example structure:
-
-
-
-## Optional: AI models (AI orchestrators)
-
-If you run AI inference, create an **aiModels.json** to specify pipelines and models:
-
-
-
-See [AI pipelines](/v2/orchestrators/operations/rc-ai-pipelines) and [AI models](/v2/orchestrators/operations/p-ai-models) for full AI setup.
-
-## Verification
-
-After starting the node:
-
-- Logs show `Listening for RPC on :8935` and no RPC errors.
-- [Explorer](https://explorer.livepeer.org/) shows your node after activation.
-- Under load, GPU usage (e.g. `nvidia-smi`) increases when jobs are processed.
-
-## See also
-
-
-
-
-
-
-
diff --git a/v2/resources/documentation-guide/contributing/contribute-to-the-docs.mdx b/v2/resources/documentation-guide/contributing/contribute-to-the-docs.mdx
index 6920c478b..6cb331b5a 100644
--- a/v2/resources/documentation-guide/contributing/contribute-to-the-docs.mdx
+++ b/v2/resources/documentation-guide/contributing/contribute-to-the-docs.mdx
@@ -587,7 +587,7 @@ v2/
├── delegators/ # Delegators tab
│ └── delegator-portal.mdx
└── resources/ # Resources tab
- ├── resources-portal.mdx
+ ├── portal.mdx
└── documentation-guide/
```
diff --git a/v2/resources/glossary-data.json b/v2/resources/glossary-data.json
index 2215ccf6a..2070535f5 100644
--- a/v2/resources/glossary-data.json
+++ b/v2/resources/glossary-data.json
@@ -1015,7 +1015,7 @@
},
{
"term": "CRF (Constant Rate Factor)",
- "definition": "Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0-51 with lower values producing higher quality.",
+ "definition": "Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0–51 with lower values producing higher quality.",
"category": "video:encoding",
"tabs": [
"solutions"
@@ -4262,7 +4262,7 @@
},
{
"term": "Segment",
- "definition": "A time-sliced chunk of multiplexed audio and video data that is independently transcoded for parallel processing in Livepeer's pipeline; typically 2-10 seconds for HLS delivery.",
+ "definition": "A time-sliced chunk of multiplexed audio and video data that is independently transcoded for parallel processing in Livepeer's pipeline; typically 2–10 seconds for HLS delivery.",
"category": "livepeer:protocol",
"tabs": [
"about",
@@ -4779,7 +4779,7 @@
},
{
"term": "SVD (Stable Video Diffusion)",
- "definition": "Stability AI's latent diffusion model generating 14-25 frame video clips at 576×1024 resolution conditioned on a single input image.",
+ "definition": "Stability AI's latent diffusion model generating 14–25 frame video clips at 576×1024 resolution conditioned on a single input image.",
"category": "ai:model",
"tabs": [
"developers"
diff --git a/v2/resources/glossary.mdx b/v2/resources/glossary.mdx
index 377567ca6..16205cc67 100644
--- a/v2/resources/glossary.mdx
+++ b/v2/resources/glossary.mdx
@@ -143,7 +143,7 @@ Complete reference of terms used across all Livepeer documentation — covering
{ Term: "Controller", Category: "livepeer:contract", Tabs: "about, resources", Definition: "The registry smart contract that manages all protocol contract addresses and coordinates protocol upgrades on Arbitrum." },
{ Term: "ControlNet", Category: "ai:model", Tabs: "orchestrators, resources", Definition: "A neural network architecture that adds spatial conditioning controls — such as edge maps, depth, or pose — to pretrained diffusion models." },
{ Term: "CORS (Cross-Origin Resource Sharing)", Category: "technical:dev", Tabs: "solutions", Definition: "HTTP mechanism that lets servers specify which origins outside their own domain are allowed to make browser requests to their resources." },
- { Term: "CRF (Constant Rate Factor)", Category: "video:encoding", Tabs: "solutions", Definition: "Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0-51 with lower values producing higher quality." },
+ { Term: "CRF (Constant Rate Factor)", Category: "video:encoding", Tabs: "solutions", Definition: "Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0–51 with lower values producing higher quality." },
{ Term: "Cryptoeconomic Primitives", Category: "web3:concept", Tabs: "about", Definition: "Fundamental building blocks that combine cryptography and economic incentives to enable secure, decentralized protocols." },
{ Term: "CUDA (Compute Unified Device Architecture)", Category: "ai:framework", Tabs: "orchestrators", Definition: "NVIDIA's parallel computing platform and programming API enabling GPUs to be used for general-purpose processing and deep learning." },
{ Term: "CPU (Central Processing Unit)", Category: "technical:hardware", Tabs: "gateways, orchestrators, developers, about", Definition: "The primary general-purpose processor in a computer; in Livepeer, CPU handles node software overhead while GPU handles intensive transcoding and AI inference workloads." },
@@ -398,7 +398,7 @@ Complete reference of terms used across all Livepeer documentation — covering
{ Term: "Scaling", Category: "operational:process", Tabs: "gateways", Definition: "Increasing gateway capacity to handle more concurrent requests, either horizontally (deploying additional gateway nodes) or vertically (adding resources to an existing node)." },
{ Term: "SDXL (Stable Diffusion XL)", Category: "ai:model", Tabs: "developers, resources", Definition: "Stable Diffusion XL — advanced text-to-image model with a 3× larger UNet and dual text encoders, generating images at 1024×1024 resolution." },
{ Term: "SDK (Software Development Kit)", Category: "technical:dev", Tabs: "solutions", Definition: "Collection of tools, libraries, and documentation enabling developers to build applications that integrate with a platform's APIs." },
- { Term: "Segment", Category: "livepeer:protocol", Tabs: "about, solutions, gateways, orchestrators, resources", Definition: "A time-sliced chunk of multiplexed audio and video data that is independently transcoded for parallel processing in Livepeer's pipeline; typically 2-10 seconds for HLS delivery." },
+ { Term: "Segment", Category: "livepeer:protocol", Tabs: "about, solutions, gateways, orchestrators, resources", Definition: "A time-sliced chunk of multiplexed audio and video data that is independently transcoded for parallel processing in Livepeer's pipeline; typically 2–10 seconds for HLS delivery." },
{ Term: "Segmentation", Category: "video:processing", Tabs: "solutions, developers, orchestrators", Definition: "(1) Video: the process of dividing a continuous video stream into short discrete chunks for HTTP-based delivery. (2) AI: task partitioning a digital image into regions by assigning a semantic label to every pixel." },
{ Term: "Self-Hosted", Category: "technical:deployment", Tabs: "developers, gateways", Definition: "A deployment model in which the operator runs their own infrastructure rather than relying on a managed cloud service; Livepeer gateways and AI nodes can be self-hosted on any compatible hardware." },
{ Term: "Service Margin", Category: "economic:pricing", Tabs: "gateways", Definition: "A markup that gateway operators add on top of orchestrator costs when reselling gateway access to end users." },
@@ -438,7 +438,7 @@ Complete reference of terms used across all Livepeer documentation — covering
{ Term: "Subgraph", Category: "web3:concept", Tabs: "orchestrators", Definition: "Custom open API defining how Livepeer on-chain data is indexed and queried via GraphQL, built on The Graph protocol." },
{ Term: "Supply", Category: "web3:tokenomics", Tabs: "lpt", Definition: "The total number of LPT tokens in existence at any given time, starting from a genesis supply of 10 million and growing continuously through inflationary issuance." },
{ Term: "Surge strategy", Category: "economic:treasury", Tabs: "community", Definition: "Concentrated treasury spending approach targeting high-impact growth initiatives during strategic market windows." },
- { Term: "SVD (Stable Video Diffusion)", Category: "ai:model", Tabs: "developers", Definition: "Stability AI's latent diffusion model generating 14-25 frame video clips at 576×1024 resolution conditioned on a single input image." },
+ { Term: "SVD (Stable Video Diffusion)", Category: "ai:model", Tabs: "developers", Definition: "Stability AI's latent diffusion model generating 14–25 frame video clips at 576×1024 resolution conditioned on a single input image." },
{ Term: "Synthetic Data", Category: "ai:application", Tabs: "home", Definition: "Artificially generated data produced by algorithms rather than real-world events, used for training AI models when real data is scarce or sensitive." },
{ Term: "TAM (Total Addressable Market)", Category: "economic:business", Tabs: "resources", Definition: "The total potential revenue opportunity available to a product or service if it captured 100% of its target market." },
{ Term: "Target Bonding Rate", Category: "web3:tokenomics", Tabs: "lpt", Definition: "The 50% participation threshold for the ratio of bonded LPT to total supply; the inflation mechanism adjusts the per-round issuance rate to push toward this target." },
@@ -511,7 +511,7 @@ Complete reference of terms used across all Livepeer documentation — covering
-{/* ==========================SECTION: FULL DEFINITIONS - A-Z========================= */}
+{/* ==========================SECTION: FULL DEFINITIONS — A–Z========================= */}
## A
@@ -1673,7 +1673,7 @@ Complete reference of terms used across all Livepeer documentation — covering
- **Definition**: Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0-51 with lower values producing higher quality.
+ **Definition**: Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0–51 with lower values producing higher quality.
**Tags**: `video:encoding`
@@ -5125,7 +5125,7 @@ Complete reference of terms used across all Livepeer documentation — covering
**Tabs**: about, developers, orchestrators, community, lpt
- **Context**: Reward calls are an orchestrator's operational responsibility each round; missing reward calls means forfeiting inflationary LPT for that round, which also harms delegators who rely on that income. Gas cost on Arbitrum is approximately $0.01-$0.12 per call.
+ **Context**: Reward calls are an orchestrator's operational responsibility each round; missing reward calls means forfeiting inflationary LPT for that round, which also harms delegators who rely on that income. Gas cost on Arbitrum is approximately $0.01–$0.12 per call.
**Status**: current
@@ -5365,7 +5365,7 @@ Complete reference of terms used across all Livepeer documentation — covering
- **Definition**: A time-sliced chunk of multiplexed audio and video data that is independently transcoded for parallel processing in Livepeer's pipeline; typically 2-10 seconds for HLS delivery.
+ **Definition**: A time-sliced chunk of multiplexed audio and video data that is independently transcoded for parallel processing in Livepeer's pipeline; typically 2–10 seconds for HLS delivery.
**Tags**: `livepeer:protocol`, `video:processing`
@@ -5933,7 +5933,7 @@ Complete reference of terms used across all Livepeer documentation — covering
- **Definition**: Stability AI's latent diffusion model generating 14-25 frame video clips at 576×1024 resolution conditioned on a single input image.
+ **Definition**: Stability AI's latent diffusion model generating 14–25 frame video clips at 576×1024 resolution conditioned on a single input image.
**Tags**: `ai:model`
diff --git a/v2/resources/index.mdx b/v2/resources/index.mdx
index a92c04023..48fd51343 100644
--- a/v2/resources/index.mdx
+++ b/v2/resources/index.mdx
@@ -27,7 +27,7 @@ Run command: node operations/scripts/generators/content/catalogs/generate-pages-
- [Help Center](help-center.mdx)
- [⚠️ Resource Hub](portal.mdx)
-- [⚠️ Resource Portal](resources-portal.mdx)
+- [⚠️ Resource Portal](portal.mdx)
## Changelog
- [Changelog](changelog/changelog.mdx)
diff --git a/v2/resources/portal.mdx b/v2/resources/portal.mdx
index 0847375ea..b288b0473 100644
--- a/v2/resources/portal.mdx
+++ b/v2/resources/portal.mdx
@@ -1,17 +1,30 @@
---
-mode: frame
-title: 'Resource Hub'
+title: Resource Portal
sidebarTitle: Resource Portal
-description: 'Welcome to the Resource Hub: Changelogs, Guides, Documentation, and Help'
+description: Livepeer Resource Compendium
keywords:
- - livepeer
- - resources
- - resource hub
- - resource portal
- - changelogs
- - guides
+ - home
+ - index
+ - landing
- help
- - documentation
+ - support
+ - contact
+ - faq
+ - resource
+ - resources
+ - reference
+ - references
+ - compendium
+ - livepeer resource
+ - livepeer resources
+ - livepeer reference
+ - livepeer references
+ - livepeer compendium
+ - livepeer resource portal
+ - livepeer resources portal
+ - livepeer reference portal
+ - livepeer references portal
+ - livepeer compendium portal
'og:image': /snippets/assets/media/og-images/fallback.png
'og:image:alt': Livepeer Docs social preview image
'og:image:type': image/png
@@ -19,82 +32,10 @@ keywords:
'og:image:height': 630
pageType: landing
audience: everyone
-lastVerified: 2026-03-30
+lastVerified: 2026-03-17
purpose: landing
-tag: Start Here
---
-import { PortalHeroContent, HeroImageBackgroundComponent, LogoHeroContainer, HeroContentContainer, HeroSectionContainer, PortalCardsHeader, PortalContentContainer } from '/snippets/components/scaffolding/portals/Portals.jsx'
-import { H1, H2, H5, P } from '/snippets/components/scaffolding/frame-mode/FrameMode.jsx'
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
-import { BlinkingIcon } from '/snippets/components/elements/links/Links.jsx'
-import { Starfield } from "/snippets/components/scaffolding/heroes/HeroGif.jsx";
-import { SocialLinks } from '/snippets/components/elements/social/SocialLinks.jsx'
-import { BorderedBox } from '/snippets/components/wrappers/containers/Containers.jsx'
-import { CustomCardTitle } from '/snippets/components/elements/text/CustomCardTitle.jsx'
-
-
-
-
-
-
-
-
-
-
-
- Changelogs, guides, glossaries, and help resources for the Livepeer ecosystem.
- Track releases across core infrastructure, AI compute, SDKs, and documentation.
-
-
-
-
- >
- }
- />
-
-
-
-
-
-
-
-
-
-
- }
- href="/v2/resources/changelog/protocol/go-livepeer"
- arrow
- >
- Release histories and commit logs for Livepeer core infrastructure, AI compute, SDKs, and documentation repositories.
-
- }
- href="/v2/gateways/guides/node-pipelines/guide"
- arrow
- >
- Technical guides covering node pipelines, gateway operation, and infrastructure setup.
-
- }
- href="/v2/resources/changelog"
- arrow
- >
- Track updates to the Livepeer documentation itself, including structural changes, new content, and governance improvements.
-
- }
- href="/v2/resources/help-center"
- arrow
- >
- Get help with Livepeer. Find answers, report issues, and connect with the community.
-
-
-
-
+## Resources Portal
+All resources and references in one place!
diff --git a/v2/resources/resource-hub-terms-data.json b/v2/resources/resource-hub-terms-data.json
index bfcc5faf2..351ebba07 100644
--- a/v2/resources/resource-hub-terms-data.json
+++ b/v2/resources/resource-hub-terms-data.json
@@ -130,7 +130,7 @@
},
{
"term": "Cold Start",
- "definition": "The latency incurred when an AI model must be loaded from storage into GPU memory before it can serve its first inference request, typically 5-90 seconds.",
+ "definition": "The latency incurred when an AI model must be loaded from storage into GPU memory before it can serve its first inference request, typically 5–90 seconds.",
"category": "ai",
"tags": [
"ai"
diff --git a/v2/resources/resource-hub-terms.mdx b/v2/resources/resource-hub-terms.mdx
index 5c51dacf4..6443dee8c 100644
--- a/v2/resources/resource-hub-terms.mdx
+++ b/v2/resources/resource-hub-terms.mdx
@@ -86,7 +86,7 @@ Key terms used across the Livepeer Resources section — spanning protocol mecha
{ Term: "CPU (Central Processing Unit)", Category: "technical", Niche: "hardware", Definition: "The primary general-purpose processor in a computer; in Livepeer, CPU handles node software overhead while GPU handles intensive transcoding and AI inference workloads." },
{ Term: "CLI", Category: "technical", Niche: "dev", Definition: "A text-based interface for interacting with software by typing commands, used to configure and operate Livepeer gateway and orchestrator nodes." },
{ Term: "Codec", Category: "video", Niche: "encoding", Definition: "Software or hardware that compresses and decompresses digital video using a defined algorithm, typically employing lossy compression." },
- { Term: "Cold Start", Category: "ai", Niche: "concept", Definition: "The latency incurred when an AI model must be loaded from storage into GPU memory before it can serve its first inference request, typically 5-90 seconds." },
+ { Term: "Cold Start", Category: "ai", Niche: "concept", Definition: "The latency incurred when an AI model must be loaded from storage into GPU memory before it can serve its first inference request, typically 5–90 seconds." },
{ Term: "ComfyStream", Category: "livepeer", Niche: "product", Definition: "A Livepeer project implementing a ComfyUI custom node that runs real-time media workflows for AI-powered video and audio processing on live streams." },
{ Term: "Configuration Parameters", Category: "livepeer", Niche: "config", Definition: "CLI flags and environment variables that control node behavior including payment settings, pricing, preferred orchestrators, and network mode." },
{ Term: "ControlNet", Category: "ai", Niche: "model", Definition: "A neural network architecture that adds spatial conditioning controls — such as edge maps, depth, or pose — to pretrained diffusion models." },
@@ -605,7 +605,7 @@ Key terms used across the Livepeer Resources section — spanning protocol mecha
- **Definition**: The latency incurred when an AI model must be loaded from storage into GPU memory before it can serve its first inference request, typically 5-90 seconds.
+ **Definition**: The latency incurred when an AI model must be loaded from storage into GPU memory before it can serve its first inference request, typically 5–90 seconds.
**Also known as**: Cold model
diff --git a/v2/resources/resources-portal.mdx b/v2/resources/resources-portal.mdx
deleted file mode 100644
index b288b0473..000000000
--- a/v2/resources/resources-portal.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: Resource Portal
-sidebarTitle: Resource Portal
-description: Livepeer Resource Compendium
-keywords:
- - home
- - index
- - landing
- - help
- - support
- - contact
- - faq
- - resource
- - resources
- - reference
- - references
- - compendium
- - livepeer resource
- - livepeer resources
- - livepeer reference
- - livepeer references
- - livepeer compendium
- - livepeer resource portal
- - livepeer resources portal
- - livepeer reference portal
- - livepeer references portal
- - livepeer compendium portal
-'og:image': /snippets/assets/media/og-images/fallback.png
-'og:image:alt': Livepeer Docs social preview image
-'og:image:type': image/png
-'og:image:width': 1200
-'og:image:height': 630
-pageType: landing
-audience: everyone
-lastVerified: 2026-03-17
-purpose: landing
----
-
-
-## Resources Portal
-All resources and references in one place!
diff --git a/v2/solutions/daydream/changelog.mdx b/v2/solutions/daydream/changelog.mdx
index 8f2f15672..e935a46b4 100644
--- a/v2/solutions/daydream/changelog.mdx
+++ b/v2/solutions/daydream/changelog.mdx
@@ -19,7 +19,7 @@ keywords:
pageType: changelog
purpose: changelog
audience: builder
-lastVerified: 2026-04-06
+lastVerified: 2026-03-25
---
import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
@@ -39,107 +39,11 @@ Track releases for
-
-April 2026
}>
- ## Scope: v0.2.1
-
- _AI Summary_
-
- #### New Features
-
- - **LTX 2.3 Default Workflow** - The starter workflow now uses LTX 2.3 text-to-video, so new users can generate video without a camera input.
- - **Scheduler Node** - A new browser-side scheduler node that fires named trigger outputs at configurable time points, with visual edge flashing on fire.
- - **MCP Recording & Cloud Tools** - The MCP server now supports recording and cloud connection management.
-
- #### Updates
-
- - **Canvas UX** - A floating add button and an empty-state placeholder make it easier to add nodes when starting from scratch in the Workflow Builder.
- - **Livepeer Network** - Improvements to payments, text mode, local recording, and LoRA support when running inference over the Livepeer network.
-
- #### Bug Fixes
-
- - **Graph Mode Stability** - Fixed pipelines getting stuck when using the Workflow Builder in graph mode.
-
-
-
- _Release Notes_
-
-
- This release upgrades the default starter workflow to LTX 2.3, adds new Workflow Builder features including a scheduler node and improved canvas UX.
-
- ## Highlights
-
- * **LTX 2.3 Default Workflow** — The starter workflow now uses LTX 2.3 text-to-video (replacing Paint Blobs), so new users can generate video without a camera input
- * **Scheduler Node** — A new browser-side scheduler node that fires named trigger outputs at configurable time points, with orange trigger connectors and edge flashing on fire
- * **Canvas UX Improvements** — A floating [+] button and an empty-state placeholder make it easier to add nodes when starting from scratch in the Workflow Builder
-
- ## What's Changed
-
- * Replace Paint Blobs with LTX 2.3 and enrich onboarding_completed event
- * graph: Add frontend-only scheduler node with trigger type system
- * graph: Add [+] button and empty state placeholder to canvas
- * fix: pipelines getting stuck in graph mode
- * cloud: Pre-install ltx-2 plugin in cloud Docker image
- * Livepeer network improvements: payments, text mode, local recording, and LoRA support
- * feat: add MCP server recording support and cloud connection tools
-
- **Full Changelog**: https://github.com/daydreamlive/scope/compare/v0.2.0...v0.2.1
-
-
-
-
-
-March 2026
}>
- ## Scope: v0.2.0
-
- _AI Summary_
-
- #### New Features
-
- - **Workflow Builder** - A new graph-based visual editor for building and customizing pipelines, now the default mode. Connect and configure nodes for models, processors, audio, and tempo with a redesigned toolbar and sample video previews.
- - **Onboarding Experience** - A guided flow for new users covering account setup, model downloading, and pipeline configuration.
- - **Livepeer Cloud Mode** - Run inference over the Livepeer network directly from Scope.
-
- #### Updates
-
- - **Prompt Blending** - Blend multiple prompts together within the Workflow Builder for more creative control.
- - **Play/Pause UX** - Improved play and pause controls for pipeline execution.
-
- #### Bug Fixes
-
- - **Remote Recording** - Fixed recording not working with remote inference.
-
-
-
- _Release Notes_
-
-
- This release introduces the Workflow Builder, a new graph-oriented UI for building and customizing video pipelines, along with a guided onboarding experience for new users.
-
- ## Highlights
-
- * **Workflow Builder** — A new graph-based visual editor for building and customizing pipelines, now the default mode. Connect and configure nodes for models, processors, audio, and tempo with a redesigned toolbar and sample video previews
- * **Onboarding Experience** — A guided flow for new users covering account setup, model downloading, and pipeline configuration
-
- ## What's Changed
-
- * Workflow Builder: graph-based frontend, toolbar redesign, audio/tempo nodes, prompt blending, sample videos, play/pause UX, and bug fixes
- * Add onboarding flow for new users
- * Livepeer Cloud Mode
- * feat: analytics opt in
- * fix: recording not working with remote inference
- * feat: descriptive model load & minor changes
-
- **Full Changelog**: https://github.com/daydreamlive/scope/compare/v0.1.9...v0.2.0
-
-
-
-
-
-March 2026}>
+ ────────────────────────────────────────────── */}
+
+
+
+March 2026}>
## Scope: v0.1.9
_AI Summary_
diff --git a/v2/solutions/embody/overview.mdx b/v2/solutions/embody/overview.mdx
index 10f45f7ba..75d8a4531 100644
--- a/v2/solutions/embody/overview.mdx
+++ b/v2/solutions/embody/overview.mdx
@@ -23,17 +23,17 @@ lastVerified: 2026-03-25
purpose: overview
---
-import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx';
+import { CustomDivider } from '/snippets/components/elements/spacing/Divider.jsx'
import { CustomCardTitle } from "/snippets/components/elements/text/CustomCardTitle.jsx";
import { SocialLinks } from "/snippets/components/elements/social/SocialLinks.jsx";
import { BorderedBox } from "/snippets/components/wrappers/containers/Containers.jsx";
import { CenteredContainer } from "/snippets/components/wrappers/containers/Containers.jsx";
import { YouTubeVideo, Video } from "/snippets/components/displays/video/Video.jsx";
-import { BadgeWrapper, IconBadgeWrapper } from '/snippets/components/wrappers/badges/Badges.jsx';
-import { StyledSteps, StyledStep } from '/snippets/components/wrappers/steps/Steps.jsx';
-import { embodyBadges } from "./data/badges.jsx";
-import { embodyInfra } from "./data/infra.jsx";
-import { embodySocials } from "./data/socials.jsx";
+import { BadgeWrapper, IconBadgeWrapper } from '/snippets/components/wrappers/badges/Badges.jsx'
+import { StyledSteps, StyledStep } from '/snippets/components/wrappers/steps/Steps.jsx'
+import { embodyBadges } from "./data/badges.jsx"
+import { embodyInfra } from "./data/infra.jsx"
+import { embodySocials } from "./data/socials.jsx"
diff --git a/v2/solutions/resources/glossary-data.json b/v2/solutions/resources/glossary-data.json
index c54b381ca..07493544e 100644
--- a/v2/solutions/resources/glossary-data.json
+++ b/v2/solutions/resources/glossary-data.json
@@ -122,7 +122,7 @@
},
{
"term": "CRF (Constant Rate Factor)",
- "definition": "Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0-51 with lower values producing higher quality.",
+ "definition": "Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0–51 with lower values producing higher quality.",
"category": "video",
"tags": [
"video"
@@ -426,7 +426,7 @@
},
{
"term": "Segment",
- "definition": "Time-sliced chunk of a video stream (typically 2-10 seconds) independently addressable over HTTP and used as the unit of transcoding and adaptive delivery.",
+ "definition": "Time-sliced chunk of a video stream (typically 2–10 seconds) independently addressable over HTTP and used as the unit of transcoding and adaptive delivery.",
"category": "video",
"tags": [
"video"
diff --git a/v2/solutions/resources/glossary.mdx b/v2/solutions/resources/glossary.mdx
index ad6617cce..68778f78d 100644
--- a/v2/solutions/resources/glossary.mdx
+++ b/v2/solutions/resources/glossary.mdx
@@ -82,7 +82,7 @@ Terms used across Livepeer Solutions — covering video infrastructure, Studio p
{ Term: "CBR (Constant Bitrate)", Category: "video", Niche: "encoding", Definition: "Video encoding mode where the output data rate remains constant regardless of content complexity, trading compression efficiency for predictable file sizes." },
{ Term: "Clip", Category: "video", Niche: "studio", Definition: "Short excerpt from a livestream or VOD asset defined by start and end timestamps, used for highlights or shareable segments." },
{ Term: "CORS (Cross-Origin Resource Sharing)", Category: "technical", Niche: "dev", Definition: "HTTP mechanism that lets servers specify which origins outside their own domain are allowed to make browser requests to their resources." },
- { Term: "CRF (Constant Rate Factor)", Category: "video", Niche: "encoding", Definition: "Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0-51 with lower values producing higher quality." },
+ { Term: "CRF (Constant Rate Factor)", Category: "video", Niche: "encoding", Definition: "Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0–51 with lower values producing higher quality." },
{ Term: "Dashboard", Category: "video", Niche: "studio", Definition: "Web-based management interface in Livepeer Studio for creating and managing streams, assets, API keys, and viewing analytics." },
{ Term: "Daydream", Category: "livepeer", Niche: "product", Definition: "Livepeer's hosted real-time AI video platform that turns live camera input into AI-transformed visuals with sub-second latency." },
{ Term: "Embody", Category: "livepeer", Niche: "product", Definition: "Special Purpose Entity bringing embodied avatar workloads (Live2D, Three.js, Unreal Engine) into Livepeer as intelligent public pipelines." },
@@ -120,7 +120,7 @@ Terms used across Livepeer Solutions — covering video infrastructure, Studio p
{ Term: "RTMP (Real-Time Messaging Protocol)", Category: "video", Niche: "protocol", Definition: "TCP-based protocol for streaming audio, video, and data over a network, operating on port 1935; the dominant ingest protocol for live broadcasting software." },
{ Term: "RTMPS", Category: "video", Niche: "protocol", Definition: "RTMP transported over a TLS/SSL connection, adding encryption to protect live video streams and metadata during ingest." },
{ Term: "SDK (Software Development Kit)", Category: "technical", Niche: "dev", Definition: "Collection of tools, libraries, and documentation enabling developers to build applications that integrate with a platform's APIs." },
- { Term: "Segment", Category: "video", Niche: "processing", Definition: "Time-sliced chunk of a video stream (typically 2-10 seconds) independently addressable over HTTP and used as the unit of transcoding and adaptive delivery." },
+ { Term: "Segment", Category: "video", Niche: "processing", Definition: "Time-sliced chunk of a video stream (typically 2–10 seconds) independently addressable over HTTP and used as the unit of transcoding and adaptive delivery." },
{ Term: "Segmentation", Category: "video", Niche: "processing", Definition: "Process of dividing a continuous video stream into short discrete chunks for HTTP-based delivery and adaptive bitrate switching between quality levels." },
{ Term: "Session", Category: "livepeer", Niche: "protocol", Definition: "Active connection between a gateway and orchestrator, or in Studio terms, a single continuous broadcast period on a Stream object with its own metrics, recording, and viewership data." },
{ Term: "Signing Key", Category: "video", Niche: "studio", Definition: "Public/private cryptographic keypair used to sign and verify JWTs that gate access to access-controlled streams and assets in Livepeer Studio." },
@@ -197,7 +197,7 @@ Terms used across Livepeer Solutions — covering video infrastructure, Studio p
- **Definition**: Time-sliced chunk of a video stream (typically 2-10 seconds) independently addressable over HTTP and used as the unit of transcoding and adaptive delivery.
+ **Definition**: Time-sliced chunk of a video stream (typically 2–10 seconds) independently addressable over HTTP and used as the unit of transcoding and adaptive delivery.
**External**: [HTTP Live Streaming — Wikipedia](https://en.wikipedia.org/wiki/HTTP_Live_Streaming)
@@ -485,7 +485,7 @@ Terms used across Livepeer Solutions — covering video infrastructure, Studio p
- **Definition**: Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0-51 with lower values producing higher quality.
+ **Definition**: Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0–51 with lower values producing higher quality.
**External**: [CRF guide — slhck.info](https://slhck.info/video/2017/02/24/crf-guide.html)
diff --git a/workspace/plan/active/_MY_PROCESS/00_AUDIENCE-JOURNEY/ALL-CURRENT-INFORMATION/RESEARCH/ABOUT/design.md b/workspace/plan/active/_MY_PROCESS/00_AUDIENCE-JOURNEY/ALL-CURRENT-INFORMATION/RESEARCH/ABOUT/design.md
index 24309b403..0867d834b 100644
--- a/workspace/plan/active/_MY_PROCESS/00_AUDIENCE-JOURNEY/ALL-CURRENT-INFORMATION/RESEARCH/ABOUT/design.md
+++ b/workspace/plan/active/_MY_PROCESS/00_AUDIENCE-JOURNEY/ALL-CURRENT-INFORMATION/RESEARCH/ABOUT/design.md
@@ -1,363 +1,44 @@
-# About Tab — Content Design
+## AUDIENCE
----
+## PERSONA
-## THE TERRITORY (What About teaches)
-
-About teaches the **Livepeer landscape** — not just the technology, but the complete living ecosystem: infrastructure, economics, governance, community, and organisational structure all working together.
-
-Livepeer is:
-- A **technical system** (protocol + network + platforms)
-- An **economic system** (LPT, inflation, fees, staking, delegation)
-- A **governance system** (LIPs, voting, treasury, SPEs, Foundation)
-- A **community & organisational structure** (contributors, researchers, operators, delegators, builders — all coordinating)
-- A **living, dynamic ecosystem** (not static documentation of a product — it evolves through governance, participation, and market forces)
-
-### The mental model frames 3 zones of the INFRASTRUCTURE:
-
-```
-PROTOCOL (Layers 4-5): Security, incentives, governance, economics
-NETWORK (Layers 1-3): Compute, routing, execution, marketplace
-PLATFORM (Layers 7-10): Products, APIs, SDKs, applications
-```
-
-But Livepeer as an ecosystem ALSO includes:
-
-```
-GOVERNANCE: LIPs, proposals, voting, vote detachment, treasury stewardship
-ECONOMICS: Inflation model, fee revenue, staking yields, delegator dynamics
-COMMUNITY: Foundation, SPEs, contributors, operators, researchers, events
-ECOSYSTEM: Products built on Livepeer, integrations, partnerships, growth
-```
-
-**About's job is to map ALL of this** — the tech AND the living system — into a coherent mental model that any arriving reader can use to orient themselves and decide how to participate.
-
----
-
-## AUDIENCE (Who lands here)
-
-Everyone at `discover` stage — but their entry points vary because Livepeer is an ecosystem with many doors:
-
-| Entry point | Who arrives | What they're evaluating |
-|---|---|---|
-| **Tech evaluation** | Founders, developers, infrastructure engineers | "Is this the right compute infrastructure for my product?" |
-| **Investment / staking** | Token holders, analysts, fund researchers | "Is this a credible protocol to commit capital to?" |
-| **Node operation** | GPU operators, data centre operators | "Can I earn running infrastructure here?" |
-| **Governance / community** | Researchers, governance participants, contributors | "How does this ecosystem work? How do I participate?" |
-| **Academic / DePIN research** | Researchers, analysts, journalists | "How does this protocol compare? What's the architecture?" |
-| **OSS contribution** | Protocol developers, AI/ML engineers | "How is this built? Where do I start contributing?" |
-
----
-
-## PERSONAS (Who the tab serves)
-
-### Primary: The Landscape Navigator
-
-Technically curious reader who wants to understand the COMPLETE Livepeer picture — not just one slice. They may be evaluating as a founder, researching as an analyst, or orienting as a newcomer. What unites them: they need a mental model of the whole system before they can decide where they fit.
-
-**What they need**: A coherent picture of how the tech, economics, governance, community, and org structure all connect. Not just "what is the protocol" but "what is this thing, who's involved, how does it work, how is it governed, and is it real."
-
-### Secondary personas the tab genuinely serves:
-
-| Persona | What they need FROM About | Entry point into ecosystem |
-|---|---|---|
-| **The Founder** | Complete landscape to make build-vs-buy: tech + economics + governance + sustainability | Tech evaluation → economics → governance → org |
-| **The OSS Contributor** | Protocol architecture + governance mechanics as prerequisites for contributing | Tech deep dive → governance → contribution paths |
-| **The R&D Researcher** | Deep protocol analysis, economic model, governance mechanics — may never leave About | Academic depth across all zones |
-| **The Diligence Analyst** | Structured due diligence: tokenomics, governance, org structure, roadmap, risk assessment | Economics → governance → org → risk |
-| **The Governance Newcomer** | How decisions get made, how to participate, what the treasury funds, what SPEs are | Governance → community → treasury → participation |
-
----
-
-## PERSONA JOURNEYS THROUGH THE TERRITORY
-
-### Journey 1: The Landscape Navigator (primary — zero to hero)
-
-The reader enters knowing nothing. Each section builds on the last. By the end they understand the complete ecosystem and know where they fit.
-
-```
-CONCEPTS — "What is this whole thing?"
-│
-├─ Q: "What is Livepeer?"
-│ → concepts/livepeer-overview.mdx
-│ LEARNS: Decentralised AI + video compute network on Arbitrum. An ecosystem of
-│ operators, builders, delegators, and governance participants.
-│ EXIT: Can describe what Livepeer is to a colleague in 2 sentences
-│
-├─ Q: "How does it all fit together?"
-│ → concepts/mental-model.mdx
-│ LEARNS: 10-layer stack, 3 infra zones (protocol/network/platform),
-│ PLUS the ecosystem layers (governance, economics, community, org structure).
-│ "Decentralised serverless GPU fabric with a cryptoeconomic control plane"
-│ EXIT: Has the complete mental model — can place any concept
-│
-└─ Q: "What are the core building blocks?"
- → concepts/core-concepts.mdx
- LEARNS: Protocol vs network vs platform. The actors. The two compute types.
- The economic model at a glance. The governance model at a glance.
- EXIT: Understands the system's components — ready to explore any zone
-
-NETWORK — "How does the execution layer work?"
-│
-├─ Q: "What IS the network, distinct from the protocol?"
-│ → network/overview.mdx
-│ LEARNS: Network = execution layer. Protocol secures it. Network runs the compute.
-│ EXIT: Understands the boundary
-│
-├─ Q: "Who does the work and what are their roles?"
-│ → network/actors.mdx
-│ LEARNS: Orchestrators (compute), gateways (routing), delegators (capital),
-│ builders (consume), end users (experience)
-│ EXIT: Can name each actor and their role
-│ DEPTH: → livepeer-actors/{role}.mdx for per-actor detail
-│
-├─ Q: "How does a piece of work actually flow through the system?"
-│ → network/job-lifecycle.mdx
-│ LEARNS: App → gateway → orchestrator selection → execution → result → payment
-│ EXIT: Can trace a job end-to-end
-│
-├─ Q: "How does supply meet demand in this marketplace?"
-│ → network/marketplace.mdx
-│ LEARNS: Pricing, capability matching, orchestrator selection, probabilistic micropayments
-│ EXIT: Understands the market mechanics
-│
-├─ Q: "What does the full technical stack look like?"
-│ → network/technical-architecture.mdx
-│ LEARNS: Complete system diagram — nodes, APIs, protocols, contracts
-│ EXIT: Can place any technical component
-│
-└─ Q: "How do builders access this infrastructure?"
- → network/interfaces.mdx
- LEARNS: REST, gRPC, GraphQL, SDKs, CLI — the developer surface
- EXIT: Knows integration points → ROUTES to Developers or Gateways tab
-
-PROTOCOL — "How is the system secured, incentivised, and governed?"
-│
-├─ Q: "What does the protocol layer DO?"
-│ → protocol/overview.mdx
-│ LEARNS: On-chain coordination, security, economic alignment. Scope + boundaries.
-│ EXIT: Understands protocol vs network vs platform boundaries
-│
-├─ Q: "What are the core mechanisms?"
-│ → protocol/core-mechanisms.mdx
-│ LEARNS: Staking, delegation, reward distribution, inflation model, slashing, rounds
-│ EXIT: Understands each mechanism conceptually
-│
-├─ Q: "What is LPT and why does it exist?"
-│ → protocol/livepeer-token.mdx
-│ LEARNS: 3 functions (staking, delegation/rewards, governance), issuance model
-│ EXIT: Understands why LPT exists and what drives its value
-│
-├─ Q: "How does money flow through the ecosystem?"
-│ → protocol/economics.mdx
-│ LEARNS: ETH fees (usage) + LPT inflation (protocol). Fee flow. Reward distribution.
-│ The 89:1 inflation-to-fees reality. Sustainability trajectory.
-│ EXIT: Can describe both income streams. Understands economic health.
-│
-├─ Q: "Who controls the protocol and how do decisions get made?"
-│ → protocol/governance-model.mdx
-│ LEARNS: Stake-weighted voting, LIPs, vote detachment, Governor contract.
-│ Not a company — a community-governed protocol.
-│ EXIT: Understands governance mechanics and how to participate
-│
-├─ Q: "How is development funded and what is the org structure?"
-│ → protocol/treasury.mdx
-│ LEARNS: On-chain treasury, SPE mechanism, Foundation role, community stewardship.
-│ Not venture-funded — inflation-funded through governance.
-│ EXIT: Understands the org model — can assess longevity and governance risk
-│
-├─ Q: "Where are the actual smart contracts?"
-│ → protocol/blockchain-contracts.mdx
-│ LEARNS: Contract architecture, addresses, on-chain verification
-│ EXIT: Can find and inspect the protocol on Arbiscan
-│
-└─ Q: "Why is it designed this way?"
- → protocol/design-philosophy.mdx
- LEARNS: Design principles, trade-offs, constraints, what was chosen and why
- EXIT: Understands the WHY → ready to route to relevant role tab
-
-RESOURCES — On-demand lookup for all personas at any point
-│
-├─ resources/faq.mdx Most-asked questions
-├─ resources/glossary.mdx Term definitions
-├─ resources/knowledge-hub/
-│ ├─ contributor-orientation.mdx OSS contributor → "how to start"
-│ ├─ evaluating-livepeer.mdx Founder/analyst → structured evaluation guide
-│ ├─ gateways-vs-orchestrators.mdx Role disambiguation
-│ └─ livepeer-whitepaper.mdx Primary source reference
-└─ resources/reference/
- ├─ livepeer-contract-addresses.mdx Contract data (data-driven)
- ├─ network-metrics.mdx Where to find live data
- └─ technical-roadmap.mdx Foundation roadmap
-```
-
-### Journey 2: The Founder (selective — evaluating the ecosystem)
-
-```
-concepts/ (what is it, mental model)
- → network/marketplace.mdx (how does the compute market work?)
- → protocol/economics.mdx (is the economic model sustainable?)
- → protocol/governance-model.mdx (who controls this? what's the risk?)
- → protocol/treasury.mdx (how is development funded? is it self-sustaining?)
- → resources/knowledge-hub/evaluating-livepeer.mdx (structured evaluation framework)
- → ROUTES OUT to Solutions or Developers
-```
-
-### Journey 3: The Governance Newcomer
-
-```
-concepts/core-concepts.mdx (overview of the system)
- → protocol/governance-model.mdx (how decisions are made)
- → protocol/treasury.mdx (what gets funded, how SPEs work)
- → protocol/livepeer-token.mdx (governance weight = stake)
- → resources/knowledge-hub/contributor-orientation.mdx (how to participate)
- → ROUTES OUT to Community tab or Delegators tab
-```
-
-### Journey 4: The R&D Researcher (deep — stays in About)
-
-```
-Reads concepts/ → network/ → protocol/ in full depth
-Heavy use of:
- → protocol/technical-architecture.mdx (contract architecture)
- → protocol/design-philosophy.mdx (why these design choices)
- → network/technical-architecture.mdx (system architecture)
- → resources/reference/ (primary sources, metrics, contracts)
- → resources/knowledge-hub/livepeer-whitepaper.mdx
-```
-
----
+## PERSONA NEEDS / JOURNEY
## IA
-About follows the canonical tab archetype BUT with protocol/ and network/ as the
-main content sections (equivalent to setup/build on operational tabs). guides/ is
-the catch-all for everything else: secondary personas, ecosystem context, evaluation
-frameworks, contributor paths, participation guides, and depth content that doesn't
-fit protocol or network.
-
-**Templates**: All pages use templates from `snippets/templates/`. Classification
-via `snippets/templates/page-classification.md`. Section composition via
-`snippets/templates/section-patterns.md`.
-
-```
-v2/about/
-├── portal.mdx [navigation/portal] Entry with hero + section routing
-├── navigator.mdx [navigation/landing] "I want to understand..." path selection
-├── index.mdx [generated] Auto-generated TOC
-│
-├── concepts/ "WHAT IS LIVEPEER?" — The complete ecosystem picture
-│ ├── livepeer-overview.mdx [concept/explain] What Livepeer is: the ecosystem in 2 sentences
-│ ├── mental-model.mdx [concept/explain] The 10-layer stack: tech + governance + economics + community
-│ └── core-concepts.mdx [concept/explain] Core building blocks: protocol/network/platform + actors + compute types
-│
-├── protocol/ "HOW IT'S SECURED, INCENTIVISED, AND GOVERNED" — Main content section 1
-│ ├── overview.mdx [concept/explain] Protocol scope: what it does and does NOT do
-│ ├── core-mechanisms.mdx [concept/explain] Staking, delegation, rewards, inflation, slashing, rounds
-│ ├── livepeer-token.mdx [concept/explain] LPT: 3 functions, issuance, what drives value
-│ ├── economics.mdx [concept/explain] ETH fees + LPT inflation: the complete economic picture
-│ ├── governance-model.mdx [concept/explain] Voting, LIPs, vote detachment: how decisions happen
-│ ├── treasury.mdx [concept/explain] Treasury, SPEs, Foundation, org structure, funding
-│ ├── blockchain-contracts.mdx [reference/reference] Contract architecture and addresses
-│ ├── technical-architecture.mdx [concept/explain] Protocol contract architecture (depth)
-│ └── design-philosophy.mdx [concept/explain] Why it's designed this way: trade-offs and principles
-│
-├── network/ "HOW THE EXECUTION LAYER WORKS" — Main content section 2
-│ ├── overview.mdx [concept/explain] Network = execution layer, distinct from protocol
-│ ├── actors.mdx [concept/explain] Who does the work: all roles
-│ ├── livepeer-actors/ Per-actor depth
-│ │ ├── orchestrators.mdx [concept/explain]
-│ │ ├── gateways.mdx [concept/explain]
-│ │ ├── delegators.mdx [concept/explain]
-│ │ └── end-users.mdx [concept/explain]
-│ ├── job-lifecycle.mdx [concept/explain] How a job flows from request to result
-│ ├── marketplace.mdx [concept/explain] How supply meets demand: the compute marketplace
-│ ├── technical-architecture.mdx [concept/explain] Full technical stack diagram
-│ └── interfaces.mdx [concept/explain] How builders access the network (APIs, SDKs, CLI)
-│
-├── guides/ "EVERYTHING ELSE" — Secondary journeys, ecosystem, evaluation, depth
-│ ├── evaluating-livepeer.mdx [guide/evaluate] Founder/analyst: structured evaluation framework
-│ ├── contributor-orientation.mdx [guide/orient] OSS contributor: how to start contributing
-│ ├── ecosystem-overview.mdx [guide/explain] The living ecosystem: products, platforms, community, governance dynamics
-│ ├── current-state.mdx [guide/evaluate] Network today: AI vs video, fee growth, operator metrics, active proposals
-│ ├── participation-paths.mdx [guide/orient] How to get involved: build, operate, delegate, govern, contribute (routes to tabs)
-│ ├── gateways-vs-orchestrators.mdx [guide/choose] Role comparison: gateway vs orchestrator decision framework
-│ └── [future depth pages] Economic deep-dive, governance participation, research orientation, etc.
-│
-└── resources/ ON-DEMAND LOOKUP — All personas
- ├── faq.mdx [reference/compendium] Most-asked questions
- ├── glossary.mdx [reference/compendium] Term definitions
- ├── knowledge-hub/
- │ └── livepeer-whitepaper.mdx [resource] Primary source reference
- ├── compendium/
- │ └── livepeer-contract-addresses.mdx [reference/compendium] Contract address data
- └── reference/
- ├── network-metrics.mdx [reference/specification] Where to find live data
- └── technical-roadmap.mdx [reference/reference] Foundation roadmap
-```
-
-### What guides/ provides that concepts/protocol/network don't:
-
-| concepts/ protocol/ network/ | guides/ |
-|---|---|
-| Explain WHAT and HOW (the system) | Explain WHAT TO DO WITH IT (the reader's situation) |
-| Single linear journey through the architecture | Multiple entry points by persona and intent |
-| Factual, entity-led, mechanism-focused | Decision-focused, outcome-focused, reader-situation-focused |
-| "How governance works" (protocol/governance-model) | "Should I participate in governance?" (guides/participation-paths) |
-| "What the marketplace is" (network/marketplace) | "Is this viable for my product?" (guides/evaluating-livepeer) |
-| "What actors exist" (network/actors) | "Gateway vs orchestrator: which am I?" (guides/gateways-vs-orchestrators) |
-
-### Key moves:
-
-| Page | From | To | Why |
-|---|---|---|---|
-| evaluating-livepeer.mdx | resources/knowledge-hub/ | guides/ | This is an authored guide, not a curated external link |
-| contributor-orientation.mdx | resources/knowledge-hub/ | guides/ | Same: authored guide for secondary persona |
-| gateways-vs-orchestrators.mdx | resources/knowledge-hub/ | guides/ | Decision guide, not curated link |
-| ecosystem-overview.mdx | NEW | guides/ | Fills the "what's built on this?" gap |
-| current-state.mdx | NEW | guides/ | Fills the "what does the network look like today?" gap |
-| participation-paths.mdx | NEW | guides/ | Fills the "how do I get involved?" routing gap |
-| livepeer-contract-addresses.mdx | resources/reference/ | resources/compendium/ | Structured data lookup, not technical spec |
-
----
-
-## DISPOSITIONS
-
-| Page | Action | Reason |
-|---|---|---|
-| All concepts/ pages | KEEP (core-concepts needs REWRITE) | Journey steps 1-3 |
-| network/overview, actors, job-lifecycle, marketplace, tech-arch, interfaces | KEEP | Journey steps 4-9 |
-| network/livepeer-actors/*.mdx | KEEP as depth | Per-actor detail for secondary personas |
-| **network/demand-side.mdx** | **DROP** | Stub. No journey step. Content = actors + marketplace |
-| **network/supply-side.mdx** | **DROP** | Stub. No journey step. Content = actors + marketplace |
-| **network/fee-flow.mdx** | **DROP** | Stub. No journey step. Fee flow = protocol/economics |
-| **network/scaling.mdx** | **DROP** | Stub. No persona needs "scaling" at discover stage |
-| All protocol/ pages | KEEP | Journey steps 10-17. Economics needs LIP review. |
-| All resources/ pages | KEEP | On-demand lookup |
-| livepeer-network/dep-actors.mdx | DROP | Deprecated duplicate |
-
-**Net: DROP 4 stubs + 1 deprecated. REWRITE 1 (core-concepts). FIX 1 (job-lifecycle description). KEEP everything else.**
-
----
-
-## QUESTIONS EACH PAGE MUST ANSWER
-
-| # | Page | THE question | Reader can now... |
-|---|---|---|---|
-| 1 | livepeer-overview | "What does Livepeer do?" | Describe Livepeer to a colleague in 2 sentences |
-| 2 | mental-model | "How does it all fit together?" | Draw the 3-zone architecture + name the ecosystem layers |
-| 3 | core-concepts | "What are the building blocks?" | Name: protocol, network, platform, actors, compute types, governance |
-| 4 | network/overview | "What IS the network?" | Distinguish execution (network) from security (protocol) |
-| 5 | network/actors | "Who does the work?" | Name all actors and their role in one sentence |
-| 6 | network/job-lifecycle | "How does a job flow?" | Trace: app → gateway → orchestrator → result → payment |
-| 7 | network/marketplace | "How does supply meet demand?" | Explain pricing, selection, settlement |
-| 8 | network/tech-arch | "What's the full stack?" | Place any component in the system diagram |
-| 9 | network/interfaces | "How do builders access this?" | Name the integration points |
-| 10 | protocol/overview | "What does the protocol DO?" | State what it secures and what it does NOT do |
-| 11 | protocol/core-mechanisms | "What are the mechanisms?" | Name: staking, delegation, rewards, inflation, slashing |
-| 12 | protocol/livepeer-token | "What is LPT?" | State 3 functions and what drives issuance |
-| 13 | protocol/economics | "How does money flow?" | Describe ETH fees AND LPT inflation — who earns each |
-| 14 | protocol/governance | "Who controls this?" | Describe voting, LIPs, vote detachment |
-| 15 | protocol/treasury | "How is development funded?" | Explain treasury, SPEs, Foundation, funding model |
-| 16 | protocol/contracts | "Where are the contracts?" | Find and verify on-chain |
-| 17 | protocol/design-philosophy | "Why is it designed this way?" | Articulate the design trade-offs |
+portal
+navigator
+/concepts
+/protocol
+/network
+/guides
+/resources
+
+# AUDIT
+
+- gaps
+- content quality
+- content placement
+
+## RESEARCH
+
+- V1 pages
+- ALL content (even not in nav)
+
+===
+ABOUT (NAV)
+portal
+navigator
+/concepts
+/protocol
+/network
+/guides
+/resources
+
+SUPP: (not on nav)
+/design
+audience,
+personas,
+journeys
+IA structure
+information & journey mapping to IA.
diff --git a/workspace/plan/active/_Project-Management_/project-state.md b/workspace/plan/active/_Project-Management_/project-state.md
index d628fc304..91137a5ba 100644
--- a/workspace/plan/active/_Project-Management_/project-state.md
+++ b/workspace/plan/active/_Project-Management_/project-state.md
@@ -1,5 +1,5 @@
# Project State — Content Writing Pipeline
-> Last updated: 2026-04-07
+> Last updated: 2026-04-06
> This file must be read at the start of every AI session and updated after every agent batch.
---
@@ -16,7 +16,6 @@
| Output file | Notes | Unblocks |
|---|---|---|
-| Gateway setup configure consolidation | `v2/gateways/setup/configure.mdx` is now the canonical Gateway configuration route; AI, Video, and Dual content lives in `v2/gateways/custom/views/setup/configure/`; old configure URLs redirect to the canonical page | Unblocks further Gateway setup flattening without carrying four active configure routes and stale cross-links |
| Delegators canonical IA rebuild | `v2/delegators/**` now follows the canonical portal/concepts/delegation/guides/resources model; the live Delegators routes were rebuilt, glossary/reference surfaces normalized, and the preview/generator dependencies repaired to support the new IA | Unblocks focused review of the live Delegators tab and a human-owned cleanup commit for any tracked shadow-source removals |
| Gateway single-click deployment path migration | `v2/gateways/setup/install/community-projects.mdx` was moved to `v2/gateways/guides/deployment-details/gwid-single-click-deploy.mdx`; docs.json, scoped navigation mirrors, active gateway cross-links, redirects, and generated page indexes now point at the new canonical route | Unblocks staging/review of the gateway deployment-details move without leaving broken active links on the old route |
| Production governance cutover | `operations/governance/**` and `operations/config/**` now operate as the production control plane; governance-sensitive PRs require explicit approval labels plus PR-body evidence; active/current governance reports and docs were cleaned to the steady-state architecture; and the ownerless handover report was generated | Unblocks production review of the governance model without relying on bridge-era behavior or undocumented approval process |
diff --git a/workspace/thread-outputs/research/jsdoc-debt-remediation.md b/workspace/thread-outputs/research/jsdoc-debt-remediation.md
new file mode 100644
index 000000000..02d3ae2c8
--- /dev/null
+++ b/workspace/thread-outputs/research/jsdoc-debt-remediation.md
@@ -0,0 +1,84 @@
+# Component JSDoc Debt — Root Cause + Remediation Plan
+
+## Problem
+
+The CI check `check-docs-guide-catalogs / catalog-checks` fails on every PR because component files are missing required JSDoc annotations. The check detects but does not fix. There is no self-healing workflow.
+
+## Root causes
+
+### 1. Validator uses stale tag names
+
+`tools/lib/governance/component-governance-utils.js` (~line 38) checks for:
+
+```js
+const GOVERNANCE_FIELDS = ['component', 'type', 'subniche', 'status', 'description', 'accepts'];
+```
+
+The canonical framework (`workspace/plan/active/COMPONENT-GOVERNANCE/component-framework-canonical.md`) defines:
+
+| Old name (in validator) | Canonical name | Status |
+|---|---|---|
+| `@type` | `@category` | Renamed |
+| `@subniche` | `@subcategory` | Renamed |
+| `@accepts` | — | Removed |
+
+The validator is checking for tags that don't match what the framework says. Components tagged with `@category` still fail because the validator looks for `@type`.
+
+### 2. Repair script only fixes 2 of 6 tags
+
+`operations/scripts/remediators/components/library/repair-component-metadata.js` auto-fixes:
+- `@component` — from export name
+- `@category` — from folder path
+
+It could also derive:
+- `@subcategory` — from subfolder name (e.g., `elements/links/` → `links`)
+- `@status` — default `stable` for existing components, `experimental` for new
+
+It cannot derive (needs human):
+- `@description` — one-line explanation of what the component does
+- `@dataSource` — only for integrator components
+- `@aiDiscoverability` — only for hook-using components
+
+### 3. No self-healing CI workflow
+
+The existing pattern is: check → fail → block. It should be: check → auto-fix what's derivable → commit back to PR → report only human-required items.
+
+`repair-component-metadata.js --fix` exists but no workflow calls it. The `generate-component-registry.yml` workflow generates the registry but doesn't run the repair.
+
+## Remediation
+
+### Fix 1: Update validator schema
+
+In `tools/lib/governance/component-governance-utils.js`:
+- `'type'` → `'category'`
+- `'subniche'` → `'subcategory'`
+- Remove `'accepts'`
+- Update all parsing logic that reads these tags
+
+### Fix 2: Expand repair script
+
+In `repair-component-metadata.js`, add:
+- `@subcategory` derivation from subfolder name
+- `@status` defaulting (`stable` for existing, `experimental` for new)
+- `@description` scaffolding with `TODO: add description` placeholder (tagged `[NEEDS_HUMAN]`)
+
+### Fix 3: Wire self-healing into CI
+
+Add a job to `docs-catalog-governance.yml` that:
+1. Runs `repair-component-metadata.js --fix --staged` on PR
+2. Commits auto-fixable changes back to the PR branch
+3. Reports `[NEEDS_HUMAN]` items as advisory (not blocking)
+
+### Fix 4: Burn down existing debt
+
+Run expanded repair script across all 117 components, then manually write the ~117 `@description` lines and the conditional tags for integrator/hook-using components. Commit in batches by category folder.
+
+## Files
+
+| File | What to change |
+|---|---|
+| `tools/lib/governance/component-governance-utils.js` | Fix tag names, remove `@accepts` |
+| `operations/scripts/remediators/components/library/repair-component-metadata.js` | Add `@subcategory`, `@status`, `@description` scaffolding |
+| `.github/workflows/docs-catalog-governance.yml` | Add self-healing job |
+| `workspace/plan/active/COMPONENT-GOVERNANCE/component-framework-canonical.md` | Verify canonical is still accurate |
+| `docs-guide/config/component-registry.json` | Regenerate after fixes |