SafroChain Testnet Cheat Sheet and Key Management

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

1. Key Management

Create a New Wallet

⚠️ Important: Keep the generated seed phrase safe. It is the only way to recover your wallet.
safrod keys add $WALLET

Recover Wallet from Seed Phrase

safrod keys add $WALLET --recover

List Wallets

safrod keys list

Show Wallet Details

safrod keys show $WALLET

Delete Wallet

safrod keys delete $WALLET

2. Wallet Operations

Check Balance

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

Send Tokens

safrod tx bank send $WALLET <recipient_address> <amount>usaf --chain-id safro-testnet-1 --gas auto --gas-adjustment 1.5 --fees 500usaf

3. Validator Management

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

Create Validator

safrod tx staking create-validator \\
  --amount 1000000usaf \\
  --from $WALLET \\
  --commission-rate 0.1 \\
  --commission-max-rate 0.2 \\
  --commission-max-change-rate 0.01 \\
  --min-self-delegation 1 \\
  --pubkey $(safrod tendermint show-validator) \\
  --moniker "$MONIKER" \\
  --identity "" \\
  --website "" \\
  --details "Your validator description" \\
  --security-contact "your@email.com" \\
  --chain-id safro-testnet-1 \\
  --gas auto --gas-adjustment 1.5 \\
  --fees 500usaf

Edit Validator

safrod tx staking edit-validator \\
  --new-moniker "$MONIKER" \\
  --identity "" \\
  --website "" \\
  --details "Your validator description" \\
  --chain-id safro-testnet-1 \\
  --from $WALLET \\
  --gas auto --gas-adjustment 1.5 \\
  --fees 500usaf

Delegate Tokens

safrod tx staking delegate $(safrod keys show $WALLET --bech val -a) 1000000usaf --from $WALLET --chain-id safro-testnet-1 --gas auto --gas-adjustment 1.5 --fees 500usaf

Withdraw Rewards (Delegator)

safrod tx distribution withdraw-rewards $(safrod keys show $WALLET --bech val -a) --from $WALLET --chain-id safro-testnet-1 --gas auto --gas-adjustment 1.5 --fees 500usaf

Withdraw Rewards (Validator Commission)

safrod tx distribution withdraw-rewards $(safrod keys show $WALLET --bech val -a) --commission --from $WALLET --chain-id safro-testnet-1 --gas auto --gas-adjustment 1.5 --fees 500usaf

Unbond Tokens

safrod tx staking unbond $(safrod keys show $WALLET --bech val -a) 1000000usaf --from $WALLET --chain-id safro-testnet-1 --gas auto --gas-adjustment 1.5 --fees 500usaf

Redelegate Tokens

safrod tx staking redelegate $(safrod keys show $WALLET --bech val -a) <destination_validator_address> 1000000usaf --from $WALLET --chain-id safro-testnet-1 --gas auto --gas-adjustment 1.5 --fees 500usaf

4. Node Status & Info

Check Sync Status

safrod status 2>&1 | jq .SyncInfo

Check Peer Info

curl -s localhost:26657/net_info | jq -r '.result.peers[] | "\\(.node_info.id)@\\(.remote_ip):\\(.node_info.listen_addr | split(":")[2])"'

Show Node ID

safrod tendermint show-node-id

Restart Node

sudo systemctl restart safrod

View Node Logs

sudo journalctl -u safrod -f -o cat

5. Governance

List Proposals

safrod query gov proposals

View Proposal Details

safrod query gov proposal <proposal_id>

Vote on Proposal

safrod tx gov vote <proposal_id> yes --from $WALLET --chain-id safro-testnet-1 --gas auto --gas-adjustment 1.5 --fees 500usaf

6. Environment Variables

💡 Tip: Make sure to set these in your ~/.bash_profile or equivalent shell config.
echo "export WALLET=\"wallet\"" >> $HOME/.bash_profile
echo "export MONIKER=\"your-moniker\"" >> $HOME/.bash_profile
echo "export CHAIN_ID=\"safro-testnet-1\"" >> $HOME/.bash_profile
source $HOME/.bash_profile

This cheat sheet is provided to streamline SafroChain Testnet validator and wallet management. All commands use environment variables for easier management.