Wallet operations
Create wallet
⚠️ store seed phrase, important during recovering
arkeod keys add <YOUR_WALLET_NAME>
Recover wallet
⚠️ store seed phrase, important during recovering
arkeod keys add <YOUR_WALLET_NAME> --recover
List of all wallets
Delete wallet
arkeod keys delete <YOUR_WALLET_NAME>
Export wallet
⚠️ save to wallet.backup
arkeod keys export <YOUR_WALLET_NAME>
Import wallet
arkeod keys import <WALLET_NAME> wallet.backup
Check wallet balance
arkeod q bank balances $(arkeod keys show <YOUR_WALLET_NAME> -a)
Validator operations
Create validator
arkeod tx staking create-validator \
--amount=1000000uarkeo \
--pubkey=$(arkeod tendermint show-validator) \
--moniker="<Your moniker>" \
--identity=<Your identity> \
--details="<Your details>" \
--chain-id=arkeo-testnet-3 \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.1 \
--min-self-delegation=1 \
--from=<YOUR_WALLET> \
--fees=500uarkeo \
-y
Edit validator
arkeod tx staking edit-validator \
--new-moniker="<Your moniker>" \
--identity=<your identity> \
--details="<Your details>" \
--commission-rate=0.1 \
--from=<YOUR_WALLET> \
--fees=500uarkeo \
-y
Unjail your validator
arkeod tx slashing unjail --from <YOUR_WALLET> --fees=500uarkeo -y
Check blocks info processed by your validator
arkeod query slashing signing-info $(arkeod tendermint show-validator)
List of active validators
arkeod q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
List of inactive validators
arkeod q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED") or .status=="BOND_STATUS_UNBONDING")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
Info about your validator
arkeod q staking validator $(arkeod keys show <YOUR_WALLET_NAME> --bech val -a)
Transactions
Get your rewards from all validators
arkeod tx distribution withdraw-all-rewards --from <YOUR_WALLET> --fees=500uarkeo -y
Get rewards and commissions from your validator
arkeod tx distribution withdraw-rewards $(arkeod keys show <YOUR_WALLET_NAME> --bech val -a) --commission --from <YOUR_WALLET> --fees=500uarkeo -y
Delegate tokens to your validator
arkeod tx staking delegate $(arkeod keys show <YOUR_WALLET_NAME> --bech val -a) 1000000uarkeo --from <YOUR_WALLET> --fees=500uarkeo -y
Delegate tokens to validator
arkeod tx staking delegate <VALOPER_ADDRESS> 1000000uarkeo --from <YOUR_WALLET> --fees=500uarkeo -y
Redelegate tokens to another validator
arkeod tx staking redelegate <SRC_VALOPER_ADDRESS> <TARGET_VALOPER_ADDRESS> 1000000uarkeo --from <WALLET> --fees=500uarkeo -y
Unbound tokens from validator
⚠️ it’s can take a while, ~21 days, depends on network’s parameters
arkeod tx staking unbond <VALOPER_ADDRESS> 1000000uarkeo --from <YOUR_WALLET> --fees=500uarkeo -y
Send tokens to another wallet
arkeod tx bank send <YOUR_WALLET_ADDRESS> <TARGET_WALLET_ADDRESS> 1000000uarkeo --from <YOUR_WALLET_ADDRESS> --fees=500uarkeo -y
Check info about transaction by hash TX_HASH
arkeod query tx <TX_HASH>
Governance
Submit text proposal
arkeod tx gov submit-proposal \
--title="<Your Title>" \
--description="<Your Description>" \
--deposit=1000000uarkeo \
--type="Text" \
--from=<WALLET_ADDRESS> \
--fees=500uarkeo \
-y
List of all proposals
arkeod query gov proposals
Check proposal info by proposal id
arkeod query gov proposal <proposal_id>
Deposit proposal by proposal id
arkeod tx gov deposit 1 1000000uarkeo --from <YOUR_WALLET> --fees=500uarkeo -y
Vote as, YES
arkeod tx gov vote 1 yes --from <YOUR_WALLET> --fees=500uarkeo -y
Vote as, NO
arkeod tx gov vote 1 no --from <YOUR_WALLET> --fees=500uarkeo -y
Vote as, NO_WITH_VETO
arkeod tx gov vote 1 no_with_veto --from <YOUR_WALLET> --fees=500uarkeo -y
Vote as, ABSTAIN
arkeod tx gov vote 1 abstain --from <YOUR_WALLET> --fees=500uarkeo -y
Utils
Change ports to custom
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:36658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:36657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:7060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:36656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":36660\"%" $HOME/.arkeo/config/config.toml && \
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:10090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:10091\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:2317\"%" $HOME/.arkeo/config/app.toml && \
sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:36657\"%" $HOME/.arkeo/config/client.toml
Turn on indexing
sed -i 's|^indexer *=.*|indexer = "kv"|' $HOME/.arkeo/config/config.toml
Turn off indexing
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.arkeo/config/config.toml
Setup custom prunning
APP_TOML="~/.arkeo/config/app.toml"
sed -i 's|^pruning *=.*|pruning = "custom"|' $APP_TOML
sed -i 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' $APP_TOML
sed -i 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' $APP_TOML
sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|' $APP_TOML
Check your peer
echo $(arkeod tendermint show-node-id)@$(curl http://ifconfig.me/)$(grep -A 3 "\[p2p\]" ~/.arkeo/config/config.toml | egrep -o ":[0-9]+")
Check your RPC
echo -e "\033[0;32m$(grep -A 3 "\[rpc\]" ~/.arkeo/config/config.toml | egrep -o ":[0-9]+")\033[0m"
Check information about validator
arkeod status 2>&1 | jq .ValidatorInfo
Check synchronisation status (false - synced, true - not synced)
arkeod status 2>&1 | jq .SyncInfo.catching_up
Check the latest block
arkeod status 2>&1 | jq .SyncInfo.latest_block_height
Reset network
arkeod tendermint unsafe-reset-all --home $HOME/.arkeo --keep-addr-book
Delete node
sudo systemctl stop arkeod && \
sudo systemctl disable arkeod && \
sudo rm /etc/systemd/system/arkeod.service && \
sudo systemctl daemon-reload && \
rm -rf $HOME/.arkeo && \
rm -rf $HOME/arkeo
Check IP address of the server
Check network parameters
arkeod q staking params
arkeod q slashing params
Check validator private key is correct
[[ $(arkeod q staking validator $(arkeod keys show <YOUR_WALLET> --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(arkeod status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"
Search all output transactions by address
arkeod q txs --events transfer.sender=<ADDRESS> 2>&1 | jq | grep txhash
Search all input transactions by address
arkeod q txs --events transfer.recipient=<ADDRESS> 2>&1 | jq | grep txhash
Service management
Reload services
sudo systemctl daemon-reload
Enable service
sudo systemctl enable arkeod
Disable service
sudo systemctl disable arkeod
Start service
sudo systemctl start arkeod
Stop service
sudo systemctl stop arkeod
Restart service
sudo systemctl restart arkeod
Check service status
sudo systemctl status arkeod
Check service logs
sudo journalctl -u arkeod -f -o cat