Ledgera Ledgera
Networks CelestiaMAINNETCelestiaTESTNETOsmosisMAINNETDymensionMAINNETLavaMAINNET
MAINNET

Dymension MAINNET – Installation Guide

Full bootstrap recipe for chain dymension_1100-1 running dymd v4.0.2 – denom adym, 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 dymension_1100-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 dymd

cd $HOME
rm -rf dymension
git clone https://github.com/dymensionxyz/dymension.git
cd dymension
git checkout v4.0.2
make install

05 Initialize the Node

MONIKER="<your-moniker>"

dymd config chain-id dymension_1100-1
dymd config keyring-backend os
dymd config node tcp://localhost:26657

dymd init "$MONIKER" --chain-id dymension_1100-1

06 Download Genesis and Address Book

wget -O ~/.dymension/config/genesis.json \
  https://github.com/dymensionxyz/networks/raw/main/mainnet/dymension/genesis.json

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

07 Configure Node Settings

7.1 Set Minimum Gas Price

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "5000000000adym"|' \
  $HOME/.dymension/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/.dymension/config/app.toml

7.3 Disable Indexer (optional)

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

7.4 Enable Prometheus Metrics

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

7.5 Add Seeds and Persistent Peers

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

08 Create Systemd Service

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

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

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable dymd

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

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

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

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

10 Start the Node

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

11 Verify Node Status

Check service status

sudo systemctl status dymd

Check sync status

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

12 Create or Restore Wallet

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

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

14 Create Validator (after full sync)

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

15 Public Endpoints

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

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

16 Upgrade

TAG=v4.0.2

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

dymd version
sudo systemctl restart dymd

17 State Sync (alternative to snapshot)

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

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

18 Useful Commands

Keys
dymd keys list
dymd keys show wallet -a
dymd keys show wallet --bech val -a
Tokens
dymd q bank balances $(dymd keys show wallet -a)
dymd tx bank send wallet <to> 1000000adym \
  --chain-id dymension_1100-1 --fees 20000000000000000adym -y

VAL=$(dymd keys show wallet --bech val -a)
dymd tx staking delegate $VAL 1000000adym \
  --from wallet --chain-id dymension_1100-1 --fees 20000000000000000adym -y

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

dymd tx slashing unjail --from wallet --chain-id dymension_1100-1 --fees 20000000000000000adym -y

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