# 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 `blockxd` commands added with the `x/incentives` module. You can obtain the full list by using the `blockxd -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.

```
blockxd query incentives incentives [flags]
```

**`incentive`**

Allows users to query an incentive for a given contract.

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

**`gas-meters`**

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

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

**`gas-meter`**

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

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

**`params`**

Allows users to query incentives params.

```bash
blockxd 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`.

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

**`cancel-incentive`**

Allows users to submit a `CanelIncentiveProposal`.

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

**`param-change`**

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

```
blockxd 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` | `blockx.incentives.v1.Query/Incentives`                     | Gets all registered incentives                |
| `gRPC` | `blockx.incentives.v1.Query/Incentive`                      | Gets incentive for a given contract           |
| `gRPC` | `blockx.incentives.v1.Query/GasMeters`                      | Gets gas meters for a given incentive         |
| `gRPC` | `blockx.incentives.v1.Query/GasMeter`                       | Gets gas meter for a given incentive and user |
| `gRPC` | `blockx.incentives.v1.Query/AllocationMeters`               | Gets all allocation meters                    |
| `gRPC` | `blockx.incentives.v1.Query/AllocationMeter`                | Gets allocation meter for a denom             |
| `gRPC` | `blockx.incentives.v1.Query/Params`                         | Gets incentives params                        |
| `GET`  | `/blockx/incentives/v1/incentives`                          | Gets all registered incentives                |
| `GET`  | `/blockx/incentives/v1/incentives/{contract}`               | Gets incentive for a given contract           |
| `GET`  | `/blockx/incentives/v1/gas_meters`                          | Gets gas meters for a given incentive         |
| `GET`  | `/blockx/incentives/v1/gas_meters/{contract}/{participant}` | Gets gas meter for a given incentive and user |
| `GET`  | `/blockx/incentives/v1/allocation_meters`                   | Gets all allocation meters                    |
| `GET`  | `/blockx/incentives/v1/allocation_meters/{denom}`           | Gets allocation meter for a denom             |
| `GET`  | `/blockx/incentives/v1/params`                              | Gets incentives params                        |


---

# 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/incentives/clients.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.
