Ledgera Ledgera
Networks CelestiaMAINNETCelestiaTESTNETOsmosisMAINNETDymensionMAINNETLavaMAINNET
MAINNET

Osmosis MAINNET – Installation Guide

Full bootstrap recipe for chain osmosis-1 running osmosisd v31.0.3 – denom uosmo, 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 osmosis-1.

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 osmosisd

cd $HOME
rm -rf osmosis
git clone https://github.com/osmosis-labs/osmosis.git
cd osmosis
git checkout v31.0.3
make install

05 Initialize the Node

MONIKER="<your-moniker>"

osmosisd config chain-id osmosis-1
osmosisd config keyring-backend os
osmosisd config node tcp://localhost:26657

osmosisd init "$MONIKER" --chain-id osmosis-1

06 Download Genesis and Address Book

wget -O ~/.osmosisd/config/genesis.json \
  https://github.com/osmosis-labs/networks/raw/main/osmosis-1/genesis.json

wget -O ~/.osmosisd/config/addrbook.json \
  https://snapshot-osmosis-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.0025uosmo"|' \
  $HOME/.osmosisd/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/.osmosisd/config/app.toml

7.3 Disable Indexer (optional)

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

7.4 Enable Prometheus Metrics

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

7.5 Add Seeds and Persistent Peers

SEEDS="c4e09383972980cf42d68c269fd95659f94a09b2@seed-osmosis-mainnet.proledgera.com:26656"
PEERS=$(curl -s https://snapshot-osmosis-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/.osmosisd/config/config.toml

08 Create Systemd Service

sudo tee /etc/systemd/system/osmosisd.service > /dev/null <<EOF
[Unit]
Description=Osmosis (osmosis-1)
After=network-online.target

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

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable osmosisd

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/.osmosisd/data/priv_validator_state.json \
   $HOME/.osmosisd/priv_validator_state.json.backup

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

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

# Restore validator state
mv $HOME/.osmosisd/priv_validator_state.json.backup \
   $HOME/.osmosisd/data/priv_validator_state.json

10 Start the Node

sudo systemctl start osmosisd
sudo journalctl -u osmosisd -f -o cat

11 Verify Node Status

Check service status

sudo systemctl status osmosisd

Check sync status

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

12 Create or Restore Wallet

osmosisd keys add wallet
osmosisd 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

osmosisd q bank balances $(osmosisd keys show wallet -a)

14 Create Validator (after full sync)

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

15 Public Endpoints

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

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

16 Upgrade

TAG=v31.0.3

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

osmosisd version
sudo systemctl restart osmosisd

17 State Sync (alternative to snapshot)

SNAP_RPC="https://rpc-osmosis-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/.osmosisd/config/config.toml

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

18 Useful Commands

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

VAL=$(osmosisd keys show wallet --bech val -a)
osmosisd tx staking delegate $VAL 1000000uosmo \
  --from wallet --chain-id osmosis-1 --fees 5000uosmo -y

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

osmosisd tx slashing unjail --from wallet --chain-id osmosis-1 --fees 5000uosmo -y

osmosisd q slashing signing-info $(osmosisd tendermint show-validator)
Governance
osmosisd q gov proposals
osmosisd tx gov vote <id> yes \
  --from wallet --chain-id osmosis-1 --fees 5000uosmo -y
Service
sudo systemctl start osmosisd
sudo systemctl stop osmosisd
sudo systemctl restart osmosisd
sudo journalctl -u osmosisd -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 osmosisd
sudo systemctl disable osmosisd
sudo rm /etc/systemd/system/osmosisd.service
sudo systemctl daemon-reload
rm -rf $HOME/.osmosisd $HOME/osmosis
sudo rm $(which osmosisd)