# Cheatsheet

## Story Client

Node status

```bash
curl localhost:26657/status | jq
```

Check logs

```bash
sudo journalctl -u story -f
```

Start service

```bash
sudo systemctl start story
```

Stop service

```bash
sudo systemctl stop story
```

Restart service

```bash
sudo systemctl restart story
```

Check service status

```bash
sudo systemctl status story
```

Reload services

```bash
sudo systemctl daemon-reload
```

Enable Service

```bash
sudo systemctl enable story
```

Disable Service

```bash
sudo systemctl disable story
```

## Story-geth

Check logs

```bash
sudo journalctl -u story-geth -f
```

Start service

```bash
sudo systemctl start story-geth
```

Stop service

```bash
sudo systemctl stop story-geth
```

Restart service

```bash
sudo systemctl restart story-geth
```

Check service status

```bash
sudo systemctl status story-geth
```

Reload services

```bash
sudo systemctl daemon-reload
```

Enable Service

```bash
sudo systemctl enable story-geth
```

Disable Service

```bash
sudo systemctl disable story-geth
```

## Validator commands

Show validator info

```bash
curl localhost:$(sed -n '/\[rpc\]/,/laddr/ { /laddr/ {s/.*://; s/".*//; p} }' $HOME/.story/story/config/config.toml)/status | jq
```

Export validator public key

```bash
story validator export
```

Show validator private key

```bash
cat $HOME/.story/story/config/private_key.txt
```

## Staking operations

Delegate to yourself

```bash
story validator stake --chain-id 1315 --validator-pubkey $(story validator export | grep "Compressed Public Key (hex)" | awk '{print $NF}') --stake 1000000000000000000 --private-key $(cat $HOME/.story/story/config/private_key.txt | grep "PRIVATE_KEY" | awk -F'=' '{print $2}')
```

Delegate

```bash
story validator stake --chain-id 1315 --validator-pubkey <VALIDATOR_PUB_KEY_IN_HEX> --stake 1000000000000000000 --private-key $(cat $HOME/.story/story/config/private_key.txt | grep "PRIVATE_KEY" | awk -F'=' '{print $2}')
```

Delegate on behalf of other delegator

```bash
story validator stake-on-behalf --chain-id 1315 --validator-pubkey <VALIDATOR_PUB_KEY_IN_HEX> --delegator-pubkey <DELEGATOR_PUB_KEY_IN_HEX> --stake 1000000000000000000 --private-key $(cat $HOME/.story/story/config/private_key.txt | grep "PRIVATE_KEY" | awk -F'=' '{print $2}')
```

Add operator

```bash
story validator add-operator --chain-id 1315 --operator <OPERATOR_EVM_ADDRESS> --private-key $(cat $HOME/.story/story/config/private_key.txt | grep "PRIVATE_KEY" | awk -F'=' '{print $2}')
```

Unstake from yourself

```bash
story validator unstake --chain-id 1315 --validator-pubkey $(story validator export | grep "Compressed Public Key (hex)" | awk '{print $NF}') --unstake 1000000000000000000 --private-key $(cat $HOME/.story/story/config/private_key.txt | grep "PRIVATE_KEY" | awk -F'=' '{print $2}')
```

Unstake

```bash
story validator unstake --chain-id 1315 --validator-pubkey <VALIDATOR_PUB_KEY_IN_HEX> --unstake 1000000000000000000 --private-key $(cat $HOME/.story/story/config/private_key.txt | grep "PRIVATE_KEY" | awk -F'=' '{print $2}')
```

Unstake on behalf of other delegator. To do so, you must be a registered authorized operator for this delegator.

```bash
story validator unstake-on-behalf --chain-id 1315 --validator-pubkey <VALIDATOR_PUB_KEY_IN_HEX> --delegator-pubkey <DELEGATOR_PUB_KEY_IN_HEX> --unstake 1000000000000000000 --private-key $(cat $HOME/.story/story/config/private_key.txt | grep "PRIVATE_KEY" | awk -F'=' '{print $2}')
```

Remove operator

```bash
story validator remove-operator --operator <OPERATOR_EVM_ADDRESS> --private-key $(cat $HOME/.story/story/config/private_key.txt | grep "PRIVATE_KEY" | awk -F'=' '{print $2}')
```

Set or change withdrawal address

```bash
story validator set-withdrawal-address --withdrawal-address <YOUR_EVM_ADDRESS> --private-key $(cat $HOME/.story/story/config/private_key.txt | grep "PRIVATE_KEY" | awk -F'=' '{print $2}')
```
