logo

Dymension

DYM
  • Network:

    Mainnet

  • Chain ID:

    dymension_1100-1

  • Current Node Version:

    v4.0.1

Overview

Dymension is a decentralized Delegated Proof-of-Stake L1 blockchain designed to support fast and easily deployable app-chains known as RollApps. RollApps serve as the interactive applications within the Dymension ecosystem, enabling the creation of games, DeFi projects, NFT ventures, and more. Acting as the backbone, Dymension coordinates the ecosystem, while decentralized data availability networks function similarly to databases, providing short-term data storage and security verification.

Key Components:

  • RollApps: The front-end interactive applications that users engage with.
  • Dymension Hub: The back-end infrastructure that secures RollApps and facilitates user interactions, such as deposits, plays, and withdrawals. It also includes a decentralized exchange for trading RollApp tokens.
  • Data Availability Networks: Decentralized networks that provide data availability, ensuring the security and integrity of RollApps.

Features:

  • Security: RollApp funds are secured by Dymension validators.
  • Bridging: RollApps can interconnect and link to the broader crypto economy through a single IBC connection.
  • Liquidity: The Dymension Hub includes an Automated Market Maker (AMM) that supports efficient asset routing, price discovery, and shared liquidity across the ecosystem.

Dymension operates like an internet service provider, facilitating seamless integration and connectivity for RollApps, and reducing blockchain deployment time to mere minutes.

Standardization: Dymension emphasizes the importance of standardization for compatibility, security, and efficiency. It maintains an on-chain registry for approved Dymension RollApp Standards (DRS), which developers can use or customize. Custom standards require on-chain governance approval before being integrated into the core protocol and associated tools.

This structure ensures that Dymension remains a robust, secure, and efficient platform for developing and deploying decentralized applications.

Public Endpoints

TypeEndpointLink
RPChttps://dymension-mainnet-rpc.crouton.digital arrow right icon
APIhttps://dymension-mainnet-api.crouton.digital arrow right icon
gRPCdymension-mainnet-grpc.crouton.digital:20590
peera1e49461ceac0a962498cf77237584bc5446acc6@148.251.53.24:20556

Guide

INFOINFO

This guide provides a complete and reliable setup for running a Dymension mainnet node and validator. Here you’ll find everything you need - from downloading binaries and configuration files to initializing the node, managing keys, applying snapshots, and maintaining a stable validator environment. Follow the steps carefully to ensure a smooth and secure deployment on the Dymension network.

Prepare

Update and install packages

sudo apt update && sudo apt upgrade -y && \ sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc fail2ban htop -y

Installing Go

VER="1.22.0" cd $HOME && \ wget "https://golang.org/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" && \ echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ go version

Binary

git clone https://github.com/dymensionxyz/dymension.git dymension cd dymension git checkout v4.0.1 make install dymd version --long | grep -e version -e commit # version: v4.0.1 # commit: e5d4321581e2303773c6c474b5be900fe0bc9bff

Initialization

Initialize the node (replace VALIDATOR_NAME with your own)

dymd init VALIDATOR_NAME --chain-id dymension_1100-1 && \ dymd config chain-id dymension_1100-1 && \ dymd config keyring-backend os

Genesis

Download genesis

wget https://storage.crouton.digital/mainnet/dymension/files/genesis.json -O $HOME/.dymension/config/genesis.json

Addrbook

Download addrbook

wget https://storage.crouton.digital/mainnet/dymension/files/addrbook.json -O $HOME/.dymension/config/addrbook.json

Configuration

EXTERNAL_IP=$(wget -qO- eth0.me) NODE_NUMBER="1" sed -i.bak \ -e "s/\(proxy_app = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))58\"/" \ -e "s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))57\"/" \ -e "s/\(pprof_laddr = \"\)\([^:]*\):\([0-9]*\).*/\1localhost:$(($NODE_NUMBER + 60))60\"/" \ -e "/\[p2p\]/,/^\[/{s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))56\"/}" \ -e "/\[p2p\]/,/^\[/{s/\(external_address = \"\)\([^:]*\):\([0-9]*\).*/\1${EXTERNAL_IP}:$(($NODE_NUMBER + 266))56\"/; t; s/\(external_address = \"\).*/\1${EXTERNAL_IP}:$(($NODE_NUMBER + 266))56\"/}" \ -e "s/\(prometheus_listen_addr = \":\)\([0-9]*\).*/\1$(($NODE_NUMBER + 266))60\"/" $HOME/.dymension/config/config.toml sed -i.bak \ -e "/\[api\]/,/^\[/{s/\(address = \"tcp:\/\/\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 13))17\4/}" \ -e "/\[grpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 90))90\4/}" \ -e "/\[grpc-web\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 90))91\4/}" \ -e "/\[json-rpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 85))45\4/}" \ -e "/\[json-rpc\]/,/^\[/{s/\(ws-address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 85))46\4/}" $HOME/.dymension/config/app.toml echo "export NODE=http://localhost:$(($NODE_NUMBER + 266))57" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ dymd config node $NODE

Create a service file

sudo tee /etc/systemd/system/dymd.service > /dev/null <<EOF [Unit] Description=dymension_node After=network.target [Service] User=$USER Type=simple ExecStart=$(which dymd) start --home $HOME/.dymension Restart=on-failure LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF

Start the node

sudo systemctl daemon-reload && \ sudo systemctl enable dymd && \ sudo systemctl restart dymd && \ sudo journalctl -u dymd -f -o cat

Snapshot

Block HeightSizeIndexerLast SnapshotDownload
51196583.4Gnull2025-01-05T12:15:12.572270907Z arrow right icon

Restore node from snapshot

sudo apt install lz4 -y && \ sudo systemctl stop dymd && \ cp $HOME/.dymension/data/priv_validator_state.json $HOME/.dymension/priv_validator_state.json.backup && \ rm -rf $HOME/.dymension/data && \ curl https://storage.crouton.digital/mainnet/dymension/snapshots/dymension_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.dymension && \ mv $HOME/.dymension/priv_validator_state.json.backup $HOME/.dymension/data/priv_validator_state.json && \ sudo systemctl restart dymd && \ sudo journalctl -u dymd -f

State Sync

Restore node from state sync

SNAP_RPC="https://dymension-mainnet-rpc.crouton.digital:443" && \ sudo systemctl stop dymd && \ cp $HOME/.dymension/data/priv_validator_state.json $HOME/.dymension/priv_validator_state.json.backup && \ dymd tendermint unsafe-reset-all --home $HOME/.dymension --keep-addr-book && \ peers="a1e49461ceac0a962498cf77237584bc5446acc6@148.251.53.24:20556" && \ sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.dymension/config/config.toml && \ 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) && \ echo "$LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH" && sleep 2 && \ 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\"| ; s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $HOME/.dymension/config/config.toml && \ mv $HOME/.dymension/priv_validator_state.json.backup $HOME/.dymension/data/priv_validator_state.json && \ sudo systemctl restart dymd && \ sudo journalctl -u dymd -f

Upgrade Node

VER="vv4.0.1" git clone https://github.com/dymensionxyz/dymension.git dymension && \ cd $HOME && \ rm -rf dymension && \ git clone https://github.com/dymensionxyz/dymension.git dymension && \ cd dymension && \ git checkout tags/$VER -b $VER && \ make install && \ sudo systemctl restart dymd && \ sudo journalctl -u dymd -f

Delete Node

sudo systemctl stop dymd && \ sudo systemctl disable dymd && \ sudo rm -rf /etc/systemd/system/dymd.service && \ sudo rm "$(which dymd)" && \ sudo rm -rf "$HOME/.dymension"

Key management

# This command generates a new wallet with a unique keypair. # Use this to create a secure, brand-new wallet for transactions. # Your wallet name = "wallet" dymd keys add wallet

Validator management

dymd tx staking create-validator \ --amount 1000000adym \ --moniker "VALIDATOR_NAME" \ --identity "" \ --website "" \ --details "" \ --from wallet \ --commission-rate 0.1 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.01 \ --min-self-delegation 1 \ --pubkey $(celestia-appd tendermint show-validator) \ --chain-id dymension_1100-1 \ --gas auto \ --gas-adjustment 1.4 \ --gas-prices 0.002adym \ -y

Validator commands

# Retrieves comprehensive information regarding the validator. # This command is utilized to fetch details about the current validator, including its address, public key, and associated data. # Your wallet name = "wallet" dymd q staking validator $(dymd keys show wallet --bech val -a)

Onchain

# Withdraw all accumulated rewards from your account. # This command retrieves and withdraws all rewards earned from staking. # Your wallet name = "wallet" dymd tx distribution withdraw-all-rewards --from wallet --chain-id dymension_1100-1 --gas-adjustment=1.15 --gas auto --gas-prices 0.002adym -y

Chat With Us

Connect directly with our team by filling out the contact form. Whether you’re looking to optimize staking yields, deploy validator nodes, integrate RPC services, or find a reliable validator partner for your blockchain or project — we’re here to help.

We can explore Web3 and blockchain infrastructure solutions together and tailor our support to your long-term goals. Schedule a meeting, and let’s discuss your long-term goals.

Crouton Digital respects your privacy. By submitting this form, you are acknowledging that you have read and agree to our Privacy Policy, which details how we collect and use your information.