Staking DIG in Cosmos using Ledger

A tiny write-up on how to stake DIG coin on a DIGCHAIN using Ledger.

Pro-tip: Since DIG is a Cosmos-based blockchain you can stake using the same commands on any other Cosmos-based blockchain.

Make sure you have a recent golang installed.

1. Get digd

git clone https://github.com/notional-labs/dig
cd dig
make

2. Import your ledger account

Have a Cosmos app on your Ledger open and your Ledger connected to your device you are running digd commands at.
digd keys add default --ledger

3. Pick your validator

NODE=https://rpc-1-dig.notional.ventures:443

digd --node $NODE query staking validators -o json |  jq -r '[ "validator", "tokens", "commission", "commission_max_rate", "commission_max_change_rate", "name"], (.validators[] | select(.jailed != true) | [.operator_address, (.tokens|tonumber / pow(10; 6)), (.commission.commission_rates | (.rate | tonumber)*100, (.max_rate | tonumber)*100, (.max_change_rate | tonumber)*100), .description.moniker]) | @csv' | column -t -s"," | sort -nrk2 | nl -v 1

VALIDATOR=digvaloper1...

4. Query your balances

ACC=$(digd keys show default -a)
digd --node $NODE query bank balances $ACC -o json | jq -r '(.balances[0].amount | tonumber) / pow(10;6)'

5. Delegate some DIG

Make sure to not delegate all tokens, always leave at least 1 DIG for signing transactions!

NET="$(digd --node $NODE status | jq -r '.NodeInfo.network')"
digd --node $NODE tx staking delegate $VALIDATOR 5000000000udig --from default --sign-mode=amino-json --gas="auto" --gas-adjustment=1.2 --fees 3000udig --chain-id $NET

6. Query accumulated rewards

digd --node $NODE query distribution rewards $ACC $VALIDATOR -o json | jq -r '(.rewards[].amount | tonumber) / pow(10;6)'

7. Withdraw rewards

digd --node $NODE tx distribution withdraw-rewards $VALIDATOR --from default --chain-id $NET --sign-mode=amino-json --gas="auto" --gas-adjustment=1.2 --fees 3000udig

8. Query all validators you are delegating to

digd --node $NODE query staking delegations $ACC