Run a dungeon-1 Validator
This runbook takes a fresh Linux host to a state-synced full node and then to a registered validator. It was checked against the live chain on August 8, 2026.
Release gate: dungeon-1 is currently running dungeond v8.0.0. The on-chain plan schedules v9 at height
19,252,800. Install v8 as the current binary and stage the published v9 binary under Cosmovisor before starting. Do not run v9 early.
1. Verified network baseline
| Field | Live value |
|---|---|
| Chain ID | dungeon-1 |
| Native token | udgn (display: DGN) |
| Active binary | dungeond v8.0.0 |
| Cosmos SDK | v0.53.6 |
| CometBFT dependency | v0.38.21 |
| Applied v8 height | 17,100,000 |
| Scheduled plan | v9 at height 19,252,800 |
| Public RPC | https://rpc.dungeongames.io:443 |
| Default ports | P2P 26656, RPC 26657, gRPC 9090, API 1317 |
Before installation, confirm the public RPC still reports the expected network and software plan:
RPC="https://rpc.dungeongames.io:443"
curl -fsSL "$RPC/status" | jq '.result.node_info.network, .result.sync_info.latest_block_height'
The network must be dungeon-1. If the chain has passed the scheduled v9 height, stop and use the release selected by the live upgrade state rather than this dated baseline.
2. Host requirements
- Linux x86_64; Ubuntu 22.04 LTS is the tested baseline
- 8 CPU / 16 GB RAM minimum; 32 GB RAM recommended
- 500 GB or larger NVMe SSD
curl,jq,tar, andsha256sum- A dedicated unprivileged service account
Keep the validator key and account key out of shell history, backups, and chat. A sentry/full-node topology is preferable when operating meaningful stake.
3. Install the active v8 binary
Use the published Dungeon v8.0.0 release. Verify the archive before installing it.
mkdir -p ~/dungeond-releases/v8 && cd ~/dungeond-releases/v8
curl -fLO https://github.com/Crypto-Dungeon/dungeonchain/releases/download/v8.0.0/dungeond-v8.0.0-linux-amd64.tar.gz
echo "ee64e0f1b5e4fcdf62bc015db8e3a523a803930f0104e393f41ec9e5e942ece1 dungeond-v8.0.0-linux-amd64.tar.gz" | sha256sum -c
tar -xzf dungeond-v8.0.0-linux-amd64.tar.gz
chmod 0755 dungeond
./dungeond version --long | grep -E '^(version|cosmos_sdk_version|commit):'
Expected active version: 8.0.0, Cosmos SDK v0.53.6. Do not continue if the checksum or version differs.
4. Initialize the node
MONIKER="your-moniker"
HOME_DIR="$HOME/.dungeonchain"
./dungeond init "$MONIKER" --chain-id dungeon-1 --home "$HOME_DIR"
curl -fsSL https://play.dungeongames.io/snapshots/dungeon-1-genesis.json \
-o "$HOME_DIR/config/genesis.json"
echo "ef1bf7b761fddb15284b8fd45817de94e3ad30bf9460c5acd82c71268511a2e6 $HOME_DIR/config/genesis.json" | sha256sum -c
The genesis checksum is a hard gate. If it fails, delete the downloaded file and stop.
5. Configure state sync
Dungeon publishes a bootstrap script that derives a fresh trust height and hash from the public RPC and configures the current seed set. Download it, inspect it, then run it. The script changes config.toml; it does not install or select a binary.
curl -fsSL https://play.dungeongames.io/snapshots/dungeon-1-statesync.sh \
-o /tmp/dungeon-1-statesync.sh
less /tmp/dungeon-1-statesync.sh
DAEMON_HOME="$HOME/.dungeonchain" bash /tmp/dungeon-1-statesync.sh
After it runs, verify that state sync is enabled and that the trust height and hash are populated:
grep -A10 '^\[statesync\]' "$HOME/.dungeonchain/config/config.toml"
grep '^seeds =' "$HOME/.dungeonchain/config/config.toml"
Never reuse an old trust point from a copied guide. If state sync stalls because peers have rolled past it, stop the node, reset the data directory, and rerun the script to derive a fresh point.
6. Configure gas and pruning
In ~/.dungeonchain/config/app.toml:
minimum-gas-prices = "0udgn"
pruning = "custom"
pruning-keep-recent = "100"
pruning-interval = "10"
The live Dungeon node currently uses 0udgn as its local minimum gas price. Operators may choose a higher local admission floor, but should understand that it changes which transactions their node accepts into its own mempool.
7. Configure Cosmovisor and stage v9
Install Cosmovisor and place v8 in the current slot:
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest
mkdir -p "$HOME/.dungeonchain/cosmovisor/upgrades/v8/bin"
cp ~/dungeond-releases/v8/dungeond "$HOME/.dungeonchain/cosmovisor/upgrades/v8/bin/dungeond"
ln -sfn "$HOME/.dungeonchain/cosmovisor/upgrades/v8" "$HOME/.dungeonchain/cosmovisor/current"
Then stage the published v9.0.0 release. The on-chain plan and release both identify this exact static binary and checksum:
mkdir -p "$HOME/.dungeonchain/cosmovisor/upgrades/v9/bin"
curl -fsSL https://github.com/Crypto-Dungeon/dungeonchain/releases/download/v9.0.0/dungeond \
-o "$HOME/.dungeonchain/cosmovisor/upgrades/v9/bin/dungeond"
echo "aa1a32201d4bfc3161130759c309d9e3314936314c8a87b7313110d3d6dc190c $HOME/.dungeonchain/cosmovisor/upgrades/v9/bin/dungeond" | sha256sum -c
chmod 0755 "$HOME/.dungeonchain/cosmovisor/upgrades/v9/bin/dungeond"
"$HOME/.dungeonchain/cosmovisor/upgrades/v9/bin/dungeond" version --long | grep -E '^(version|cosmos_sdk_version|commit):'
Expected staged version: 9.0.0, Cosmos SDK v0.53.7. The v9 release is statically linked and does not require an external libwasmvm at runtime.
Do not point cosmovisor/current at v9. Cosmovisor selects upgrades/v9/bin/dungeond when the on-chain plan reaches its upgrade height.
8. Install the systemd unit
Create /etc/systemd/system/dungeond.service:
[Unit]
Description=dungeon-1 node (Cosmovisor)
After=network-online.target
[Service]
User=YOUR_USER
ExecStart=/home/YOUR_USER/go/bin/cosmovisor run start --home /home/YOUR_USER/.dungeonchain
Restart=always
RestartSec=3
LimitNOFILE=65535
Environment="DAEMON_NAME=dungeond"
Environment="DAEMON_HOME=/home/YOUR_USER/.dungeonchain"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
[Install]
WantedBy=multi-user.target
Replace YOUR_USER with the actual unprivileged service account, then:
sudo systemctl daemon-reload
sudo systemctl enable --now dungeond
sudo journalctl -u dungeond -f
DAEMON_ALLOW_DOWNLOAD_BINARIES=false is intentional: the operator verifies and stages every binary before the upgrade.
9. Verify synchronization
dungeond status --home "$HOME/.dungeonchain" | jq '.sync_info'
Do not create a validator until all of these are true:
networkisdungeon-1catching_upisfalse- local height is advancing with the public RPC
- the node has stable peers
- v9 is staged and its checksum passed
Compare local and public height:
LOCAL=$(dungeond status --home "$HOME/.dungeonchain" | jq -r '.sync_info.latest_block_height')
PUBLIC=$(curl -fsSL https://rpc.dungeongames.io/status | jq -r '.result.sync_info.latest_block_height')
printf 'local=%s public=%s\n' "$LOCAL" "$PUBLIC"
10. Create the validator transaction
The active SDK requires a JSON document for create-validator; the retired flag-only form is not valid.
dungeond keys add validator --home "$HOME/.dungeonchain"
PUBKEY=$(dungeond tendermint show-validator --home "$HOME/.dungeonchain")
jq -n \
--argjson pubkey "$PUBKEY" \
--arg moniker "$MONIKER" \
'{
pubkey: $pubkey,
amount: "1000000udgn",
moniker: $moniker,
identity: "",
website: "",
security: "",
details: "",
"commission-rate": "0.05",
"commission-max-rate": "0.20",
"commission-max-change-rate": "0.01",
"min-self-delegation": "1"
}' > "$HOME/validator.json"
cat "$HOME/validator.json" | jq .
Fund the operator account, verify the JSON and commission terms, then simulate before broadcasting:
dungeond tx staking create-validator "$HOME/validator.json" \
--from validator \
--chain-id dungeon-1 \
--home "$HOME/.dungeonchain" \
--gas auto --gas-adjustment 1.5 --fees 5000udgn \
--dry-run
Remove --dry-run only after reviewing the simulation and account address. Do not add -y until the final transaction has been manually reviewed.
11. Post-registration checks
After broadcast, save the transaction hash and verify the chain record:
dungeond query tx YOUR_TX_HASH --node https://rpc.dungeongames.io:443
dungeond query staking validators --node https://rpc.dungeongames.io:443 -o json \
| jq '.validators[] | select(.description.moniker == "YOUR_MONIKER")'
Then monitor:
- missed blocks and signing status
- jailed state
- peer count and height drift
- disk growth
- Cosmovisor upgrade readiness
- validator commission after v9 activates its 5% minimum floor
Support
When requesting help, share the chain ID, binary version --long, latest local height, catching_up, and the exact error. Never share seed phrases, private validator keys, or private peer addresses.

