Skip to main content
Reward calling determines whether your node actually receives the LPT inflation it has earned. Read this page to tune automatic and manual calls, Arbitrum gas costs, commission updates, and the fee path from job to wallet. It assumes you have read Earnings Explained and have an active orchestrator node.

How LPT rewards flow

Every round (approximately every 22 hours on Arbitrum), the protocol mints new LPT and makes it available to the active orchestrator set. The sequence is:
Round initialises

Protocol calculates each orchestrator's proportional share
(based on total stake: self-bond + delegated stake)

10% goes to the Livepeer Treasury (LIP-89, March 2026)

90% is distributed to active orchestrators

Each orchestrator calls Reward() on-chain to claim their share

Reward distributes: rewardCut % to you, remainder to delegators
Your share of each round’s issuance is proportional to (your total stake / total active stake in the network). The more stake you have bonded — your own plus delegated — the more LPT you receive per round. You only earn for rounds in which you successfully call Reward(). There is no catch-up mechanism. A missed round is a permanently forfeited allocation.

The inflation rate

The inflation rate is a dynamic protocol parameter:
  • Increases each round when bonded LPT is below ~50% of total supply
  • Decreases each round when bonded LPT is above ~50% of total supply
  • Current direction (2026): declining — bonded participation has exceeded 50%, so the rate falls by a small amount each round towards its minimum floor
The Explorer shows current inflation rate and target participation at explorer.livepeer.org.

Calling Reward() — your options

By default, go-livepeer automatically calls Reward() at the start of each new round. No action required after initial setup.
Automatic reward call startup example
# Automatic reward is ON by default
# Confirm it's not been disabled by checking your startup flags — there should be no -reward=false
livepeer \
    -network arbitrum-one-mainnet \
    -orchestrator \
    # ... other flags
    # -reward=false  ← do NOT have this
Requirements for automatic reward to succeed:
  • Your node must be running at round initialisation (approximately every 22 hours)
  • Your node’s ETH wallet must have sufficient ETH on Arbitrum to pay the transaction gas
  • Your orchestrator must be in the active set that round
Nodes offline at round initialisation miss that round’s reward. There is no retry. For production orchestrators, use systemd or Docker restart policies to keep the node running continuously.

Option 2: Disable automatic, call manually

Use this approach when you are newly activated with very low stake, and want to evaluate whether the gas cost exceeds the LPT value before committing to automatic calling. Step 1: Disable automatic reward calls
Disable automatic reward calls
livepeer \
    -network arbitrum-one-mainnet \
    -reward=false
    # ... other flags
Step 2: Estimate whether calling is profitable this round Gather three inputs:
  1. Current gas price on Arbitrum — check arbiscan.io for current L2 gas prices
  2. Gas used per reward call — typically 350,000 to 450,000 gas on Arbitrum
  3. LPT value you’d receive — visible in Explorer on your orchestrator page under “Estimated Reward This Round”
Reward profitability formula
ETH cost = gas_used × gas_price_in_ETH
LPT earned = your_stake_share × round_issuance × 0.90 (after treasury)

Call is profitable if: LPT earned (in ETH) > ETH cost
Arbitrum gas is low compared to mainnet, so the threshold is typically reached at a much smaller stake level than it was historically on L1. Step 3: Call reward manually via livepeer_cli
Open livepeer_cli for a manual reward call
# Ensure livepeer is running
livepeer_cli
From the menu, select the option corresponding to “Invoke reward” and confirm the transaction. Wait for on-chain confirmation — you will see a log line similar to:
Manual reward call log example
Invoking transaction: "reward". Hash: "0x..."
Step 4: Enable automatic reward when profitable Once your stake is large enough that automatic reward calls are profitable:
Re-enable automatic reward calls
# Remove the -reward=false flag from your startup command
# Automatic reward is the default — simply don't pass -reward=false

Gas costs on Arbitrum

Reward calls run on Arbitrum (Arbitrum One), Livepeer’s L2 network. Gas costs are dramatically lower than Ethereum mainnet. At these levels, the stake threshold for profitable reward calling is much lower than it was on mainnet. Most actively staked orchestrators are well above the break-even point. Keep ETH on Arbitrum in your orchestrator wallet for reward transactions. Running out of ETH causes reward calls to fail silently and rounds to be missed.
Check orchestrator ETH balance with livepeer_cli
# Check your orchestrator ETH balance on Arbitrum
# Run livepeer_cli and check "Account info" to see your current balance
livepeer_cli

Setting your commission

Commission parameters are set via livepeer_cli or the Livepeer Explorer UI. They take effect from the next round after you set them.

Via livepeer_cli

Open livepeer_cli to set commission
livepeer_cli
Select the option for “Set orchestrator config” to update:
  • rewardCut — the percentage of LPT inflation you keep (0–100%)
  • feeShare — the percentage of ETH fees shared with delegators (0–100%)

Commission rate strategy

There is no universally correct setting. The trade-off is between your immediate per-job earnings and your ability to attract delegators who increase your total stake. Check what leading orchestrators are currently set to on explorer.livepeer.org/orchestrators. The “Active” tab shows all current parameters and fee history side by side.
Changing commission rates after attracting delegators is the primary way orchestrators damage their reputation. Delegators monitor their orchestrators and migrate away from those who change rates unfavourably after building trust. See Getting Delegates for more on the delegator relationship.

How ETH fees flow

Job fees take a different path from LPT rewards:
Gateway routes job to your orchestrator

You complete the job (transcoding or AI inference)

Gateway sends payment ticket(s) with each job

Winning tickets accumulate in your wallet (see Payments page)

Redeemer submits winning tickets on-chain

ETH confirmed in your Arbitrum wallet

Your feeShare % flows to delegators' claimable balances
ETH fees from jobs are available for withdrawal once the Redeemer has processed the winning tickets. The Redeemer is a component of go-livepeer that handles on-chain submission automatically. For the full probabilistic micropayment lifecycle, ticket structure, and Redeemer operation, see Payments.

Monitoring for missed rounds

The Livepeer Explorer shows your reward call history on your orchestrator’s profile page. A gap in the history means a missed round.

Automated alerting

For production orchestrators, set up alerting on the go-livepeer Prometheus metrics. The relevant metric is livepeer_orchestrator_reward_call_status:
Example Prometheus alert rule
# Example Prometheus alert rule
groups:
  - name: livepeer_orchestrator
    rules:
      - alert: MissedRewardRound
        expr: increase(livepeer_orchestrator_reward_call_status{status="failed"}[2h]) > 0
        for: 1h
        labels:
          severity: critical
        annotations:
          summary: "Orchestrator missed a reward round"
          description: "A reward() call failed. Check ETH balance and node uptime."
The Explorer also tracks your reward call ratio (rewardCalls / n over up to 90 rounds). Delegators see this ratio on your profile and factor it directly into their yield calculation. A ratio below 1.0 reduces their effective yield and makes your orchestrator less attractive.

Reward vs fee economics: a worked example

Illustrative scenario for context only. Actual figures depend on LPT price, ETH price, inflation rate, and network demand. Example node profile for the table below: 10,000 LPT total stake (3,000 self-bonded + 7,000 delegated), active set, rewardCut = 15%, feeShare = 40%.

Watch: Reward calling and orchestrator setup

Last modified on March 16, 2026