Safrochain Cheat Sheet and Key Management
This guide provides essential commands for managing wallets, nodes, and validators on the safrochain network. Make sure the environment variables mentioned at the end are correctly configured before using these commands.
1. Key Management
Create a New Wallet
safrochaind keys add $WALLETKeep the generated seed phrase safe. It is the only way to recover your wallet.
Recover Wallet from Seed Phrase
safrochaind keys add $WALLET --recoverYou will be prompted to enter your seed phrase.
List Wallets
safrochaind keys listShow Wallet Details
safrochaind keys show $WALLETDelete Wallet
safrochaind keys delete $WALLET2. Wallet Operations
Check Balance
safrochaind query bank balances $(safrochaind keys show $WALLET -a)Send Tokens
safrochaind tx bank send $(safrochaind keys show $WALLET -a) <receiver_wallet_address> <amount><denom> --chain-id $safrochain_CHAIN_ID --gas-prices 0.0001usaf --gas-adjustment 1.5 --gas auto -yExample:
safrochaind tx bank send $(safrochaind keys show $WALLET -a) safrochain1...yyy 1000000usaf --chain-id $safrochain_CHAIN_ID --gas-prices 0.0001usaf --gas-adjustment 1.5 --gas auto -yReplace <amount> with the number of tokens and <denom> with the token denomination (e.g., usaf).
3. Validator Management
Ensure you have enough usaf tokens for self-delegation and transaction fees before creating a validator.
Create Validator
Configuration
Generated Command
VAL_PUBKEY=$(safrochaind tendermint show-validator)
cat <<EOF > /root/.safrochain/validator.json
{
"pubkey": $VAL_PUBKEY,
"amount": "1000000usaf",
"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
safrochaind tx staking create-validator /root/.safrochain/validator.json \
--from=$WALLET \
--chain-id=safro-testnet-1 \
--gas=auto \
--gas-adjustment=1.4 \
--fees=300usaf \
--home ~/.safrochain \
-yParameter Explanation:
| Parameter | Details |
|---|---|
--amount | Tokens self-delegated to the validator. 1000000usaf = 1 SAF |
--from | Wallet used for the transaction. |
--commission-rate | Initial commission rate. |
--commission-max-rate | Maximum allowed commission rate. |
--commission-max-change-rate | Max daily commission change. |
--min-self-delegation | Minimum tokens for self-delegation. |
--pubkey | Validator's public key. |
--moniker | Validator nickname. |
--identity | Keybase ID for identity verification. |
--website | Validator's website URL. |
--details | Validator description. |
--security-contact | Email for security-related contact. |
Edit Validator
safrochaind 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 $safrochain_CHAIN_ID \
--gas-prices 0.0001usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-yDelegate Tokens
safrochaind tx staking delegate $(safrochaind keys show $WALLET --bech val -a) <amount>usaf \
--chain-id $safrochain_CHAIN_ID \
--gas-prices 0.0001usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-yWithdraw Rewards (Delegator)
safrochaind tx distribution withdraw-rewards $(safrochaind keys show $WALLET --bech val -a) \
--chain-id $safrochain_CHAIN_ID \
--gas-prices 0.0001usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-yWithdraw Rewards (Validator Commission)
safrochaind tx distribution withdraw-rewards $(safrochaind keys show $WALLET --bech val -a) --commission \
--chain-id $safrochainD_CHAIN_ID \
--gas-prices 0.0001usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-yUnbond Tokens
safrochaind tx staking unbond $(safrochaind keys show $WALLET --bech val -a) <amount>usaf \
--chain-id $safrochain_CHAIN_ID \
--gas-prices 0.0001usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-yRedelegate Tokens
safrochaind tx staking redelegate $(safrochaind keys show $WALLET --bech val -a) <destination_validator_address> <amount>usaf \
--chain-id $safrochain_CHAIN_ID \
--gas-prices 0.0001usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y4. Node Status & Info
Check Sync Status
safrochaind status 2>&1 | jq .result.sync_infoCheck Peer Info
safrochaind status 2>&1 | jq .result.sync_info.catching_up
safrochaind status 2>&1 | jq .result.node_info.listen_addrShow Node ID
safrochaind tendermint show-node-idRestart Node
sudo systemctl restart safrochaindView Node Logs
sudo journalctl -u safrochaind -fo cat5. Governance
List Proposals
safrochaind query gov proposalsView Proposal Details
safrochaind query gov proposal <proposal_id>Vote on Proposal
safrochaind tx gov vote <proposal_id> <yes|no|no_with_veto|abstain> \
--chain-id $safrochain_CHAIN_ID \
--gas-prices 0.0001usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y6. Environment Variables
Make sure to set these in your ~/.bash_profile or equivalent shell config:
export WALLET="wallet"
export MONIKER="YourMoniker"
export SAFROCHAIN_ID="safro-testnet-1"
export SAFROCHAIN_PORT="13"Apply the changes with:
source ~/.bash_profileThis cheat sheet is provided to streamline safrochain validator and wallet management.
