Push Testnet Logo

Push Testnet

Active

Push Chain is a shared-state blockchain that eliminates fragmentation and makes apps universal.

Push Chain Cheat Sheet and Key Management

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

1. Key Management

Create a New Wallet

pchaind keys add $WALLET

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

Recover Wallet from Seed Phrase

pchaind keys add $WALLET --recover

You will be prompted to enter your seed phrase.

List Wallets

pchaind keys list

Show Wallet Details

pchaind keys show $WALLET

Delete Wallet

pchaind keys delete $WALLET

2. Wallet Operations

Check Balance

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

Send Tokens

pchaind tx bank send $(pchaind keys show $WALLET -a) <receiver_wallet_address> <amount><denom> --chain-id $PUSH_CHAIN_ID --gas-prices 1000000000upc --gas-adjustment 1.5 --gas auto -y

Example:

pchaind tx bank send $(pchaind keys show $WALLET -a) push1...yyy 1000000upc --chain-id $PUSH_CHAIN_ID --gas-prices 1000000000upc --gas-adjustment 1.5 --gas auto -y

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

3. Validator Management

Ensure you have enough upc tokens for self-delegation and transaction fees before creating a validator.

Create Validator

Configuration

Generated Command

pchaind tendermint show-validator > $HOME/.pchain/validator_pubkey.json
cat <<EOF > $HOME/.pchain/validator.json
{
  "pubkey": $(cat $HOME/.pchain/validator_pubkey.json),
  "amount": "1000000000000000000upc",
  "moniker": "",
  "identity": "",
  "website": "",
  "security": "",
  "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
pchaind tx staking create-validator $HOME/.pchain/validator.json \
  --from=$WALLET \
  --chain-id=push_42101-1 \
  --gas=auto \
  --gas-prices=1000000000upc \
  --gas-adjustment=1.4 \
  --home ~/.pchain \
  -y
Parameter Explanation:
ParameterDetails
--amountTokens self-delegated to the validator. 1000000000000000000upc = 1 PC
--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

pchaind tx staking edit-validator \
--moniker "$MONIKER" \
--identity "<new_keybase_id>" \
--website "<new_website>" \
--security-contact "<new_contact_email>" \
--details "<new_description>" \
--commission-rate "0.07" \
--chain-id $PUSH_CHAIN_ID \
--gas-prices 1000000000upc \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Delegate Tokens

pchaind tx staking delegate $(pchaind keys show $WALLET --bech val -a) <amount>upc \
--chain-id $PUSH_CHAIN_ID \
--gas-prices 1000000000upc \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Withdraw Rewards (Delegator)

pchaind tx distribution withdraw-rewards $(pchaind keys show $WALLET --bech val -a) \
--chain-id $PUSH_CHAIN_ID \
--gas-prices 1000000000upc \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Withdraw Rewards (Validator Commission)

pchaind tx distribution withdraw-rewards $(pchaind keys show $WALLET --bech val -a) --commission \
--chain-id $PUSH_CHAIN_ID \
--gas-prices 1000000000upc \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Unbond Tokens

pchaind tx staking unbond $(pchaind keys show $WALLET --bech val -a) <amount>upc \
--chain-id $PUSH_CHAIN_ID \
--gas-prices 1000000000upc \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Redelegate Tokens

pchaind tx staking redelegate $(pchaind keys show $WALLET --bech val -a) <destination_validator_address> <amount>upc \
--chain-id $PUSH_CHAIN_ID \
--gas-prices 1000000000upc \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

4. Node Status & Info

Check Sync Status

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

Check Peer Info

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

Show Node ID

pchaind tendermint show-node-id

Restart Node

sudo systemctl restart pchaind

View Node Logs

sudo journalctl -u pchaind -fo cat

5. Governance

List Proposals

pchaind query gov proposals

View Proposal Details

pchaind query gov proposal <proposal_id>

Vote on Proposal

pchaind tx gov vote <proposal_id> <yes|no|no_with_veto|abstain> \
--chain-id $PUSH_CHAIN_ID \
--gas-prices 1000000000upc \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

6. Environment Variables

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

export WALLET="wallet"
export MONIKER="YourMoniker"
export PUSH_CHAIN_ID="push_42101-1"
export PUSH_PORT="10"

Apply the changes with:

source ~/.bash_profile

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