Skip to content

Lumen Cheat Sheet and Key Management ​

This guide provides essential commands for managing wallets, nodes, and validators on the Lumen network. Make sure the environment variables mentioned at the end are correctly configured before using these commands.

Set Environment Variables ​

Configuration:

Generated Code:

Loading...

1. Key Management ​

Create a New Wallet ​

bash
lumend keys add $WALLET

Keep the generated seed phrase safe. It is the only way to recover your wallet.

Recover Wallet from Seed Phrase ​

bash
lumend keys add $WALLET --recover

You will be prompted to enter your seed phrase.

List Wallets ​

bash
lumend keys list

Show Wallet Details ​

bash
lumend keys show $WALLET

Delete Wallet ​

bash
lumend keys delete $WALLET

2. PQC Key Management (Dilithium - Quantum-Resistant) ​

Lumen requires a Dilithium PQC key for all transactions (dual-sign with ed25519).
Warning: Losing either key (ed25519 or PQC) = permanent loss of funds/validator power.
Always backup hex values and keystore immediately.

Generate PQC Wallet ​

bash
lumend keys pqc-generate $PQC_WALLET

Output includes: Public (Hex) and Private (Hex)

Immediately copy and backup both hex values securely (offline, encrypted, multiple locations). These are your master keys for PQC signing.

Import PQC Hex ​

bash
cat > ~/pqc_public_hex.txt << 'EOF'
PASTE_PUBLIC_KEY_HEX_HERE
EOF
bash
cat > ~/pqc_private_hex.txt << 'EOF'
PASTE_PRIVATE_KEY_HEX_HERE
EOF

Import PQC Wallet ​

bash
lumend keys pqc-import \
  --name $PQC_WALLET \
  --privkey "$(cat ~/pqc_private_hex.txt)" \
  --pubkey "$(cat ~/pqc_public_hex.txt)" \
  --scheme dilithium3

Optional: Add --pqc-passphrase "strong-passphrase" for encryption.

bash
lumend keys pqc-link \
  --from $WALLET \
  --pqc $PQC_WALLET \

Enter keyring passphrase when prompted.

Verify PQC Setup ​

bash
lumend keys pqc-list                # List PQC keys & linked wallets
lumend keys pqc-show $PQC_WALLET    # Show details of one PQC key
bash
shred -u ~/pqc_private_hex.txt ~/pqc_public_hex.txt

Never leave hex files on disk! Backup hex offline first.

Requirement: Wallet must have ≥ 0.001 LMN (1000 ulmn) to execute this tx.
This is a DAO-governed parameter (dilithium3 min) and may change via governance.

bash
lumend tx pqc link-account \
  --from $WALLET \
  --pubkey "$(lumend keys pqc-show $PQC_WALLET | grep 'PubKey (hex)' | sed 's/.*: *//')" \
  --scheme dilithium3 \
  --chain-id $LUMEN_CHAIN_ID \
  --gas auto \
  --gas-prices 0ulmn \
  --node https://lumen-rpc.linknode.org \
  --yes

Verify PQC Wallet on-chain ​

bash
lumend query pqc account $(lumend keys show $WALLET -a) --node https://lumen-rpc.linknode.org

3. Wallet Operations ​

Check Balance ​

bash
lumend query bank balances $(lumend keys show $WALLET -a)

Send Tokens ​

bash
lumend tx bank send $(lumend keys show $WALLET -a) <receiver_wallet_address> <amount><denom> --chain-id $LUMEN_CHAIN_ID --gas-prices 0ulmn --gas-adjustment 1.5 --gas auto -y

Example:

bash
lumend tx bank send $(lumend keys show $WALLET -a) lmn1...yyy 1000000ulmn --chain-id $LUMEN_CHAIN_ID --gas-prices 0ulmn --gas-adjustment 1.5 --gas auto -y

Replace <amount> with the number of tokens and <denom> with the token denomination (e.g., ulmn).

Check tx hash ​

bash
lumend query tx <hash> --node https://lumen-rpc.linknode.org

You need indexer RPC to query tx status.

4. Node Management ​

Before running, ensure:

  • Node is fully synced (lumend status → catching_up: false)
  • Wallet has enough ulmn for self-delegation
  • PQC is registered on-chain, see here

Create Validator ​

Configuration:

Generated Code:

Loading...
Parameter Explanation:
ParameterDetails
--amountTokens self-delegated to the validator. 1000000ulmn = 1 LMN
--fromWallet used for the transaction.
--commission-rateInitial commission rate.
--commission-max-rateMaximum allowed commission rate.
--commission-max-change-rateMax daily commission change.
--min-self-delegationMinimum tokens for self-delegation.
--pubkeyValidator's public key.
--monikerValidator nickname.
--identityKeybase ID for identity verification.
--websiteValidator's website URL.
--detailsValidator description.
--security-contactEmail for security-related contact.

Edit Validator ​

bash
lumend tx staking edit-validator \
--moniker "<new_moniker>" \
--identity "<new_keybase_id>" \
--website "<new_website>" \
--security-contact "<new_contact_email>" \
--details "<new_description>" \
--commission-rate "<new_commission_rate>" \
--chain-id $LUMEN_CHAIN_ID \
--gas-prices 0ulmn \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Delegate Tokens ​

bash
lumend tx staking delegate $(lumend keys show $WALLET --bech val -a) <amount>ulmn \
--chain-id $LUMEN_CHAIN_ID \
--gas-prices 0ulmn \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Withdraw Rewards (Delegator) ​

bash
lumend tx distribution withdraw-rewards $(lumend keys show $WALLET --bech val -a) \
--chain-id $LUMEN_CHAIN_ID \
--gas-prices 0ulmn \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Withdraw Rewards (Validator Commission) ​

bash
lumend tx distribution withdraw-rewards $(lumend keys show $WALLET --bech val -a) --commission \
--chain-id $LUMEN_CHAIN_ID \
--gas-prices 0ulmn \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Unbond Tokens ​

bash
lumend tx staking unbond $(lumend keys show $WALLET --bech val -a) <amount>ulmn \
--chain-id $LUMEN_CHAIN_ID \
--gas-prices 0ulmn \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Redelegate Tokens ​

bash
lumend tx staking redelegate $(lumend keys show $WALLET --bech val -a) <destination_validator_address> <amount>ulmn \
--chain-id $LUMEN_CHAIN_ID \
--gas-prices 0ulmn \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Validator Recovery (Unjail) ​

If your validator is jailed (e.g., due to downtime):

bash
lumend tx slashing unjail \
  --from $WALLET \
  --chain-id $LUMEN_CHAIN_ID \
  --gas auto \
  --gas-prices 0ulmn \
  --node https://lumen-rpc.linknode.org \
  --yes

5. Node Status & Info ​

Check Sync Status ​

bash
lumend status 2>&1 | jq .result.sync_info

Check Peer Info ​

bash
lumend status 2>&1 | jq .result.sync_info.catching_up
lumend status 2>&1 | jq .result.node_info.listen_addr

Show Node ID ​

bash
lumend tendermint show-node-id

Restart Node ​

bash
sudo systemctl restart lumend

View Node Logs ​

bash
sudo journalctl -u lumend -fo cat

6. Governance ​

List Proposals ​

bash
lumend query gov proposals

View Proposal Details ​

bash
lumend query gov proposal <proposal_id>

Vote on Proposal ​

bash
lumend tx gov vote <proposal_id> <yes|no|no_with_veto|abstain> \
--chain-id $LUMEN_CHAIN_ID \
--gas-prices 0ulmn \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

7. Environment Variables ​

Make sure to set these in your ~/.bash_profile or equivalent shell config:

bash
export WALLET="wallet"
export MONIKER="YourMoniker"
export LUMEN_CHAIN_ID="lumen"
export LUMEN_PORT="13"

Apply the changes with:

bash
source ~/.bash_profile

This cheat sheet is provided to streamline Lumen validator and wallet management.