Safrochain Logo

Safrochain

Active

A Blockchain Bridging Local Lives and Global Assets

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 $WALLET

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

Recover Wallet from Seed Phrase

safrochaind keys add $WALLET --recover

You will be prompted to enter your seed phrase.

List Wallets

safrochaind keys list

Show Wallet Details

safrochaind keys show $WALLET

Delete Wallet

safrochaind keys delete $WALLET

2. 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.05usaf --gas-adjustment 1.5 --gas auto -y

Example:

safrochaind tx bank send $(safrochaind keys show $WALLET -a) safrochain1...yyy 1000000usaf --chain-id $SAFROCHAIN_CHAIN_ID --gas-prices 0.05usaf --gas-adjustment 1.5 --gas auto -y

Replace <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=safrochain-1 \
  --gas=auto \
  --gas-adjustment=1.4 \
  --fees=20000usaf \
  --home ~/.safrochain \
  -y
Parameter Explanation:
ParameterDetails
--amountTokens self-delegated to the validator. 1000000usaf = 1 SAF
--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

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.05usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Delegate Tokens

safrochaind tx staking delegate $(safrochaind keys show $WALLET --bech val -a) <amount>usaf \
--chain-id $SAFROCHAIN_CHAIN_ID \
--gas-prices 0.05usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Withdraw Rewards (Delegator)

safrochaind tx distribution withdraw-rewards $(safrochaind keys show $WALLET --bech val -a) \
--chain-id $SAFROCHAIN_CHAIN_ID \
--gas-prices 0.05usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Withdraw Rewards (Validator Commission)

safrochaind tx distribution withdraw-rewards $(safrochaind keys show $WALLET --bech val -a) --commission \
--chain-id $safrochainD_CHAIN_ID \
--gas-prices 0.05usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Unbond Tokens

safrochaind tx staking unbond $(safrochaind keys show $WALLET --bech val -a) <amount>usaf \
--chain-id $SAFROCHAIN_CHAIN_ID \
--gas-prices 0.05usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

Redelegate 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.05usaf \
--gas-adjustment 1.5 \
--gas auto \
--from $WALLET \
-y

4. Node Status & Info

Check Sync Status

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

Check Peer Info

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

Show Node ID

safrochaind tendermint show-node-id

Restart Node

sudo systemctl restart safrochaind

View Node Logs

sudo journalctl -u safrochaind -fo cat

5. Governance

List Proposals

safrochaind query gov proposals

View 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.05usaf \
--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 SAFROCHAIN_ID="safrochain-1"
export SAFROCHAIN_PORT="16"

Apply the changes with:

source ~/.bash_profile

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