CLI Cheatsheet
Key management
Add new key
prysmd keys add wallet
Recover existing key
prysmd keys add wallet --recover
List all keys
prysmd keys list
Delete key
prysmd keys delete wallet
Export key to the file
prysmd keys export wallet
Import key from the file
prysmd keys import wallet wallet.backup
Wallet balance
prysmd q bank balances $(prysmd keys show wallet -a)
Token management
Withdraw rewards from all validators
prysmd tx distribution withdraw-all-rewards --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Withdraw rewards and commissions from your validator
prysmd tx distribution withdraw-rewards $(prysmd keys show wallet --bech val -a) --commission --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Delegate tokens to yourself
prysmd tx staking delegate $(prysmd keys show wallet --bech val -a) 1000000uprysm --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Delegate tokens to validator
prysmd tx staking delegate <TO_VALOPER_ADDRESS> 1000000uprysm --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Redelegate tokens to another validator
prysmd tx staking redelegate $(prysmd keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000uprysm --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Unbond tokens from your validator
prysmd tx staking unbond $(prysmd keys show wallet --bech val -a) 1000000uprysm --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Send tokens to the wallet
prysmd tx bank send wallet <TO_WALLET_ADDRESS> 1000000uprysm --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Validator management
Validator info
prysmd status 2>&1 | jq .validator_info
Validator details
prysmd q staking validator $(prysmd keys show wallet --bech val -a)
Check if validator key is correct
[[ $(prysmd q staking validator $(prysmd keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(prysmd status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"
List all active validators
prysmd q staking validators -oj --limit=1000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
List all inactive validators
prysmd q staking validators -oj --limit=1000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
Edit existing validator
prysmd tx staking edit-validator \ --new-moniker "YOUR_MONIKER_NAME" \ --identity "YOUR_KEYBASE_ID" \ --details "YOUR_DETAILS" \ --website "YOUR_WEBSITE_URL" \ --security-contact "YOUR_EMAIL_ADDRESS" \ --chain-id prysm-devnet-1 \ --commission-rate 0.05 \ --from wallet \ --gas-adjustment 1.4 \ --gas auto \ --gas-prices 0.0uprysm \ -y
Jail reason
prysmd query slashing signing-info $(prysmd tendermint show-validator)
Unjail validator
prysmd tx slashing unjail --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Governance
Create a new offer
prysmd tx gov submit-proposal \ --title "" \ --description "" \ --deposit 10000000uentry \ --type Text --from wallet \ --gas-adjustment 1.4 \ --gas auto \ --gas-prices 0.0uprysm \ -y
List all proposals
prysmd query gov proposals
View proposal by ID
prysmd query gov proposal 1
Vote “YES”
prysmd tx gov vote 1 yes --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Vote “NO”
prysmd tx gov vote 1 no --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Vote “ABSTAIN”
prysmd tx gov vote 1 abstain --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Vote “NOWITHVETO”
prysmd tx gov vote 1 NoWithVeto --from wallet --chain-id prysm-devnet-1 --fees 500uprysm -y
Maintenance
Get sync info
prysmd status 2>&1 | jq .sync_info
Get node peer
echo $(prysmd tendermint show-node-id)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.prysm/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Get live peers
curl -sS http://localhost:12957/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
Enable Prometheus
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.prysm/config/config.toml
Set minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.0uprysm\"|" $HOME/.prysm/config/app.toml
Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.prysm/config/config.toml
Enable indexer
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.prysm/config/config.toml
Update pruning
sed -i -e 's|^pruning *=.*|pruning = "custom"|' $HOME/.prysm/config/app.tomlsed -i -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' $HOME/.prysm/config/app.tomlsed -i -e 's|^pruning-interval *=.*|pruning-interval = "19"|' $HOME/.prysm/config/app.toml
Filter peers and max peers
sed -i -e 's|^filter_peers *=.*|filter_peers = "true"|' $HOME/.prysm/config/config.tomlsed -i -e 's|^max_num_inbound_peers *=.*|max_num_inbound_peers = "50"|' $HOME/.prysm/config/config.tomlsed -i -e 's|^max_num_outbound_peers *=.*|max_num_outbound_peers = "20"|' $HOME/.prysm/config/config.toml
Update ports
CUSTOM_PORT=129sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}58\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}57\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}60\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}56\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}66\"%" $HOME/.prysm/config/config.tomlsed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}17\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}80\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}90\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}91\"%" $HOME/.prysm/config/app.toml
Reset chain data
prysmd tendermint unsafe-reset-all --keep-addr-book --home $HOME/.prysm
Delete node
sudo systemctl stop prysmdsudo systemctl disable prysmdsudo rm -rf /etc/systemd/system/prysmd.servicesudo systemctl daemon-reloadsudo rm -f $(which prysmd)sudo rm -rf $HOME/.prysmsudo rm -rf $HOME/prysm
Service Management
Status service
sudo systemctl status prysmd
Start service
sudo systemctl start prysmd
Stop service
sudo systemctl stop prysmd
Restart service
sudo systemctl restart prysmd
Logs service
sudo journalctl -u prysmd -f --no-hostname -o cat
Reload service
sudo systemctl daemon-reload
Enable service
sudo systemctl enable prysmd
Disable service
sudo systemctl disable prysmd