Prerequisites#
Git – For cloning repositories
Docker (20.10+) – For running containers
Docker Compose (1.29+) – For managing multi-container setups
Drive – For running and managing QOM nodes
⚠️ QOM nodes are designed for Linux machines or servers (VPS) environments. macOS and Windows are not officially supported. Validator nodes are expected to run 24/7.
Before proceeding, follow the Drive Quick Start Guide (Until Step 1: Clone the Repository):
👉 Drive Quick Start Guide
Step 1️⃣ Navigate to the QOM Service Directory#
cd ~/drive/services/node3-qom
Available Services:
node0-infinite/– Infinite Mainnet Nodenode1-infinite-testnet/– Infinite Testnet Nodenode2-infinite-creative/– Infinite Creative Network Nodenode3-qom/– QOM Network Node
Step 2️⃣ Start Containers#
./drive.sh up -d
./drive.sh ps
If the container shows “UP,” it’s working.
Step 3️⃣ Initialize the Validator via GUI#
Open GUI:
./drive.sh exec qom node-ui
⚠️ Important: Follow the steps in the exact order below.#
(If you already have your mnemonic prepared, start from step 3.)
From the main menu, go to “1 Key Management → 1 Generate Key (Dru-Run – Recommended)”.
Create a new key:
Enter a key name (for example,
validator).The system will display your mnemonic phrase (24 words).
⚠️ Important: Write down the mnemonic immediately and store it securely.
This mnemonic is the only way to recover your validator key.
Go to “Main Menu → 2 Node Operations → 4 Advanced Operations → 2 Initialize with Recovery (Validator)”.
When prompted, enter the moniker.
Follow the on-screen instructions to “Press Enter”.
Then enter your mnemonic phrase (24 words) and press enter key.
After initialization is complete, return to the Main Menu, select “0 Exit”, and close the GUI.
Step 4️⃣ Configure State Sync#
After initializing the node, the necessary files will be created. Edit the file to configure for State Sync. Since completing node sync is a prerequisite for registering as a validator, it is recommended to apply this configuration and catch up to the latest block. If you do not perform State Sync, node sync may take several days to several weeks.
cd ~/drive/services/node3-qom/persistent-data/config
nano config.toml
Edit config.toml as below:
#######################################################
### State Sync Configuration Options ###
#######################################################
[statesync]
.
.
.
enable = true
.
.
.
rpc_servers = "rpc.foxxone.one:443,138.201.133.24:26657,51.38.37.230:26687"
trust_height = 8401000
trust_hash = "3A0F8E792BB1D3AA0636F346FD3ED93F94E70CA624D697C50F67BA5BFCFB6FED"
trust_period = "112h0m0s"
Replace the latest values of
trust heightandtrust hash. Please get them from Ping Dashboard
Restart the container:
./drive.sh down
./drive.sh up -d
Step 5️⃣ Start Node and Verify#
Open GUI and start node
./drive.sh exec qom node-ui
Start node → 2 Node Operations → 2 Start Node
Then, check the status: “3 Node Monitoring → 4 Node Status(RPC)”
"catching_up": false
If false, node is synced.
If State Sync is enabled, sync to the latest block will complete in about 2–3 minutes. If sync does not complete, please check the logs using the “2 View Logs (Last 50 lines)” or “3 Follow Logs (Real-time)” options.
Step 6️⃣ Send QOM to Wallet#
Add Account to Keyring#
Go to “1 Key Management → 3 Add Existing Key From Seed Phrase.”
Give your key a name (for example,
validator). ⚠️ You will use this name later.Set a passphrase for the keyring.
Restore the key using the mnemonic phrase that you generated for your validator account in
Step 3️⃣.Enter the keyring passphrase again when prompted.
Copy and keep the displayed wallet address (
qom1xxxx....) for later use.
Add Funds to Your Wallet#
Convert bech32 address to EVM-style: Bech32 Wallet Address Prefix Converter
Then send QOM to EVM-style 0x... address. (⚠️It is highly recommended to first test with a small amount.)
Step 7️⃣ Submit Validator Transaction#
Check Balance from your node#
docker exec -it qom \
/home/ubuntu/bin/qomd q bank balances qom1xxx... \
--home /home/ubuntu/.qomd
Replace
qom1xxx...with your own wallet address.
Check that the funds you recently transferred have arrived in your wallet.
The balance is displayed in units ofaqom.
1 QOM = 1 × 10¹⁸ aqom
Submit Create-validator Transaction#
docker exec -it qom bash -lc '
/home/ubuntu/bin/qomd tx staking create-validator \
--amount=1000000000000000000aqom \
--pubkey="$(
/home/ubuntu/bin/qomd tendermint show-validator --home /home/ubuntu/.qomd
)" \
--moniker="Your moniker here" \
--chain-id=qom_766-1 \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--gas="auto" \
--gas-adjustment=1.2 \
--from="validator" \
--fees=10000000aqom \
--keyring-backend=file \
--home=/home/ubuntu/.qomd
'
Example:
The command above sends a transaction to stake 1 QOM.
--amount=1000000000000000000aqom \
1QOM = 1 × 10¹⁸ aqom
--moniker="Your moniker here" \
The moniker is your chosen nickname.
--from="validator" \
Use the same key name that you created and named in Step 6️⃣.
Replace these values with your own settings — such as your desired moniker and the amount you wish to stake. Also, make sure to send a slightly larger balance to your wallet beforehand to cover the gas fees required for this transaction.
🔍 Validation Checks#
# Check your own validator information
# (Replace qomvaloper1xxxxx... with your actual validator address)
docker exec -it qom /home/ubuntu/bin/qomd q staking validator qomvaloper1xxxxxx.... --home /home/ubuntu/.qomd
# Verify that your validator appears in the validator list
docker exec -it qom /home/ubuntu/bin/qomd q staking validators --home /home/ubuntu/.qomd
# Check validator status (Bonded / Unbonding / Unbonded)
# Replace "moniker" with your own moniker
docker exec -it qom /home/ubuntu/bin/qomd q staking validators | grep -A 6 moniker
⚙️ Common Commands#
# Add delegation (increase self-stake)
docker exec -it qom /home/ubuntu/bin/qomd tx staking delegate qomvaloper1xxxx 1000000000000000000aqom \
--from validator --keyring-backend file --home /home/ubuntu/.qomd --chain-id qom_766-1 \
--gas auto --gas-adjustment 1.5 --fees 7000000aqom -y
# Check rewards
docker exec -it qom /home/ubuntu/bin/qomd q distribution rewards qom1xxxx.... \
--home /home/ubuntu/.qomd
# Withdraw rewards
docker exec -it qom /home/ubuntu/bin/qomd tx distribution withdraw-rewards qomvaloper1xxxx... \
--from validator --commission --home /home/ubuntu/.qomd --chain-id qom_766-1 --fees 1000000aqom -y
Delegation Example#
Find target validator: Example: find “deep thought” validator’s valoper address
docker exec -it qom bash -lc '
/home/ubuntu/bin/qomd q staking validators -o json --home /home/ubuntu/.qomd | jq -r ".validators[] | select(.description.moniker | test(\"deep thought\"; \"i\")) | {moniker: .description.moniker, valoper: .operator_address}"
'
For example, if you want to delegate 10 QOM to another validator such as qomvaloper1abcdxyz..., use the following command as a reference:
docker exec -it qom \
/home/ubuntu/bin/qomd tx staking delegate qomvaloper1abcdxyz... 10000000000000000000aqom \
--from validator \
--keyring-backend file \
--home /home/ubuntu/.qomd \
--chain-id qom_766-1 \
--fees 7000000aqom \
-y


