Wallet operations
create a new keypair:
namadaw gen --alias $WALLETrestore existing wallet:
namada wallet derive --alias $WALLET --hd-path defaultrestore existing wallet by privkey:
namadaw add --alias $WALLET --value <PRIVED_KEY>find your wallet address:
namadaw find --alias $WALLETadd some tokens using faucet:
https://faucet.heliax.click/check balance:
namadac balance --owner $WALLET --token NAMcheck all known keys and addresses in the wallet:
namadaw listsend payment from one address to another:
namadac transfer --source $WALLET --target $\{WALLET\}1 --token NAAN --amount 1 --signing-keys $WALLET --memo $MEMOremove keys:
namadaw remove --alias $WALLET --do-itStaking
If you find this guide helpful, you can stake to our validator.
We would really appreciate it! 🚀
add a variable with the validator address:
VAL_ADDRESS="tnam1q8vhe85yc5ttt7mveds58gyqzavfwnn9eqhfxpgc" # address of validator you want to stake toexport the variable:
echo "export VAL_ADDRESS="$VAL_ADDRESS"" >> $HOME/.bash_profile \
source $HOME/.bash_profiledelegate tokens:
namadac bond --source $WALLET --validator $VAL_ADDRESS --amount 500 --memo $MEMOcheck your user bonds:
namadac bonds --owner $WALLET check all bonded nodes:
namadac bonded-stake add stake:
namadac bond --source $WALLET --validator $VAL_ADDRESS --amount 500 --memo $MEMOunbond the tokens:
namadac unbond --source $WALLET --validator $VAL_ADDRESS --amount 15 --memo $MEMOwait for 6 epochs, then check when the unbonded tokens can be withdrawed:
namadac bonds --owner $WALLET withdraw unbonded tokens:
namadac withdraw --source $WALLET --validator $VAL_ADDRESS --memo $MEMOredelegate:
namadac redelegate --owner $WALLET --source-validator $VAL_ADDRESS --destination-validator <destination-validator-address> --amount 10 --memo $MEMOclaim rewards:
namadac claim-rewards --source $WALLET --validator $VAL_ADDRESS --memo $MEMOquery the pending reward tokens without claiming:
namadac rewards --source $WALLET --validator $VAL_ADDRESS Multisign
generate key_1:
namadaw gen --alias $WALLETgenerate key_2 and etc:
namadaw gen --alias $\{WALLET\}1chech your public key:
namadaw find --alias $WALLET | awk '/Public key:/ {print $3}'init non-multisig account (single signer):
namadac init-account --alias $\{WALLET\}-multisig --public-keys $WALLET --signing-keys $WALLET --memo $MEMOinit multisig account (at least 2 signers):
namadac init-account --alias $\{WALLET\}1-multisig --public-keys $WALLET,$\{WALLET\}1 --signing-keys $WALLET,$\{WALLET\}1 --threshold 2 --memo $MEMOcreate a folder for a transaction:
mkdir tx_dumpscreate transaction:
namadac transfer --source $\{WALLET\}1-multisig --target $\{WALLET\}1 --token NAAN --amount 10 --signing-keys $WALLET,$\{WALLET\}1 --dump-tx --output-folder-path tx_dumps --memo $MEMOsign the transaction:
namadac sign-tx --tx-path "<path-to-.tx-file>" --signing-keys $WALLET,$\{WALLET\}1 --owner $\{WALLET\}1-multisig --memo $MEMOsave as a variable offline_signature 1:
export SIGNATURE_ONE="<signature-file-name>"save as a variable offline_signature 2:
export SIGNATURE_TWO="<signature-2-file-name>"submit transaction:
namadac tx --tx-path "<path-to-.tx-file>" --signatures $SIGNATURE_ONE,$SIGNATURE_TWO --owner $\{WALLET\}1-multisig --gas-payer $WALLET --memo $MEMOchanging the multisig threshold:
namadac update-account --address $\{WALLET\}1-multisig --threshold 1 --signing-keys $WALLET,$\{WALLET\}1 --memo $MEMOcheck that the threshold has been updated correctly by running:
namadac query-account --owner $\{WALLET\}1-multisigchanging the public keys of a multisig account:
namadac update-account --address $\{WALLET\}1-multisig --public-keys $\{WALLET\}2,$\{WALLET\}3,$\{WALLET\}4 --signing-keys $WALLET,$\{WALLET\}1 --memo $MEMOinitialize an established account:
namadac init-account --alias $\{WALLET\}1-multisig --public-keys $\{WALLET\}2,$\{WALLET\}3,$\{WALLET\}4 --signing-keys $WALLET,$\{WALLET\}1 --threshold 1 --memo $MEMOMASP
randomly generate a new spending key:
namadaw gen --shielded --alias $\{WALLET\}-shieldedcreate a new payment address:
namadaw gen-payment-addr --key $\{WALLET\}-shielded --alias $\{WALLET\}-shielded-addrsend a shielding transfer:
namadac transfer --source $WALLET --target $\{WALLET\}-shielded-addr --token NAAN --amount 10 --memo $MEMOview balance:
namadac balance --owner $\{WALLET\}-shielded --token NAMgenerate another spending key:
namadaw gen --shielded --alias $\{WALLET\}1-shieldedcreate a payment address:
namadaw gen-payment-addr --key $\{WALLET\}1-shielded --alias $\{WALLET\}1-shielded-addrshielded transfers (once the user has a shielded balance, it can be transferred to another shielded address):
namadac transfer --source $\{WALLET\}-shielded --target $\{WALLET\}1-shielded-addr --token NAAN --amount 4 --signing-keys <your-implicit-account-alias> --memo $MEMOunshielding transfers (from a shielded to a transparent account):
namadac transfer --source $\{WALLET\}-shielded --target $WALLET --token NAAN --amount 4 --signing-keys <your-implicit-account-alias> --memo $MEMOValidator operations
check sync status and node info:
curl http://127.0.0.1:26657/status | jqcheck balance:
namadac balance --owner $ALIAS --token NAMcheck keys:
namadaw listfind your validator address:
namadac find-validator --tm-address=$(curl -s localhost:26657/status | jq -r .result.validator_info.address) --node localhost:26657stake funds:
namadac bond --source $WALLET --validator $VALIDATOR_ADDRESS --amount 10 --memo $MEMOself-bonding:
namadac bond --validator $VALIDATOR_ADDRESS --amount 10 --memo $MEMOcheck your validator bond status:
namadac bonds --validator $VALIDATOR_ADDRESScheck your user bonds:
namadac bonds --owner $WALLETcheck all bonded nodes:
namadac bonded-stakefind all the slashes:
namadac slashesnon-self unbonding (validator alias can be used instead of address):
namadac unbond --source $WALLET --validator $VALIDATOR_ADDRESS --amount 1.5 --memo $MEMOself-unbonding:
namadac unbond --validator $VALIDATOR_ADDRESS --amount 1.5 --memo $MEMOwithdrawing unbonded tokens (available 6 epochs after unbonding):
namadac withdraw --source $WALLET --validator $VALIDATOR_ADDRESS --memo $MEMOfind your validator status:
namadac validator-state --validator $VALIDATOR_ADDRESScheck epoch:
namada client epochunjail, you need to wait 2 epochs:
namada client unjail-validator --validator $VALIDATOR_ADDRESS --node http://127.0.0.1:26657 --memo $MEMOdeactivate validator:
namadac deactivate-validator --validator $VALIDATOR_ADDRESS --memo $MEMOreactivate validator:
namadac reactivate-validator --validator $VALIDATOR_ADDRESS --memo $MEMOChange consensus key:
namadac change-consensus-key --validator $VALIDATOR_ADDRESS --memo $MEMO --signing-keys $WALLET --node http://127.0.0.1:26657Generate priv_validator_key:
namadaw convert --alias <consensus_key_name>change validator commission rate:
namadac change-commission-rate --validator $VALIDATOR_ADDRESS --commission-rate <commission-rate> --memo $MEMOchange validator metadata:
namadac change-metadata --validator $VALIDATOR_ADDRESS --memo $MEMOGovernance
all proposals list:
namadac query-proposaledit proposal:
namadac query-proposal --proposal-id <PROPOSAL_ID>save wallet address:
WALLET_ADDRESS=$(namadaw find --alias $WALLET | grep "Implicit" | awk '{print $3}')import the variable into system:
echo "export WALLET_ADDRESS="$WALLET_ADDRESS"" >> $HOME/.bash_profile
source $HOME/.bash_profilevote:
namadac vote-proposal --proposal-id <proposal-id> --vote yay --address $WALLET_ADDRESS --signing-keys $WALLET --memo $MEMOCheck your vote:
namadac query-proposal-votes --proposal-id <proposal_id> --voter $WALLET_ADDRESSSync and Consensus
check logs:
sudo journalctl -u namadad -fcheck sync status and node info:
curl http://127.0.0.1:26657/status | jqcheck consensus state:
curl -s localhost:26657/consensus_state | jq .result.round_state.height_vote_set[0].prevotes_bit_arraycheck consensus state:
curl -s localhost:26657/consensus_state | jq .result.round_state.height_vote_set[-2].prevotes_bit_arrayfull consensus state:
curl -s localhost:12657/dump_consensus_stateyour validator votes (prevote):
curl -s http://localhost:26657/dump_consensus_state | jq '.result.round_state.votes[0].prevotes' | grep $(curl -s http://localhost:26657/status | jq -r '.result.validator_info.address[:12]')