Lumen Logo

Lumen

Active

The first quantum-resistant blockchain in the Cosmos ecosystem, featuring dual-signature (ed25519 + Dilithium PQC) for future-proof security.

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 Command

echo "export WALLET="wallet"" >> $HOME/.bash_profile
echo "export PQC_WALLET=""" >> $HOME/.bash_profile
echo "export LUMEN_CHAIN_ID="lumen"" >> $HOME/.bash_profile
source $HOME/.bash_profile

1. Key Management

Create a New Wallet

lumend keys add $WALLET

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

Recover Wallet from Seed Phrase

lumend keys add $WALLET --recover

You will be prompted to enter your seed phrase.

List Wallets

lumend keys list

Show Wallet Details

lumend keys show $WALLET

Delete Wallet

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

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

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

Import PQC Wallet

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.

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

Enter keyring passphrase when prompted.

Verify PQC Setup

lumend keys pqc-list                # List PQC keys & linked wallets
lumend keys pqc-show $PQC_WALLET    # Show details of one PQC key
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.

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

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

3. Wallet Operations

Check Balance

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

Send Tokens

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:
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

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 statuscatching_up: false)
  • Wallet has enough ulmn for self-delegation
  • PQC is registered on-chain, see here

Create Validator

Configuration

Generated Command

cat > $HOME/.lumen/validator.json << EOF
{
  "pubkey": $(lumend tendermint show-validator),
  "amount": "1000000ulmn",
  "moniker": "",
  "identity": "",
  "website": "",
  "security_contact": "",
  "details": "🚀 Built by node runners.",
  "commission-rate": "0.1",
  "commission-max-rate": "0.20",
  "commission-max-change-rate": "0.01",
  "min-self-delegation": "1"
}
EOF

lumend tx staking create-validator validator.json \
  --from $WALLET \
  --chain-id $LUMEN_CHAIN_ID \
  --gas auto \
  --gas-adjustment 1.5 \
  --gas-prices 0ulmn \
  --node https://lumen-rpc.linknode.org \
  --yes
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

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

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)

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)

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

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

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):

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

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

Check Peer Info

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

Show Node ID

lumend tendermint show-node-id

Restart Node

sudo systemctl restart lumend

View Node Logs

sudo journalctl -u lumend -fo cat

6. Governance

List Proposals

lumend query gov proposals

View Proposal Details

lumend query gov proposal <proposal_id>

Vote on Proposal

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:

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

Apply the changes with:

source ~/.bash_profile

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