# 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"
  }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.blockxnet.com/protocol-developers/modules/slashing/cli.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
