Ledgera Ledgera
Networks CelestiaMAINNETCelestiaTESTNETOsmosisMAINNETDymensionMAINNETLavaMAINNET
MAINNET

Celestia MAINNET – Installation Guide

Full bootstrap recipe for chain celestia running celestia-appd v8.0.8 – denom utia, snapshot service coming soon. Walks through dependencies, Go, build, init, systemd, snapshot apply and a wallet/validator walkthrough. Operated by Ledgera.

Coming soon. The public RPC, REST, gRPC, seed and snapshot endpoints listed in this guide are not live yet. The setup steps are accurate, but the *-proledgera.com endpoints below will begin resolving once the infrastructure is deployed.

01 Prerequisites

Ubuntu 22.04 LTS or 24.04 LTS. Root or sudo-capable user. Minimum 8 GB RAM and a recent SSD with at least 250 GB free for celestia.

02 Update System and Install Build Tools

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git wget jq lz4 unzip tar make gcc clang \
  pkg-config libssl-dev build-essential ncdu htop

03 Install Go 1.26.4

ver="1.26.4"
cd $HOME
wget "https://go.dev/dl/go$ver.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"

[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export GOROOT=/usr/local/go"   >> ~/.bash_profile
echo "export GOPATH=\$HOME/go"       >> ~/.bash_profile
echo "export PATH=\$GOPATH/bin:\$GOROOT/bin:\$PATH" >> ~/.bash_profile
source ~/.bash_profile
go version

04 Build and Install celestia-appd

cd $HOME
rm -rf celestia-app
git clone https://github.com/celestiaorg/celestia-app.git
cd celestia-app
git checkout v8.0.8
make install

05 Initialize the Node

MONIKER="<your-moniker>"

celestia-appd config chain-id celestia
celestia-appd config keyring-backend os
celestia-appd config node tcp://localhost:26657

celestia-appd init "$MONIKER" --chain-id celestia

06 Download Genesis and Address Book

wget -O ~/.celestia-app/config/genesis.json \
  https://raw.githubusercontent.com/celestiaorg/networks/master/celestia/genesis.json

wget -O ~/.celestia-app/config/addrbook.json \
  https://snapshot-celestia-mainnet.proledgera.com/addrbook.json

07 Configure Node Settings

7.1 Set Minimum Gas Price

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.002utia"|' \
  $HOME/.celestia-app/config/app.toml

7.2 Configure Pruning (optional, saves disk)

sed -i 's|pruning =.*|pruning = "custom"|;
  s|pruning-keep-recent =.*|pruning-keep-recent = "100"|;
  s|pruning-interval =.*|pruning-interval = "19"|' \
  $HOME/.celestia-app/config/app.toml

7.3 Disable Indexer (optional)

sed -i 's|^indexer *=.*|indexer = "null"|' \
  $HOME/.celestia-app/config/config.toml

7.4 Enable Prometheus Metrics

sed -i 's|prometheus = false|prometheus = true|' \
  $HOME/.celestia-app/config/config.toml

7.5 Add Seeds and Persistent Peers

SEEDS="032861c6c461c5c55b8dc748bdd663dac97fd6ce@seed-celestia-mainnet.proledgera.com:26656"
PEERS=$(curl -s https://snapshot-celestia-mainnet.proledgera.com/peers.txt | tr '\n' ',' | sed 's/,$//')

sed -i.bak -E "s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"$SEEDS\"| ; \
  s|^(persistent_peers[[:space:]]+=[[:space:]]+).*$|\1\"$PEERS\"|" \
  $HOME/.celestia-app/config/config.toml

08 Create Systemd Service

sudo tee /etc/systemd/system/celestia-appd.service > /dev/null <<EOF
[Unit]
Description=Celestia (celestia)
After=network-online.target

[Service]
User=$USER
ExecStart=$(which celestia-appd) start --home $HOME/.celestia-app
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable celestia-appd

09 Download and Apply Snapshot (optional, recommended)

Pruned snapshot, lz4-compressed, coming soon. Cuts initial sync time from days to minutes.

# Preserve validator state
cp $HOME/.celestia-app/data/priv_validator_state.json \
   $HOME/.celestia-app/priv_validator_state.json.backup

# Wipe + pull latest snapshot
rm -rf $HOME/.celestia-app/data
celestia-appd tendermint unsafe-reset-all --home $HOME/.celestia-app/ --keep-addr-book

SNAP=$(curl -s https://snapshot-celestia-mainnet.proledgera.com/latest)
curl -L $SNAP | lz4 -d | tar -x -C $HOME/.celestia-app

# Restore validator state
mv $HOME/.celestia-app/priv_validator_state.json.backup \
   $HOME/.celestia-app/data/priv_validator_state.json

10 Start the Node

sudo systemctl start celestia-appd
sudo journalctl -u celestia-appd -f -o cat

11 Verify Node Status

Check service status

sudo systemctl status celestia-appd

Check sync status

celestia-appd status 2>&1 | jq .SyncInfo
curl -s localhost:26657/status | jq .result.sync_info

12 Create or Restore Wallet

celestia-appd keys add wallet
celestia-appd keys add wallet --recover
ImportantSave the mnemonic phrase from the output in a safe place. Without it you cannot recover the wallet.

13 Check Wallet Balance

celestia-appd q bank balances $(celestia-appd keys show wallet -a)

14 Create Validator (after full sync)

celestia-appd tx staking create-validator \
  --amount=1000000utia \
  --pubkey=$(celestia-appd tendermint show-validator) \
  --moniker="<your-moniker>" \
  --chain-id=celestia \
  --commission-rate=0.05 \
  --commission-max-rate=0.20 \
  --commission-max-change-rate=0.01 \
  --min-self-delegation=1 \
  --from=wallet --fees=5000utia -y
Reference

15 Public Endpoints

Maintained by Ledgera. Mirror to your own infrastructure for production deployments.

RPChttps://rpc-celestia-mainnet.proledgera.com
RESThttps://api-celestia-mainnet.proledgera.com
gRPCgrpc-celestia-mainnet.proledgera.com:443
Addrbookhttps://snapshot-celestia-mainnet.proledgera.com/addrbook.json

16 Upgrade

TAG=v8.0.8

cd ~/celestia-app
git fetch --all --tags
git checkout $TAG
make install

celestia-appd version
sudo systemctl restart celestia-appd

17 State Sync (alternative to snapshot)

SNAP_RPC="https://rpc-celestia-mainnet.proledgera.com:443"

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height)
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000))
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
  s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
  s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
  s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" \
  $HOME/.celestia-app/config/config.toml

celestia-appd tendermint unsafe-reset-all --home $HOME/.celestia-app --keep-addr-book
sudo systemctl restart celestia-appd

18 Useful Commands

Keys
celestia-appd keys list
celestia-appd keys show wallet -a
celestia-appd keys show wallet --bech val -a
Tokens
celestia-appd q bank balances $(celestia-appd keys show wallet -a)
celestia-appd tx bank send wallet <to> 1000000utia \
  --chain-id celestia --fees 5000utia -y

VAL=$(celestia-appd keys show wallet --bech val -a)
celestia-appd tx staking delegate $VAL 1000000utia \
  --from wallet --chain-id celestia --fees 5000utia -y

celestia-appd tx distribution withdraw-rewards $VAL \
  --commission --from wallet --chain-id celestia --fees 5000utia -y
Validator
celestia-appd tx staking edit-validator \
  --moniker="<new-moniker>" \
  --website="https://proledgera.com/" \
  --chain-id=celestia --from=wallet --fees=5000utia -y

celestia-appd tx slashing unjail --from wallet --chain-id celestia --fees 5000utia -y

celestia-appd q slashing signing-info $(celestia-appd tendermint show-validator)
Governance
celestia-appd q gov proposals
celestia-appd tx gov vote <id> yes \
  --from wallet --chain-id celestia --fees 5000utia -y
Service
sudo systemctl start celestia-appd
sudo systemctl stop celestia-appd
sudo systemctl restart celestia-appd
sudo journalctl -u celestia-appd -f -o cat

19 Uninstall Node

ImportantThis wipes all data – keys, signing state, chain database. Back up priv_validator_key.json first.
sudo systemctl stop celestia-appd
sudo systemctl disable celestia-appd
sudo rm /etc/systemd/system/celestia-appd.service
sudo systemctl daemon-reload
rm -rf $HOME/.celestia-app $HOME/celestia-app
sudo rm $(which celestia-appd)
Bridge Node

B-01 About Celestia DA Bridge Node

The bridge node connects to a local celestia-appd validator/full-node and gossips block data to the DA network. Requires Go 1.26+, ~250 GB SSD (archival mode), a synced consensus node on the same host (or remote via --core.ip).

B-02 Build celestia-node v0.30.2

cd $HOME
rm -rf celestia-node
git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node
git checkout v0.30.2

make build
sudo install -m 755 build/celestia /usr/local/bin/celestia

make cel-key
sudo install -m 755 cel-key /usr/local/bin/cel-key

celestia version

B-03 Generate bridge wallet

cel-key add bridge-wallet --node.type bridge --p2p.network celestia
cel-key list --node.type bridge --p2p.network celestia
ImportantSave the mnemonic. The bridge-wallet pays for blob submissions if you decide to post data; keep the seed phrase backed up.

B-04 Initialise the bridge node

celestia bridge init \
  --keyring.keyname bridge-wallet \
  --core.ip http://localhost \
  --core.port 26657 \
  --core.grpc.port 9090 \
  --p2p.network celestia

Default home: ~/.celestia-bridge-celestia. The --core.* flags point to the local celestia-appd consensus node.

B-05 Systemd service for bridge

sudo tee /etc/systemd/system/celestia-bridge.service > /dev/null <<EOF
[Unit]
Description=Celestia DA Bridge (celestia)
After=network-online.target

[Service]
User=$USER
ExecStart=/usr/local/bin/celestia bridge start \
  --keyring.keyname bridge-wallet \
  --core.ip http://localhost \
  --core.port 26657 \
  --core.grpc.port 9090 \
  --p2p.network celestia \
  --archival
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable celestia-bridge
sudo systemctl start celestia-bridge
sudo journalctl -u celestia-bridge -f -o cat

B-06 Verify bridge sync + auth token

# Sync status
celestia header sync-state --node.store ~/.celestia-bridge-celestia

# RPC auth token (admin level for full access)
celestia bridge auth admin --p2p.network celestia
Light Node

L-01 About Celestia DA Light Node

The light node samples random shares of each block to verify data availability without storing the full block. Minimal hardware: 2 cores, 4 GB RAM, ~50 GB SSD. Standalone – does NOT require a local celestia-appd.

L-02 Build celestia-node v0.30.2

Skip this step if you already built celestia for the bridge node above – same binary handles both modes.

cd $HOME
rm -rf celestia-node
git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node
git checkout v0.30.2

make build
sudo install -m 755 build/celestia /usr/local/bin/celestia
celestia version

L-03 Initialise the light node

celestia light init --p2p.network celestia

Default home: ~/.celestia-light-celestia. No core consensus node needed – the light node pulls headers from the DA p2p network.

L-04 Systemd service for light

sudo tee /etc/systemd/system/celestia-light.service > /dev/null <<EOF
[Unit]
Description=Celestia DA Light (celestia)
After=network-online.target

[Service]
User=$USER
ExecStart=/usr/local/bin/celestia light start --p2p.network celestia
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable celestia-light
sudo systemctl start celestia-light
sudo journalctl -u celestia-light -f -o cat

L-05 Auth token + sample headers

# RPC auth token for the light node
celestia light auth admin --p2p.network celestia

# Confirm sampling is happening
celestia das sampling-stats --node.store ~/.celestia-light-celestia