Skip to main content
Page is under construction.
Feedback Welcome!
Complete: needs review

Overview

Livepeer is currently deployed on the Arbitrum L2 network (Arbitrum One). In order to interact with the Livepeer smart contracts you will need to connect to an Arbitrum RPC. If you plan to run your Gateway in On-Chain mode, you will need:
  • An Ethereum account with funds to pay for transaction fees
  • An Ethereum RPC URL to connect to the Arbitrum network where Livepeer is deployed

Required On-Chain Flags

Network Configuration
-network
string
default:"offchain"
Set to the blockchain network arbitrum-one-mainnet
Account Configuration
-ethUrl
string
default:"none"
Ethereum JSON-RPC URL
-ethAcctAddr
string
default:"none"
Your Ethereum PUBLIC Wallet (Account) Address.The 0x prefix is optional for -ethAcctAddr Livepeer accepts addresses both with and without the prefix.
-ethPassword
string
default:"none"
Password for your KEYSTORE file orPath to your password.txt file containing the password for your Keystore Account
-ethKeystorePath
string
default:"none"
Path to your encyrpted keystore directory or keyfile containing your private key

Security Notes

  • Never share your keystore files - they contain your encrypted private keys
  • Use strong passwords for keystore encryption - Back up your keystore securely - The ethPassword only protects the keystore file - your actual private key is stored encrypted within the keystore - Never share your wallet private key. In c ase of accidental public exposure - remove any funds & change your wallet immediately
/snippets/assets/logos/Livepeer-Logo-Symbol-Light.svg
EASY SETUP
/snippets/assets/logos/Livepeer-Logo-Symbol-Light.svg

Easy Setup with Livepeer Tooling

Install Your Gateway Software First

-> then come back to this guide.
Livepeer will automatically create a new wallet & keystore for you if you do not provide an existing wallet address after first installing your Gateway software. The software will detect no keystore exists for that address and ask you to:
  • Enter your private key
  • Create an account address (wallet) -ethAcctAddr
  • Set a password for the keystore encryption -ethPassword
  • Create the keystore file -ethKeystorePath
Use the below command to quickstart an on-chain gateway with a new wallet and auto-generate all required parameters. See RPC URL for instructions on finding or using an alternative Arbitrum RPC URL.
Create New Wallet & Keystore
livepeer -gateway \
-network arbitrum-one-mainnet \
-ethUrl=https://arb1.arbitrum.io/rpc #public RPC: rate-limited
\ -ethAcctAddr="" \
-ethKeystorePath="" \
-ethPassword=""
If you want to bring an existing wallet - put the public address in the -ethAcctAddr flag.
Exisiting Wallet, New Keystore
livepeer -gateway \
    -network arbitrum-one-mainnet \
    -ethUrl=https://arb1.arbitrum.io/rpc #public rate-limited RPC
    \ -ethAcctAddr=<YOUR_WALLET_ADDRESS> \
    -ethKeystorePath=""

Account Data Default Folders

Account data is stored in the ~/.lpData directory by default. Keystore files are by default created in:
Docker
#inside container
/root/.lpData/

#on host
/var/lib/docker/volumes/gateway-lpData/_data/

Next Step

Fund Your Gateway

/snippets/assets/logos/Livepeer-Logo-Symbol-Light.svg
FULL SETUP GUIDE
/snippets/assets/logos/Livepeer-Logo-Symbol-Light.svg

Comprehensive On-Chain Setup Guide

Full Guide with alternative options for setting up an on-chain Gateway
1

Network `-network`

-network
string
default:"offchain"
Set to the blockchain network arbitrum-one-mainnet
2

RPC URL `-ethUrl` flag

-ethUrl
string
default:"none"
Ethereum JSON-RPC URLExample: https://arb1.arbitrum.io/rpc
You can use any Arbitrum One RPC URL.
  • Public RPCs
  • Third-party RPC providers
  • Self-hosted RPC

Public RPCs

Many of the public RPCs apply rate-limits, including the third-party providers. These free-tier RPC’s should be sufficient to run a single Gateway with the latest versions of Livepeer.Chainlist provides a full list of public Arbitrum One RPCs (including the Arbitrum public RPC):
You can also check the RPC status on Chainlist
3

ETH Account `-ethAcctAddr`

Blockchain wallets (accounts) have both a public account address (starting with “0x…”) and a private key.This field is for your public wallet address.
ONLY use your PUBLIC Wallet Address in this field.NEVER use your PRIVATE key. A public address is akin to your bank account number, a private key is like your bank PIN or password.
-ethAcctAddr
string
default:"none"
Livepeer automatically creates a wallet for you if this field is empty.-ethAcctAddr=""
Your public wallet address: 0x...Example: 0xc7653d426f2ec8bc33cdde08b15f535e2eb2f523

You can
  • Use an existing Ethereum wallet address (e.g., from MetaMask, hardware wallet, etc.)
  • Let Livepeer automatically create a new wallet address. See code accountmanager.go
You can use any existing Ethereum wallet address which can transact on Arbitrum.You will use Arbitrum One Mainnet to transact on the Livepeer network as this is significantly cheaper than using Ethereum, so ensure your wallet can transact on Arbitrum.
It’s advisable to use a wallet you own the private keys for rather than an exchange wallet.
The following guides are provided as a reference only - no recommendation is made for any specific wallet provider.
4

ETH Password `-ethPassword`

This is NOT your wallet private key.Choose a strong password to secure your keystore file.Make sure to never share or lose access to either the password or the keystore file
Think of this flag as -keystorePassword - it is the path to a password.txt file containing a (strong) password chosen by you.This password is used to decrypt the keystore file and access the (encrypted) private key.
-ethPassword
string
default:"none"
Path to a password.txt file containing a (strong) password chosen by you.
    # Password File
    -ethPassword=/path/to/password.txt
Livepeer will prompt you for a password and create this automatically on running the Gateway if you leave this flag empty: -ethPassword=""

    # Create keystore directory
    mkdir -p ~/.lpData/keystore

    # Place your keystore file
    cp your_keystore_file.json ~/.lpData/keystore/

    # Create password file
    echo "your_password" > ~/.lpData/password.txt
5

ETH Keystore `-ethKeystorePath`

-ethKeystorePath
string
default:"none"
This is the path to your keystore directory or keyfile.
    # Password File
    -ethKeystorePath=/path/to/keystore
Livepeer will create the keystore automatically on running the Gateway if you leave this flag empty: -ethKeystorePath=""
To bring your existing Ethereum account to Livepeer, you need to create a keystore file with your private key and place it in the correct directory structure.The keystore files follow Ethereum’s UTC-timestamp-address format. These files, often referred to as “UTC / JSON Wallets” or “Web3 Secret Storage Definition” files, are encrypted local files that contain your Ethereum private key, allowing access to your account.Livepeer uses standard Ethereum keystore encryption, so any tool that creates Ethereum keystores will work. Create a keystore file using Livepeer devtools or Ethereum tooling.

Create Automatically with Livepeer Tooling

It’s recommended to let Livepeer devtools automatically create the keystore on first run after installing the Gateway software.
Use the command:
livepeer -gateway \
    -network arbitrum-one-mainnet \
    -ethUrl=<YOUR_ARBITRUM_RPC_URL> \
    -ethAcctAddr=0xYOUR_WALLET_ADDRESS \
    -ethPassword="" #can be omitted
    \ -ethKeystorePath=""  #can be omitted
Enter your private wallet key and password when prompted

Keystore File Location

Docker
#inside container
/root/.lpData/

#on host
/var/lib/docker/volumes/gateway-lpData/_data/

Keystore File Format

Keystore File Format
{
    "address": "089d8ab6752bac616a1f17246294eb068ee23d3e",
    "crypto": {
        "cipher": "aes-128-ctr",
        "ciphertext": "...",
        "cipherparams": {"iv": "..."},
        "kdf": "scrypt",
        "kdfparams": {...},
        "mac": "..."
        },
    "id": "unique-id",
    "version": 3
}

Create Now with Ethereum Tooling

Otherwise you can use Ethereum tools to create the keystore - instructions below.
If you are here, It is assumed you understand the security implications of exporting your private key and are able to vet & install any required software and convert linux bash commands to your own OS.Livepeer does not endorse or recommend any particular site or tools provided.
To create the keystore file, you can use one of the following methods:
  • Using Docker: Run the container interactively
  • Using geth (Ethereum’s development tool)
  • Using eth-cli (Ethereum’s command line tool)
  • Using node
  • Using web-based sites (not recommended)
You will need to:
  1. Export your private key from your existing wallet
  2. Create a keystore file with your private key
  3. Create a password file with a strong password
  4. Place the keystore file and password file in the correct directory
1

Export Private Key

Export your private key from your existing wallet
2

Create Keystore File

Example_Keystore.json
// Format: UTC--<TIMESTAMP>--<PUBLIC_ADDRESS>.json
UTC--2015-11-16T11-52-22.592017989Z--089d8ab6752bac616a1f17246294eb068ee23d3e.json
Create Keystore File
3

Create Password File

Create a password.txt file containing a (strong) password chosen by you. 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
# Create password file with the same password you just used
echo "YOUR_PASSWORD" > ~/.lpData/eth-secret.txt

# Secure it (Linux/Mac)
chmod 600 ~/.lpData/eth-secret.txt
4

Create Password File & Configure Directory

After creating the keystore with geth or eth-cli, you must manually create the password file.
# geth creates the keystore but does NOT save the password
geth account import --datadir ~/.lpData/arbitrum-one-mainnet/
# Enter private key: xxxxxx
# Enter password: yourpassword
# ✓ Keystore created

# YOU must manually create the password file
echo "yourpassword" > ~/.lpData/eth-secret.txt
Place it in Livepeer’s keystore directory & configure Livepeer to use your account.
# Linux/Mac
mkdir -p ~/.lpData/arbitrum-one-mainnet/keystore/
mv UTC--* ~/.lpData/arbitrum-one-mainnet/keystore/
Last modified on January 12, 2026