Pell cheat sheet
🔑 Key management
Add new wallet:
pellcored keys add "wallet_name"
Recover Wallet:
pellcored keys add "wallet" --recover
EVM wallet address:
echo "0x$(pellcored debug addr $(pellcored keys show "wallet" -a) | grep hex | awk '{print $3}')"
List all Keys:
pellcored keys list
Delete wallet:
pellcored keys delete "wallet"
Export wallet to file:
pellcored keys export "wallet"
Import wallet:
pellcored keys import "wallet" wallet.backup
Export private key
pellcored keys unsafe-export-eth-key "wallet"
Import Wallet from private key
pellcored keys unsafe-import-eth-key "wallet_name" "privatekey"
Query wallet balance:
pellcored q bank balances $(pellcored keys show "wallet" -a)
👷Validator Management:
Edit Validator:
pellcored tx staking edit-validator \--new-moniker "YOUR_MONIKER_NAME" \--identity "YOUR_KEYBASE_ID" \--details "YOUR_DETAILS" \--website "YOUR_WEBSITE_URL" \--security-contact "YOUR_CONTACT"--chain-id ignite_186-1 \--commission-rate 0.05 \--from wallet \--gas-adjustment 1.5 \--gas auto \--gas-prices 40apell \-y
View Validator details:
pellcored q staking validator $(pellcored keys show "wallet_name" --bech val -a)
Check Validator key
CONSENSUS_PUBKEY=$(pellcored q staking validator pellvaloper1ann5texfvdvtkf7lzqqrdcezg67tx76rrucr03 -oj | jq -r '.validator.consensus_pubkey.value') && \VALIDATOR_PUBKEY=$(pellcored query status 2>&1 | jq -r .validator_info.pub_key.value) && \echo "Validator Public Key: $VALIDATOR_PUBKEY" && \echo "Consensus Public Key: $CONSENSUS_PUBKEY" && \if [ "$VALIDATOR_PUBKEY" = "$CONSENSUS_PUBKEY" ]; then \ echo -e "\nResult: Keys match. Your key status is \e[32mOK\e[0m."; \else \ echo -e "\nResult: Keys do not match. Your key status is \e[31mERROR\e[0m."; \fi
Unjail:
pellcored tx slashing unjail --from "wallet_name" --chain-id ignite_186-1 --gas-adjustment 1.5 --gas auto --gas-prices 33apell -y
💰 Token management:
Send token to another wallet:
pellcored tx bank send "wallet" <TO_WALLET_ADDRESS> 100000ua0gi --from wallet --chain-id ignite_186-1 --gas-adjustment 1.5 --gas auto --gas-prices 33apell -y
Delegate tokens to yourself:
pellcored tx staking delegate $(pellcored keys show "wallet_name" --bech val -a) 1000apell --from "wallet_name" --chain-id ignite_186-1 --gas-adjustment 1.5 --gas auto --gas-prices 33apell -y
Redelegate tokens to another Validator:
pellcored tx staking redelegate $(pellcored keys show "wallet_name" --bech val -a) <TO_VALOPER_ADDRESS> 1000apell --from "wallet_name" --chain-id ignite_186-1 --gas-adjustment 1.5 --gas auto --gas-prices 33apell -y
Withdraw rewards from all Validators:
pellcored tx distribution withdraw-all-rewards --from "wallet_name" --chain-id ignite_186-1 --gas-adjustment 1.5 --gas auto --gas-prices 33apell -y
Withdraw commission & rewards from your validator:
pellcored tx distribution withdraw-rewards $(pellcored keys show "wallet_name" --bech val -a) --commission --from "wallet_name" --chain-id ignite_186-1 --gas-adjustment 1.5 --gas auto --gas-prices 33apell -y
Unbond tokens from your validator:
pellcored tx staking unbond $(pellcored keys show wallet --bech val -a) 100000apell --from wallet --chain-id ignite_186-1 --gas-adjustment 1.5 --gas auto --gas-prices 33apell -y
🗳 Governance:
Query proposal:
pellcored query gov proposals
Vote Yes/No:
pellcored tx gov vote 1 yes/no --from "wallet_name" --chain-id ignite_186-1 --gas-adjustment 1.5 --gas auto --gas-prices 33apell -y
🚨 Maintenance
Get sync status:
pellcored query status 2>&1 | jq
Block sync left:
while true; do local_height=$(pellcored query status | jq -r '.sync_info.latest_block_height'); network_height=$(curl -s https://rpc-pell.j-node.net/status | jq -r '.result.sync_info.latest_block_height') blocks_left=$((network_height - local_height));
echo -e "\033[1;38mYour node height:\033[0m \033[1;34m$local_height\033[0m | \033[1;35mNetwork height:\033[0m \033[1;36m$network_height\033[0m | \033[1;29mBlocks left:\033[0m \033[1;31m$blocks_left\033[0m"; sleep 5;done
Get node peers:
echo $(pellcored tendermint show-node-id)'@'$(curl -s ipv4.icanhazip.com)':'$(cat $HOME/.pellcored/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Fetch RPC port:
RPC="http://$(wget -qO- eth0.me)$(grep -A 3 "\[rpc\]" $HOME/.pellcored/config/config.toml | egrep -o ":[0-9]+")" && echo $RPCcurl $RPC/status | jq
Retrieving Node ID and Server IP Address Configuration:
Your node:
echo $(pellcored tendermint show-node-id)'@'$(curl -s ipv4.icanhazip.com)':'$(cat $HOME/.pellcored/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
From RPC other node:
curl -s https://rpc-pell.j-node.net/net_info | jq -r '.result.peers[] | select(.node_info.listen_addr | test("^tcp://0.0.0.0") | not) | "\(.node_info.id)@\(.node_info.listen_addr)"'
Remove node:
Please, before proceeding with the next step! All chain data will be lost! Make sure you have backed up your priv_validator_key.json
!
cd $HOMEsudo systemctl stop pellcoredsudo systemctl disable pellcoredsudo rm /etc/systemd/system/pellcored.servicesudo systemctl daemon-reloadsudo rm -f $(which pellcored)sudo rm -rf $HOME/.pellcored
⚙️ Service Management:
Reload service:
sudo systemctl daemon-reload
Enable service:
sudo systemctl enable pellcored
Disable service:
sudo systemctl disable pellcored
Start service:
sudo systemctl start pellcored
Stop service:
sudo systemctl stop pellcored
Restart service:
sudo systemctl restart pellcored
Check service logs:
sudo journalctl -u pellcored -f --no-hostname -o cat