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
| Type | Endpoint | Link |
|---|---|---|
| RPC | https://dymension-mainnet-rpc.crouton.digital | |
| API | https://dymension-mainnet-api.crouton.digital | |
| gRPC | dymension-mainnet-grpc.crouton.digital:20590 | |
| peer | [email protected]:20556 |
Hardware requirements
Recommended server specs for a Dymension validator: 64 GB RAM, 8 CPU cores, 1 TB of NVMe storage, and 100 Mbps network bandwidth.
Prepare
Update and install packages
sudo apt update && sudo apt upgrade -y && \ sudo apt install -y curl git wget jq make gcc clang tmux screen htop ncdu unzip tar lz4 bc build-essential pkg-config libssl-dev libleveldb-dev bsdmainutils fail2ban
Installing Go
VER="1.24.1" && \ 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" && \ mkdir -p $HOME/go/bin && \ grep -qxF 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' $HOME/.bash_profile || echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ go version
Binary
Building from source
cd $HOME && \ rm -rf dymension && \ git clone https://github.com/dymensionxyz/dymension.git dymension && \ cd dymension && \ APP_VERSION="v4.0.1" && \ git checkout tags/$APP_VERSION -b $APP_VERSION && \ make install && \ dymd version --long | grep -E 'version|commit' # version: v4.0.1 # commit: e5d4321581e2303773c6c474b5be900fe0bc9bff
Initialization
Initialize the node and create the default configuration files
dymd init MONIKER --chain-id dymension_1100-1
Replace MONIKER with your own validator name. This name will be used as your node’s identifier on the network.
Genesis
Download genesis
mkdir -p $HOME/.dymension/config && \ wget -O $HOME/.dymension/config/genesis.json https://storage.crouton.digital/mainnet/dymension/files/genesis.json
Addrbook
Download addrbook
mkdir -p $HOME/.dymension/config && \ wget -O $HOME/.dymension/config/addrbook.json https://storage.crouton.digital/mainnet/dymension/files/addrbook.json
Configuration
Set the minimum gas price in app.toml
sed -i.bak \ -e 's|^minimum-gas-prices *=.*|minimum-gas-prices = "5000000000adym"|' \ $HOME/.dymension/config/app.toml
Create a service file
sudo tee /etc/systemd/system/dymd.service > /dev/null <<EOF [Unit] Description=dymension node After=network-online.target [Service] User=$USER WorkingDirectory=$HOME/.dymension ExecStart=$(which dymd) start --home $HOME/.dymension Restart=on-failure RestartSec=5 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
Restore node from snapshot
sudo apt install -y lz4 && \ 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 -L https://storage.crouton.digital/mainnet/dymension/snapshots/dymension_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.dymension && \ mkdir -p $HOME/.dymension/data && \ mv $HOME/.dymension/priv_validator_state.json.backup $HOME/.dymension/data/priv_validator_state.json && \ sudo systemctl restart dymd && \ sudo journalctl -u dymd -f -o cat
Key management
Wallet management commands are provided below as examples. Replace wallet with your own wallet name before running them.
dymd keys add wallet
After creating or importing your wallet, fund it with at least the minimum self-delegation amount required to create a validator, plus enough tokens to cover transaction fees. On Dymension, this is at least 1 DYM plus transaction fees.
Validator management
dymd tx staking create-validator \ --amount 1000000000000000000adym \ --from wallet \ --commission-rate 0.1 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.01 \ --min-self-delegation 1 \ --pubkey $(dymd tendermint show-validator) \ --moniker "MONIKER" \ --identity "TESTKEY123" \ --website "https://example.com" \ --details "Reliable validator for the network." \ --chain-id dymension_1100-1 \ --gas auto \ --gas-adjustment 1.5 \ --gas-prices 5000000000adym \ -y
Replace the example values with your own details. If the command fails or the transaction does not go through, try increasing the gas limit or the commission fee.
Validator commands
dymd status 2>&1 | jq
Make sure to replace wallet with the name of your wallet before running the command.
Governance
dymd q gov proposals
"1" is only an example proposal ID, so replace it with the actual one. Available voting options are "yes" to approve, "no" to reject, "abstain" to abstain, and "no_with_veto" to reject with veto.
Onchain
dymd tx distribution withdraw-rewards $(dymd keys show wallet --bech val -a) --commission --from wallet --chain-id dymension_1100-1 --gas auto -y
dymd tx staking delegate $(dymd keys show wallet --bech val -a) 1000000adym --from wallet --chain-id dymension_1100-1 --gas 300000 --fees 2000adym -y
These commands contain example values. Be sure to replace them with your own validator address, wallet name, wallet address, and any other required details before running them.
Service operations
sudo journalctl -u dymd -f -o cat
Manual upgrade
cd $HOME && \ rm -rf dymension && \ git clone https://github.com/dymensionxyz/dymension.git dymension && \ cd dymension && \ APP_VERSION=v4.0.1 && \ git checkout tags/$APP_VERSION -b $APP_VERSION && \ make install && \ sudo systemctl restart dymd && \ sudo journalctl -u dymd -f


