# CLI

A user can query and interact with the `slashing` module using the CLI.

### Query <a href="#query" id="query"></a>

The `query` commands allow users to query `slashing` state.

```
simd query slashing --help
```

#### params <a href="#params" id="params"></a>

The `params` command allows users to query genesis parameters for the slashing module.

```
simd query slashing params [flags]
```

Example:

```
simd query slashing params
```

Example: Output

```
downtime_jail_duration: 600s
min_signed_per_window: "0.500000000000000000"
signed_blocks_window: "100"
slash_fraction_double_sign: "0.050000000000000000"
slash_fraction_downtime: "0.010000000000000000"
```

#### signing-info <a href="#signing-info" id="signing-info"></a>

The `signing-info` command allows users to query signing-info of the validator using consensus public key.

```
simd query slashing signing-infos [flags]
```

Example:

```
simd query slashing signing-info '{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Auxs3865HpB/EfssYOzfqNhEJjzys6jD5B6tPgC8="}'
```

Example Output:

```
address: cosmosvalcons1nrqsld3aw6lh6t082frdqc84uwxn0t958c
index_offset: "2068"
jailed_until: "1970-01-01T00:00:00Z"
missed_blocks_counter: "0"
start_height: "0"
tombstoned: false
```

#### signing-infos <a href="#signing-infos" id="signing-infos"></a>

The `signing-infos` command allows users to query signing infos of all validators.

```
simd query slashing signing-infos [flags]
```

Example:

```
simd query slashing signing-infos
```

Example Output:

```
info:
- address: cosmosvalcons1nrqsld3aw6lh6t082frdqc84uwxn0t958c
  index_offset: "2075"
  jailed_until: "1970-01-01T00:00:00Z"
  missed_blocks_counter: "0"
  start_height: "0"
  tombstoned: false
pagination:
  next_key: null
  total: "0"
```

### Transactions <a href="#transactions" id="transactions"></a>

The `tx` commands allow users to interact with the `slashing` module.

```
simd tx slashing --help
```

#### unjail <a href="#unjail" id="unjail"></a>

The `unjail` command allows users to unjail a validator previously jailed for downtime.

```
simd tx slashing unjail --from mykey [flags]
```

Example:

```
simd tx slashing unjail --from mykey
```

### gRPC <a href="#grpc" id="grpc"></a>

A user can query the `slashing` module using gRPC endpoints.

#### Params <a href="#params-2" id="params-2"></a>

The `Params` endpoint allows users to query the parameters of slashing module.

```
cosmos.slashing.v1beta1.Query/Params
```

Example:

```bash
grpcurl -plaintext localhost:9090 cosmos.slashing.v1beta1.Query/Params
```

Example Output:

```json
{
  "params": {
    "signedBlocksWindow": "100",
    "minSignedPerWindow": "NTAwMDAwMDAwMDAwMDAwMDAw",
    "downtimeJailDuration": "600s",
    "slashFractionDoubleSign": "NTAwMDAwMDAwMDAwMDAwMDA=",
    "slashFractionDowntime": "MTAwMDAwMDAwMDAwMDAwMDA="
  }
}
```

#### SigningInfo <a href="#signinginfo" id="signinginfo"></a>

The SigningInfo queries the signing info of given cons address.

```
cosmos.slashing.v1beta1.Query/SigningInfo
```

Example:

```
grpcurl -plaintext -d '{"cons_address":"cosmosvalcons1nrqsld3aw6lh6t082frdqc84uwxn0t958c"}' localhost:9090 cosmos.slashing.v1beta1.Query/SigningInfo
```

Example Output:

```json
{
  "valSigningInfo": {
    "address": "cosmosvalcons1nrqsld3aw6lh6t082frdqc84uwxn0t958c",
    "indexOffset": "3493",
    "jailedUntil": "1970-01-01T00:00:00Z"
  }
}
```

#### SigningInfos <a href="#signinginfos" id="signinginfos"></a>

The SigningInfos queries signing info of all validators.

```
cosmos.slashing.v1beta1.Query/SigningInfos
```

Example:

```
grpcurl -plaintext localhost:9090 cosmos.slashing.v1beta1.Query/SigningInfos
```

Example Output:

```json
{
  "info": [
    {
      "address": "cosmosvalcons1nrqslkwd3pz096lh6t082frdqc84uwxn0t958c",
      "indexOffset": "2467",
      "jailedUntil": "1970-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "total": "1"
  }
}
```

### REST <a href="#rest" id="rest"></a>

A user can query the `slashing` module using REST endpoints.

#### Params <a href="#params-3" id="params-3"></a>

```
/cosmos/slashing/v1beta1/params
```

Example:

```bash
curl "localhost:1317/cosmos/slashing/v1beta1/params"
```

Example Output:

```json
{
  "params": {
    "signed_blocks_window": "100",
    "min_signed_per_window": "0.500000000000000000",
    "downtime_jail_duration": "600s",
    "slash_fraction_double_sign": "0.050000000000000000",
    "slash_fraction_downtime": "0.010000000000000000"
}
```

#### signing\_info <a href="#signing-info-2" id="signing-info-2"></a>

```
/cosmos/slashing/v1beta1/signing_infos/%s
```

Example:

```bash
curl "localhost:1317/cosmos/slashing/v1beta1/signing_infos/cosmosvalcons1nrqslkwd3pz096lh6t082frdqc84uwxn0t958c"
```

Example Output:

```json
{
  "val_signing_info": {
    "address": "cosmosvalcons1nrqslkwd3pz096lh6t082frdqc84uwxn0t958c",
    "start_height": "0",
    "index_offset": "4184",
    "jailed_until": "1970-01-01T00:00:00Z",
    "tombstoned": false,
    "missed_blocks_counter": "0"
  }
}
```

#### signing\_infos <a href="#signing-infos-2" id="signing-infos-2"></a>

```
/cosmos/slashing/v1beta1/signing_infos
```

Example:

```bash
curl "localhost:1317/cosmos/slashing/v1beta1/signing_infos
```

Example Output:

```json
{
  "info": [
    {
      "address": "cosmosvalcons1nrqslkwd3pz096lh6t082frdqc84uwxn0t958c",
      "start_height": "0",
      "index_offset": "4169",
      "jailed_until": "1970-01-01T00:00:00Z",
      "tombstoned": false,
      "missed_blocks_counter": "0"
    }
  ],
  "pagination": {
    "next_key": null,
    "total": "1"
  }
}
```
