> ## 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.

# Delegate Your LPT

> Complete the initial Livepeer delegation flow on Arbitrum One: connect your wallet, approve LPT, bond to an orchestrator, and verify the position.

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 StyledStep = ({title, icon, titleSize = 'h3', iconColor = null, titleColor = null, children, className = '', style = {}, ...rest}) => {
  const styledTitle = titleColor ? <span style={{
    color: titleColor
  }}>{title}</span> : title;
  return <Step title={styledTitle} icon={icon} iconColor={iconColor || undefined} titleSize={titleSize} className={className} style={style} {...rest}>
      {children}
    </Step>;
};

export const StyledSteps = ({children, iconColor, titleColor, lineColor, iconSize = '24px', className = '', style = {}, ...rest}) => {
  const resolvedIconColor = iconColor || 'var(--accent-dark, #18794E)';
  const resolvedTitleColor = titleColor || 'var(--lp-color-accent)';
  const resolvedLineColor = lineColor || 'var(--lp-color-accent)';
  return <div className={['docs-styled-steps', className].filter(Boolean).join(' ')} style={style} {...rest}>
      <style>{`
        .docs-styled-steps .steps > div > div.absolute > div {
          background-color: ${resolvedIconColor};
        }
        .docs-styled-steps .steps > div > div.w-full > p {
          color: ${resolvedTitleColor};
        }
        .docs-styled-steps .steps > div > div.absolute.w-px {
          background-color: ${resolvedLineColor};
        }
        .docs-styled-steps .steps > div:last-child > div.absolute.w-px::after {
          content: '';
          position: absolute;
          bottom: 0;
          left: 50%;
          transform: translateX(-50%);
          width: 6px;
          height: 6px;
          background-color: ${resolvedLineColor};
          transform: translateX(-50%) rotate(45deg);
        }
      `}</style>
      <div>
        <Steps>{children}</Steps>
      </div>
    </div>;
};

This tutorial takes you from "wallet with LPT on Arbitrum One" to "confirmed bonded Delegator position". It assumes you have already chosen your Orchestrator.

<BorderedBox variant="accent">
  Before you start:

  * your LPT is already on **Arbitrum One**
  * your wallet holds a small ETH balance on **Arbitrum One**
  * you have already completed the comparison work in [Choose an Orchestrator](/v2/Delegators/delegation/choose-an-Orchestrator)
</BorderedBox>

## Delegation tutorial

<StyledSteps>
  <StyledStep title="Open Livepeer Explorer and connect your wallet">
    Go to [explorer.livepeer.org](https://explorer.livepeer.org), click **Connect Wallet**, and connect the wallet that holds your Arbitrum-side LPT.
  </StyledStep>

  <StyledStep title="Open your chosen orchestrator">
    Navigate to the Orchestrator's Explorer profile and confirm they are still **Active** before you continue.
  </StyledStep>

  <StyledStep title="Start the Delegate flow">
    Click **Delegate** on the Orchestrator profile and enter the amount of LPT you want to bond. You do not need to bond your full balance.
  </StyledStep>

  <StyledStep title="Sign the ERC-20 approval">
    The first transaction authorises the BondingManager contract to move the LPT amount you entered. No stake is bonded yet at this step.
  </StyledStep>

  <StyledStep title="Sign the bond transaction">
    The second transaction actually bonds the LPT and attributes your stake to the chosen Orchestrator.
  </StyledStep>

  <StyledStep title="Verify the position">
    Return to your account page in Explorer and confirm the bonded balance, delegate address, and pending rewards section are now present.
  </StyledStep>
</StyledSteps>

## What success looks like

After the bond transaction confirms, you should be able to verify:

* a bonded LPT balance on your Explorer account page
* the Orchestrator address your stake points to
* a pending rewards area that will update in later rounds

If you delegated mid-round, do not expect immediate reward growth. First visible accrual may appear in the next round after the Orchestrator calls `reward()`.

## Important warning before your first claim

<Warning>
  As of 6 April 2026, Explorer PR `#613` is still open. Do not assume the UI will warn you about claim timing.

  If you call `claimEarnings()` before your Orchestrator has already called `reward()` for the current round, you can skip that round's rewards entirely.
</Warning>

Your next page should be [Manage Your Delegation](/v2/Delegators/delegation/manage-your-delegation), which explains when to claim, when to redelegate, and how to exit.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Can I bond only part of my balance?">
    Yes. You can start with a partial amount and add more later from the same wallet.
  </Accordion>

  <Accordion title="Can I undo the bond immediately?">
    You can redelegate quickly, but full withdrawal requires unbonding and waiting through the protocol's unbonding period.
  </Accordion>

  <Accordion title="I do not see rewards yet. Is something broken?">
    Not necessarily. Wait for the next round and confirm that your Orchestrator has called `reward()` for that round.
  </Accordion>
</AccordionGroup>

<CardGroup cols={2}>
  <Card title="Manage Your Delegation" icon="gauge" href="/v2/delegators/delegation/manage-your-delegation" arrow>
    Claim, compound, redelegate, unbond, and withdraw after the initial bond.
  </Card>

  <Card title="Delegation Economics" icon="chart-line" href="/v2/delegators/delegation/delegation-economics" arrow>
    Understand what determines the return on the position you just opened.
  </Card>
</CardGroup>
