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

# Find Your Path

> Choose the right orchestrator path based on your situation - hardware, stake, workload goals, and operational model.

export const BorderedBox = ({children, variant = "default", padding = "var(--lp-spacing-4)", borderRadius = "var(--lp-spacing-px-8)", margin = "", accentBar = "", style = {}, className = "", ...rest}) => {
  const variants = {
    default: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "var(--lp-color-bg-card)"
    },
    accent: {
      border: "1px solid var(--lp-color-accent)",
      backgroundColor: "var(--lp-color-bg-card)"
    },
    muted: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "transparent"
    }
  };
  const accentBarColors = {
    accent: "var(--lp-color-accent)",
    positive: "var(--green-9)"
  };
  return <div data-docs-bordered-box="" data-accent-bar={accentBarColors[accentBar] ? "" : undefined} className={className} style={{
    ...variants[variant],
    padding: padding,
    borderRadius: borderRadius,
    ...margin ? {
      margin
    } : {},
    ...accentBarColors[accentBar] ? {
      position: "relative",
      '--accent-bar-color': accentBarColors[accentBar]
    } : {},
    ...style
  }} {...rest}>
      {children}
    </div>;
};

export const LinkArrow = ({href, label, description, newline = true, borderColor, className = '', style = {}, ...rest}) => {
  const linkArrowStyle = {
    display: 'inline-flex',
    alignItems: 'center',
    justifyContent: 'center',
    gap: "var(--lp-spacing-1)",
    width: 'fit-content',
    ...borderColor && ({
      borderColor
    })
  };
  return <span className={className} style={style} {...rest}>
      {newline && <br />}
      <span style={linkArrowStyle}>
        <a href={href} target="_blank" rel="noopener noreferrer">
          {label}
        </a>
        <Icon icon="arrow-up-right" size={14} color="var(--lp-color-accent)" />
      </span>
      {description && description}
      {description && <div style={{
    height: "var(--lp-spacing-3)"
  }} />}
    </span>;
};

export const CustomDivider = ({color = "var(--lp-color-border-default)", middleText = "", spacing = "default", style = {}, className = "", ...rest}) => {
  const spacingPresets = {
    default: {
      margin: "24px 0"
    },
    overlap: {
      margin: "-1rem 0 -1rem 0"
    },
    tight: {
      margin: "0 0 -1rem 0"
    },
    section: {
      margin: "0 0 -2rem 0"
    },
    sectionOverlap: {
      margin: "-1rem 0 -2rem 0"
    },
    deepOverlap: {
      margin: "-1rem 0 -1.5rem 0"
    }
  };
  const spacingStyle = spacingPresets[spacing] || spacingPresets.default;
  return <div role="separator" aria-orientation="horizontal" className={className} style={{
    display: "flex",
    alignItems: "center",
    ...spacingStyle,
    fontSize: style?.fontSize || "16px",
    height: "fit-content",
    ...style
  }} {...rest}>
      <span style={{
    marginRight: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
      </span>
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      {middleText && <>
          <Icon icon="circle" size={2} />
          <span style={{
    margin: "0 8px",
    fontWeight: "bold",
    color: color,
    opacity: 0.7
  }}>
            {middleText}
          </span>
          <Icon icon="circle" size={2} />
        </>}
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      <span style={{
    marginLeft: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <span style={{
    display: "inline-block",
    transform: "scaleX(-1)"
  }}>
          <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
        </span>
      </span>
    </div>;
};

export const TableCell = ({children, align = "left", header = false, style = {}, className = "", ...rest}) => {
  const Component = header ? "th" : "td";
  return <Component className={className} style={{
    padding: "0.75rem 1rem",
    textAlign: align,
    border: header ? "none" : "1px solid var(--lp-color-border-default)",
    ...style
  }} {...rest}>
      {children}
    </Component>;
};

export const TableRow = ({children, header = false, hover = false, style = {}, className = "", ...rest}) => {
  const rowId = `table-row-${Math.random().toString(36).substr(2, 9)}`;
  return <>
      {hover && <style>{`
          #${rowId}:hover {
            background-color: var(--lp-color-bg-card);
          }
        `}</style>}
      <tr id={rowId} className={className} style={{
    ...header && ({
      backgroundColor: "var(--lp-color-accent-strong)",
      color: "var(--lp-color-on-accent)",
      fontWeight: "bold"
    }),
    ...style
  }} {...rest}>
        {children}
      </tr>
    </>;
};

export const StyledTable = ({children, variant = "default", style = {}, className = "", ...rest}) => {
  const wrapperVariants = {
    default: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "var(--lp-color-bg-card)",
      overflow: "hidden"
    },
    bordered: {
      border: "2px solid var(--lp-color-accent)",
      backgroundColor: "var(--lp-color-bg-page)",
      overflow: "hidden"
    },
    minimal: {
      border: "none",
      backgroundColor: "transparent",
      overflow: "visible"
    }
  };
  return <div data-docs-styled-table-shell className={className} style={{
    width: "100%",
    padding: 0,
    margin: 0,
    ...wrapperVariants[variant],
    ...style
  }} {...rest}>
      <table data-docs-styled-table style={{
    width: "100%",
    borderCollapse: "collapse",
    borderSpacing: 0,
    margin: 0,
    backgroundColor: "transparent"
  }}>
        {children}
      </table>
    </div>;
};

<CustomDivider style={{margin: "-1rem 0 -1rem 0"}} />

This page routes to the right starting point based on the operator's current situation. Not every operator follows the same path - hardware, LPT access, and goals determine where to start.

<CustomDivider style={{margin: "-1rem 0 -2rem 0"}} />

## Choose Your Starting Point

<AccordionGroup>
  <Accordion title="I have a GPU and want to try Livepeer" icon="flask">
    **Start with the Quickstart.** Verify the technology works on the hardware before committing time or money. Off-chain, no staking, no ETH - pure hardware verification.

    <CardGroup cols={2}>
      <Card title="Quickstart" icon="bolt" href="/v2/orchestrators/quickstart/guide" arrow>
        Verify video transcoding and AI inference work on the GPU. Under 1 hour.
      </Card>

      <Card title="Operator Rationale" icon="scale-balanced" href="/v2/orchestrators/guides/operator-considerations/operator-rationale" arrow>
        Review costs, revenue streams, and break-even analysis before committing.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="I want to earn from my GPU with minimal setup" icon="coins">
    **Join a pool.** No LPT staking, no on-chain activation, no protocol management. Connect the GPU to an existing pool operator and start processing jobs. The pool operator handles everything else.

    <Note>
      Joining a pool requires finding a pool operator willing to accept workers. This is a social process (Discord, community pools directory) that may take days. The technical setup is fast once pool access is obtained.
    </Note>

    <CardGroup cols={2}>
      <Card title="Join a Pool" icon="users" href="/v2/orchestrators/guides/deployment-details/join-a-pool" arrow>
        Evaluate pools, connect as a worker, start earning.
      </Card>

      <Card title="Community Pools" icon="list" href="/v2/orchestrators/resources/community-pools" arrow>
        Directory of active Orchestrator pools accepting workers.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="I have a 24 GB+ GPU and want to earn from AI" icon="brain">
    **AI inference does not require Active Set membership.** Routing is capability-based, not stake-based. An operator with a capable GPU and minimal LPT can register on the AIServiceRegistry and start receiving AI jobs immediately.

    <CardGroup cols={2}>
      <Card title="AI Inference Operations" icon="microchip" href="/v2/orchestrators/guides/ai-and-job-workloads/ai-inference-operations" arrow>
        How AI routing works, aiModels.json configuration, and pipeline types.
      </Card>

      <Card title="Setup Guide" icon="gear" href="/v2/orchestrators/setup/guide" arrow>
        Full setup flow including AI configuration and on-chain registration.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="I already run video transcoding and want to add AI" icon="layer-group">
    **Dual mode is additive.** The existing video configuration does not change. Add `-aiWorker`, `-aiModels`, and an AI Runner container. NVENC/NVDEC (video) use dedicated silicon that does not compete with CUDA (AI). Both workloads share VRAM.

    <CardGroup cols={2}>
      <Card title="Dual Mode Configuration" icon="plus" href="/v2/orchestrators/guides/deployment-details/dual-mode-configuration" arrow>
        The exact configuration delta for adding AI to a running video node.
      </Card>

      <Card title="Model and Demand Reference" icon="chart-bar" href="/v2/orchestrators/guides/ai-and-job-workloads/model-demand-reference" arrow>
        Which AI models fit the available VRAM and are in demand on the network.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="I want to run a solo orchestrator (full control)" icon="server">
    **The standard path.** Full control over pricing, workloads, and protocol participation. Requires LPT for staking, ETH for gas, and ongoing operational commitment.

    <CardGroup cols={2}>
      <Card title="Setup Guide" icon="gear" href="/v2/orchestrators/setup/guide" arrow>
        Complete setup: install, configure, connect to Arbitrum, verify.
      </Card>

      <Card title="Requirements" icon="clipboard-check" href="/v2/orchestrators/setup/prepare" arrow>
        Hardware, software, network, and token prerequisites by node mode.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="I run a business that needs GPU compute at scale" icon="building">
    **Commercial Orchestrator operation.** Serve application workloads under SLAs. Per-Gateway pricing. O-T split architecture for reliability. Fleet deployment patterns.

    <CardGroup cols={2}>
      <Card title="Business Case" icon="briefcase" href="/v2/orchestrators/guides/operator-considerations/business-case" arrow>
        The commercial Orchestrator model - service fees, SLAs, per-Gateway pricing.
      </Card>

      <Card title="Scale Operations" icon="chart-line" href="/v2/orchestrators/guides/advanced-operations/scale-operations" arrow>
        Fleet deployment, multi-GPU, multi-machine architecture.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="I want to influence the protocol's direction" icon="landmark">
    **Orchestrators carry governance weight.** Total bonded stake (self + delegated) determines voting power on LIPs, treasury proposals, and protocol parameters. Operating a well-run node attracts delegation, which compounds governance influence.

    <CardGroup cols={2}>
      <Card title="Operator Impact" icon="gavel" href="/v2/orchestrators/guides/operator-considerations/operator-impact" arrow>
        Governance weight, the sovereign compute thesis, and what gets voted on.
      </Card>

      <Card title="Network Participation" icon="vote-yea" href="/v2/orchestrators/guides/staking-and-rewards/network-participation" arrow>
        How to vote on LIPs, quorum requirements, and SPE proposals.
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

<CustomDivider style={{margin: "-1rem 0 -2rem 0"}} />

## Quick Reference

<StyledTable variant="bordered">
  <thead>
    <TableRow header>
      <TableCell header>Situation</TableCell>
      <TableCell header>Start here</TableCell>
      <TableCell header>Then</TableCell>
    </TableRow>
  </thead>

  <tbody>
    <TableRow>
      <TableCell>Want to try before committing</TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/quickstart/guide" label="Quickstart" newline={false} />
      </TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/guides/operator-considerations/operator-rationale" label="Operator Rationale" newline={false} />
      </TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Want GPU earnings, no staking</TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/guides/deployment-details/join-a-pool" label="Join a Pool" newline={false} />
      </TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/resources/community-pools" label="Community Pools" newline={false} />
      </TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Have 24 GB+ GPU, limited LPT</TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/guides/ai-and-job-workloads/ai-inference-operations" label="AI Inference" newline={false} />
      </TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/setup/guide" label="Setup" newline={false} />
      </TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Already run video, want to add AI</TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/guides/deployment-details/dual-mode-configuration" label="Dual Mode" newline={false} />
      </TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/guides/ai-and-job-workloads/model-demand-reference" label="Model Reference" newline={false} />
      </TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Ready for full solo setup</TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/setup/guide" label="Setup Guide" newline={false} />
      </TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/guides/staking-and-rewards/earning-model" label="Earning Model" newline={false} />
      </TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Commercial / enterprise scale</TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/guides/operator-considerations/business-case" label="Business Case" newline={false} />
      </TableCell>

      <TableCell>
        <LinkArrow href="/v2/orchestrators/guides/advanced-operations/scale-operations" label="Scale Operations" newline={false} />
      </TableCell>
    </TableRow>
  </tbody>
</StyledTable>

<CustomDivider style={{margin: "-1rem 0 -2rem 0"}} />

## All Sections

<CardGroup cols={3}>
  <Card title="Operator Considerations" icon="scale-balanced" href="/v2/orchestrators/guides/operator-considerations/operator-rationale">
    Should I operate? Costs, revenue, business case, protocol influence.
  </Card>

  <Card title="Deployment Details" icon="server" href="/v2/orchestrators/guides/deployment-details/setup-options">
    Which path? Solo, pool, O-T split, siphon, dual mode.
  </Card>

  <Card title="Workloads and AI" icon="microchip" href="/v2/orchestrators/guides/ai-and-job-workloads/workload-options">
    What to run? Video, AI diffusion, LLM, realtime, audio.
  </Card>

  <Card title="Staking and Earning" icon="coins" href="/v2/orchestrators/guides/staking-and-rewards/earning-model">
    How to earn? Service fees, inflation rewards, delegation.
  </Card>

  <Card title="Config and Optimisation" icon="sliders" href="/v2/orchestrators/guides/config-and-optimisation/pricing-strategy">
    How to tune? Pricing, capacity, model management.
  </Card>

  <Card title="Monitoring and Tools" icon="gauge" href="/v2/orchestrators/guides/monitoring-and-tooling/operator-toolbox">
    How to keep running? Explorer, metrics, troubleshooting.
  </Card>

  <Card title="Advanced Operations" icon="chart-line" href="/v2/orchestrators/guides/advanced-operations/gateway-relationships">
    How to scale? Gateway relationships, pools, fleet ops.
  </Card>

  <Card title="Roadmap and Funding" icon="road" href="/v2/orchestrators/guides/roadmap-and-funding/funding-and-support">
    What support exists? SPE grants, community, operator profiles.
  </Card>

  <Card title="Tutorials" icon="graduation-cap" href="/v2/orchestrators/guides/tutorials/zero-to-first-reward">
    Show me. End-to-end walkthroughs from zero to earning.
  </Card>
</CardGroup>
