# Clients

A user can query the `x/incentives` module using the CLI, JSON-RPC, gRPC or REST.

### CLI <a href="#cli" id="cli"></a>

Find below a list of `mnovad` commands added with the `x/incentives` module. You can obtain the full list by using the `mnovad -h` command.

#### Queries <a href="#queries" id="queries"></a>

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

**`incentives`**

Allows users to query all registered incentives.

```
mnovad query incentives incentives [flags]
```

**`incentive`**

Allows users to query an incentive for a given contract.

```bash
mnovad query incentives incentive [contract-address] [flags]
```

**`gas-meters`**

Allows users to query all gas meters for a given incentive.

```bash
mnovad query incentives gas-meters [contract-address] [flags]
```

**`gas-meter`**

Allows users to query a gas meter for a given incentive and user.

```bash
mnovad query incentives gas-meter [contract-address] [participant-address] [flags]
```

**`params`**

Allows users to query incentives params.

```bash
mnovad query incentives params [flags]
```

#### Proposals <a href="#proposals" id="proposals"></a>

The `tx gov submit-proposal` commands allow users to query create a proposal using the governance module CLI:

**`register-incentive`**

Allows users to submit a `RegisterIncentiveProposal`.

```
mnovad tx gov submit-proposal register-incentive [contract-address] [allocation] [epochs] [flags]
```

**`cancel-incentive`**

Allows users to submit a `CanelIncentiveProposal`.

```bash
mnovad tx gov submit-proposal cancel-incentive [contract-address] [flags]
```

**`param-change`**

Allows users to submit a \`ParameterChangeProposal\`\`.

```
mnovad tx gov submit-proposal param-change [proposal-file] [flags]
```

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

#### Queries <a href="#queries-2" id="queries-2"></a>

| Verb   | Method                                                     | Description                                   |
| ------ | ---------------------------------------------------------- | --------------------------------------------- |
| `gRPC` | `mnova.incentives.v1.Query/Incentives`                     | Gets all registered incentives                |
| `gRPC` | `mnova.incentives.v1.Query/Incentive`                      | Gets incentive for a given contract           |
| `gRPC` | `mnova.incentives.v1.Query/GasMeters`                      | Gets gas meters for a given incentive         |
| `gRPC` | `mnova.incentives.v1.Query/GasMeter`                       | Gets gas meter for a given incentive and user |
| `gRPC` | `mnova.incentives.v1.Query/AllocationMeters`               | Gets all allocation meters                    |
| `gRPC` | `mnova.incentives.v1.Query/AllocationMeter`                | Gets allocation meter for a denom             |
| `gRPC` | `mnova.incentives.v1.Query/Params`                         | Gets incentives params                        |
| `GET`  | `/mnova/incentives/v1/incentives`                          | Gets all registered incentives                |
| `GET`  | `/mnova/incentives/v1/incentives/{contract}`               | Gets incentive for a given contract           |
| `GET`  | `/mnova/incentives/v1/gas_meters`                          | Gets gas meters for a given incentive         |
| `GET`  | `/mnova/incentives/v1/gas_meters/{contract}/{participant}` | Gets gas meter for a given incentive and user |
| `GET`  | `/mnova/incentives/v1/allocation_meters`                   | Gets all allocation meters                    |
| `GET`  | `/mnova/incentives/v1/allocation_meters/{denom}`           | Gets allocation meter for a denom             |
| `GET`  | `/mnova/incentives/v1/params`                              | Gets incentives params                        |
