> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cosmos.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Distribution

> gRPC queries and transaction messages defined by the distribution module in Cosmos SDK v0.55.

<Info>
  Generated from [`cosmos/cosmos-sdk@2086680ff8b0`](https://github.com/cosmos/cosmos-sdk/tree/2086680ff8b08fd269ee653e087ea577bab79534/proto) on ref `release/v0.55.x`.
</Info>

## Queries

A node exposes only the services its application registers:

* gRPC on port 9090
* REST on port 1317, if the method has an HTTP binding

Run `grpcurl -plaintext localhost:9090 list` to see what a node serves.

Queries are read-only and never pass through consensus. See [Queries](/sdk/latest/learn/concepts/transactions#queries).

Replace `<string>` placeholders with real values and omit unused filters. Payloads use protobuf JSON, and some `string` fields accept enum constants listed under Types. Field tables give the encoding each value takes.

Examples assume a local node. For TLS endpoints, use port 443 and omit `-plaintext`. See [gRPC services](/sdk/latest/api-reference/grpc/index) for reflection, address formats, and decimal encoding.

### CommunityPool

CommunityPool queries the community pool coins.

|      |                                                   |
| ---- | ------------------------------------------------- |
| gRPC | `cosmos.distribution.v1beta1.Query/CommunityPool` |
| REST | `GET /cosmos/distribution/v1beta1/community_pool` |

Request `QueryCommunityPoolRequest`:

This message has no fields.

Response `QueryCommunityPoolResponse`:

| Field  | Type                                         | Description                          |
| ------ | -------------------------------------------- | ------------------------------------ |
| `pool` | [`DecCoin`](#cosmos-base-v1beta1-deccoin)\[] | pool defines community pool's coins. |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext localhost:9090 cosmos.distribution.v1beta1.Query/CommunityPool
```

### DelegationRewards

DelegationRewards queries the total rewards accrued by a delegation.

|      |                                                                                             |
| ---- | ------------------------------------------------------------------------------------------- |
| gRPC | `cosmos.distribution.v1beta1.Query/DelegationRewards`                                       |
| REST | `GET /cosmos/distribution/v1beta1/delegators/{delegatorAddress}/rewards/{validatorAddress}` |

Request `QueryDelegationRewardsRequest`:

| Field               | Type     | Description                                                                                              |
| ------------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `delegator_address` | `string` | delegator\_address defines the delegator address to query for. Encoded as cosmos.AddressString.          |
| `validator_address` | `string` | validator\_address defines the validator address to query for. Encoded as cosmos.ValidatorAddressString. |

Response `QueryDelegationRewardsResponse`:

| Field     | Type                                         | Description                                          |
| --------- | -------------------------------------------- | ---------------------------------------------------- |
| `rewards` | [`DecCoin`](#cosmos-base-v1beta1-deccoin)\[] | rewards defines the rewards accrued by a delegation. |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"delegator_address":"<string>","validator_address":"<string>"}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/DelegationRewards
```

### DelegationTotalRewards

DelegationTotalRewards queries the total rewards accrued by each validator.

|      |                                                                          |
| ---- | ------------------------------------------------------------------------ |
| gRPC | `cosmos.distribution.v1beta1.Query/DelegationTotalRewards`               |
| REST | `GET /cosmos/distribution/v1beta1/delegators/{delegatorAddress}/rewards` |

Request `QueryDelegationTotalRewardsRequest`:

| Field               | Type     | Description                                                                                     |
| ------------------- | -------- | ----------------------------------------------------------------------------------------------- |
| `delegator_address` | `string` | delegator\_address defines the delegator address to query for. Encoded as cosmos.AddressString. |

Response `QueryDelegationTotalRewardsResponse`:

| Field     | Type                                                                                     | Description                                             |
| --------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| `rewards` | [`DelegationDelegatorReward`](#cosmos-distribution-v1beta1-delegationdelegatorreward)\[] | rewards defines all the rewards accrued by a delegator. |
| `total`   | [`DecCoin`](#cosmos-base-v1beta1-deccoin)\[]                                             | total defines the sum of all the rewards.               |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"delegator_address":"<string>"}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/DelegationTotalRewards
```

### DelegatorStartingInfo

DelegatorStartingInfo queries the starting info for a delegator.

|      |                                                                                                   |
| ---- | ------------------------------------------------------------------------------------------------- |
| gRPC | `cosmos.distribution.v1beta1.Query/DelegatorStartingInfo`                                         |
| REST | `GET /cosmos/distribution/v1beta1/delegators/{delegatorAddress}/starting_info/{validatorAddress}` |

Request `QueryDelegatorStartingInfoRequest`:

| Field               | Type     | Description                                                                                              |
| ------------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `delegator_address` | `string` | delegator\_address defines the delegator address to query for. Encoded as cosmos.AddressString.          |
| `validator_address` | `string` | validator\_address defines the validator address to query for. Encoded as cosmos.ValidatorAddressString. |

Response `QueryDelegatorStartingInfoResponse`:

| Field           | Type                                                                          | Description                                              |
| --------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------- |
| `starting_info` | [`DelegatorStartingInfo`](#cosmos-distribution-v1beta1-delegatorstartinginfo) | starting\_info defines the starting info of a delegator. |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"delegator_address":"<string>","validator_address":"<string>"}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/DelegatorStartingInfo
```

### DelegatorValidators

DelegatorValidators queries the validators of a delegator.

|      |                                                                             |
| ---- | --------------------------------------------------------------------------- |
| gRPC | `cosmos.distribution.v1beta1.Query/DelegatorValidators`                     |
| REST | `GET /cosmos/distribution/v1beta1/delegators/{delegatorAddress}/validators` |

Request `QueryDelegatorValidatorsRequest`:

| Field               | Type     | Description                                                                                     |
| ------------------- | -------- | ----------------------------------------------------------------------------------------------- |
| `delegator_address` | `string` | delegator\_address defines the delegator address to query for. Encoded as cosmos.AddressString. |

Response `QueryDelegatorValidatorsResponse`:

| Field        | Type        | Description                                                      |
| ------------ | ----------- | ---------------------------------------------------------------- |
| `validators` | `string`\[] | validators defines the validators a delegator is delegating for. |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"delegator_address":"<string>"}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/DelegatorValidators
```

### DelegatorWithdrawAddress

DelegatorWithdrawAddress queries withdraw address of a delegator.

|      |                                                                                   |
| ---- | --------------------------------------------------------------------------------- |
| gRPC | `cosmos.distribution.v1beta1.Query/DelegatorWithdrawAddress`                      |
| REST | `GET /cosmos/distribution/v1beta1/delegators/{delegatorAddress}/withdraw_address` |

Request `QueryDelegatorWithdrawAddressRequest`:

| Field               | Type     | Description                                                                                     |
| ------------------- | -------- | ----------------------------------------------------------------------------------------------- |
| `delegator_address` | `string` | delegator\_address defines the delegator address to query for. Encoded as cosmos.AddressString. |

Response `QueryDelegatorWithdrawAddressResponse`:

| Field              | Type     | Description                                                                                    |
| ------------------ | -------- | ---------------------------------------------------------------------------------------------- |
| `withdraw_address` | `string` | withdraw\_address defines the delegator address to query for. Encoded as cosmos.AddressString. |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"delegator_address":"<string>"}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/DelegatorWithdrawAddress
```

### Params

Params queries params of the distribution module.

|      |                                            |
| ---- | ------------------------------------------ |
| gRPC | `cosmos.distribution.v1beta1.Query/Params` |
| REST | `GET /cosmos/distribution/v1beta1/params`  |

Request `QueryParamsRequest`:

This message has no fields.

Response `QueryParamsResponse`:

| Field    | Type                                            | Description                                  |
| -------- | ----------------------------------------------- | -------------------------------------------- |
| `params` | [`Params`](#cosmos-distribution-v1beta1-params) | params defines the parameters of the module. |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext localhost:9090 cosmos.distribution.v1beta1.Query/Params
```

### ValidatorCommission

ValidatorCommission queries accumulated commission for a validator.

|      |                                                                             |
| ---- | --------------------------------------------------------------------------- |
| gRPC | `cosmos.distribution.v1beta1.Query/ValidatorCommission`                     |
| REST | `GET /cosmos/distribution/v1beta1/validators/{validatorAddress}/commission` |

Request `QueryValidatorCommissionRequest`:

| Field               | Type     | Description                                                                                              |
| ------------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `validator_address` | `string` | validator\_address defines the validator address to query for. Encoded as cosmos.ValidatorAddressString. |

Response `QueryValidatorCommissionResponse`:

| Field        | Type                                                                                            | Description                                               |
| ------------ | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| `commission` | [`ValidatorAccumulatedCommission`](#cosmos-distribution-v1beta1-validatoraccumulatedcommission) | commission defines the commission the validator received. |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"validator_address":"<string>"}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/ValidatorCommission
```

### ValidatorCurrentRewards

ValidatorCurrentRewards queries current rewards for a validator.

|      |                                                                                  |
| ---- | -------------------------------------------------------------------------------- |
| gRPC | `cosmos.distribution.v1beta1.Query/ValidatorCurrentRewards`                      |
| REST | `GET /cosmos/distribution/v1beta1/validators/{validatorAddress}/current_rewards` |

Request `QueryValidatorCurrentRewardsRequest`:

| Field               | Type     | Description                                                                                              |
| ------------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `validator_address` | `string` | validator\_address defines the validator address to query for. Encoded as cosmos.ValidatorAddressString. |

Response `QueryValidatorCurrentRewardsResponse`:

| Field     | Type                                                                              | Description                                         |
| --------- | --------------------------------------------------------------------------------- | --------------------------------------------------- |
| `rewards` | [`ValidatorCurrentRewards`](#cosmos-distribution-v1beta1-validatorcurrentrewards) | rewards defines the current rewards of a validator. |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"validator_address":"<string>"}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/ValidatorCurrentRewards
```

### ValidatorDistributionInfo

ValidatorDistributionInfo queries validator commission and self-delegation rewards for validator

|      |                                                                  |
| ---- | ---------------------------------------------------------------- |
| gRPC | `cosmos.distribution.v1beta1.Query/ValidatorDistributionInfo`    |
| REST | `GET /cosmos/distribution/v1beta1/validators/{validatorAddress}` |

Request `QueryValidatorDistributionInfoRequest`:

| Field               | Type     | Description                                                                                              |
| ------------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `validator_address` | `string` | validator\_address defines the validator address to query for. Encoded as cosmos.ValidatorAddressString. |

Response `QueryValidatorDistributionInfoResponse`:

| Field               | Type                                         | Description                                                                                         |
| ------------------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| `operator_address`  | `string`                                     | operator\_address defines the validator operator address. Encoded as cosmos.ValidatorAddressString. |
| `self_bond_rewards` | [`DecCoin`](#cosmos-base-v1beta1-deccoin)\[] | self\_bond\_rewards defines the self delegations rewards.                                           |
| `commission`        | [`DecCoin`](#cosmos-base-v1beta1-deccoin)\[] | commission defines the commission the validator received.                                           |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"validator_address":"<string>"}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/ValidatorDistributionInfo
```

### ValidatorHistoricalRewards

ValidatorHistoricalRewards queries historical rewards for a validator at a specific period.

|      |                                                                                              |
| ---- | -------------------------------------------------------------------------------------------- |
| gRPC | `cosmos.distribution.v1beta1.Query/ValidatorHistoricalRewards`                               |
| REST | `GET /cosmos/distribution/v1beta1/validators/{validatorAddress}/historical_rewards/{period}` |

Request `QueryValidatorHistoricalRewardsRequest`:

| Field               | Type     | Description                                                                                              |
| ------------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `validator_address` | `string` | validator\_address defines the validator address to query for. Encoded as cosmos.ValidatorAddressString. |
| `period`            | `uint64` | period defines the period to query historical rewards for.                                               |

Response `QueryValidatorHistoricalRewardsResponse`:

| Field     | Type                                                                                    | Description                                            |
| --------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| `rewards` | [`ValidatorHistoricalRewards`](#cosmos-distribution-v1beta1-validatorhistoricalrewards) | rewards defines the historical rewards of a validator. |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"validator_address":"<string>","period":"1"}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/ValidatorHistoricalRewards
```

### ValidatorOutstandingRewards

ValidatorOutstandingRewards queries rewards of a validator address.

|      |                                                                                      |
| ---- | ------------------------------------------------------------------------------------ |
| gRPC | `cosmos.distribution.v1beta1.Query/ValidatorOutstandingRewards`                      |
| REST | `GET /cosmos/distribution/v1beta1/validators/{validatorAddress}/outstanding_rewards` |

Request `QueryValidatorOutstandingRewardsRequest`:

| Field               | Type     | Description                                                                                              |
| ------------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `validator_address` | `string` | validator\_address defines the validator address to query for. Encoded as cosmos.ValidatorAddressString. |

Response `QueryValidatorOutstandingRewardsResponse`:

| Field     | Type                                                                                      | Description |
| --------- | ----------------------------------------------------------------------------------------- | ----------- |
| `rewards` | [`ValidatorOutstandingRewards`](#cosmos-distribution-v1beta1-validatoroutstandingrewards) |             |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"validator_address":"<string>"}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/ValidatorOutstandingRewards
```

### ValidatorSlashes

ValidatorSlashes queries slash events of a validator.

|      |                                                                          |
| ---- | ------------------------------------------------------------------------ |
| gRPC | `cosmos.distribution.v1beta1.Query/ValidatorSlashes`                     |
| REST | `GET /cosmos/distribution/v1beta1/validators/{validatorAddress}/slashes` |

Request `QueryValidatorSlashesRequest`:

| Field               | Type                                                    | Description                                                                                              |
| ------------------- | ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `validator_address` | `string`                                                | validator\_address defines the validator address to query for. Encoded as cosmos.ValidatorAddressString. |
| `starting_height`   | `uint64`                                                | starting\_height defines the optional starting height to query the slashes.                              |
| `ending_height`     | `uint64`                                                | starting\_height defines the optional ending height to query the slashes.                                |
| `pagination`        | [`PageRequest`](#cosmos-base-query-v1beta1-pagerequest) | pagination defines an optional pagination for the request.                                               |

Response `QueryValidatorSlashesResponse`:

| Field        | Type                                                                         | Description                                         |
| ------------ | ---------------------------------------------------------------------------- | --------------------------------------------------- |
| `slashes`    | [`ValidatorSlashEvent`](#cosmos-distribution-v1beta1-validatorslashevent)\[] | slashes defines the slashes the validator received. |
| `pagination` | [`PageResponse`](#cosmos-base-query-v1beta1-pageresponse)                    | pagination defines the pagination in the response.  |

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
grpcurl -plaintext -d '{"validator_address":"<string>","starting_height":"1","ending_height":"1","pagination":{"limit":"1"}}' \
  localhost:9090 cosmos.distribution.v1beta1.Query/ValidatorSlashes
```

## Transaction messages

These messages are included in signed transactions, not called as endpoints. See [Transactions](/sdk/latest/learn/concepts/transactions#transactions) for the execution model, and [Sending transactions](/sdk/latest/api-reference/transactions) for the envelope they go into.

Examples use CLI transaction JSON. Decimal fields use values such as `"0.05"`, even when their proto type is `bytes`. The gRPC `TxEncode` method instead requires the scaled value `"50000000000000000"`. See [scalar encodings](/sdk/latest/api-reference/grpc/index#scalar-encodings).

* Handler: Generated client method
* Signer: Account that must sign
* Amino name: Legacy identifier used by hardware wallets and other Amino signers

### CommunityPoolSpend

CommunityPoolSpend defines a governance operation for sending tokens from the community pool in the x/distribution module to another account, which could be the governance module itself. The authority is defined in the keeper.

|            |                                                      |
| ---------- | ---------------------------------------------------- |
| Type URL   | `/cosmos.distribution.v1beta1.MsgCommunityPoolSpend` |
| Handler    | `cosmos.distribution.v1beta1.Msg/CommunityPoolSpend` |
| Signer     | `authority`                                          |
| Amino name | `cosmos-sdk/distr/MsgCommunityPoolSpend`             |

<Note>The signer is the governance module account, which no user holds a key for. This message executes only through a passed governance proposal, not as a transaction you submit directly.</Note>

| Field       | Type                                   | Description                                                                                                                |
| ----------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `authority` | `string`                               | authority is the address that controls the module (defaults to x/gov unless overwritten). Encoded as cosmos.AddressString. |
| `recipient` | `string`                               |                                                                                                                            |
| `amount`    | [`Coin`](#cosmos-base-v1beta1-coin)\[] |                                                                                                                            |

In a transaction:

```json theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
{
  "@type": "/cosmos.distribution.v1beta1.MsgCommunityPoolSpend",
  "authority": "<string>",
  "recipient": "<string>",
  "amount": [
    {
      "denom": "<string>",
      "amount": "<string>"
    }
  ]
}
```

Response `MsgCommunityPoolSpendResponse`:

This message has no fields.

### DepositValidatorRewardsPool

DepositValidatorRewardsPool defines a method to provide additional rewards to delegators to a specific validator.

|            |                                                               |
| ---------- | ------------------------------------------------------------- |
| Type URL   | `/cosmos.distribution.v1beta1.MsgDepositValidatorRewardsPool` |
| Handler    | `cosmos.distribution.v1beta1.Msg/DepositValidatorRewardsPool` |
| Signer     | `depositor`                                                   |
| Amino name | `cosmos-sdk/distr/MsgDepositValRewards`                       |

| Field               | Type                                   | Description                               |
| ------------------- | -------------------------------------- | ----------------------------------------- |
| `depositor`         | `string`                               | Encoded as cosmos.AddressString.          |
| `validator_address` | `string`                               | Encoded as cosmos.ValidatorAddressString. |
| `amount`            | [`Coin`](#cosmos-base-v1beta1-coin)\[] |                                           |

In a transaction:

```json theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
{
  "@type": "/cosmos.distribution.v1beta1.MsgDepositValidatorRewardsPool",
  "depositor": "<string>",
  "validator_address": "<string>",
  "amount": [
    {
      "denom": "<string>",
      "amount": "<string>"
    }
  ]
}
```

Response `MsgDepositValidatorRewardsPoolResponse`:

This message has no fields.

### FundCommunityPool

FundCommunityPool defines a method to allow an account to directly fund the community pool.

|            |                                                     |
| ---------- | --------------------------------------------------- |
| Type URL   | `/cosmos.distribution.v1beta1.MsgFundCommunityPool` |
| Handler    | `cosmos.distribution.v1beta1.Msg/FundCommunityPool` |
| Signer     | `depositor`                                         |
| Amino name | `cosmos-sdk/MsgFundCommunityPool`                   |

| Field       | Type                                   | Description                      |
| ----------- | -------------------------------------- | -------------------------------- |
| `amount`    | [`Coin`](#cosmos-base-v1beta1-coin)\[] |                                  |
| `depositor` | `string`                               | Encoded as cosmos.AddressString. |

In a transaction:

```json theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
{
  "@type": "/cosmos.distribution.v1beta1.MsgFundCommunityPool",
  "amount": [
    {
      "denom": "<string>",
      "amount": "<string>"
    }
  ],
  "depositor": "<string>"
}
```

Response `MsgFundCommunityPoolResponse`:

This message has no fields.

### SetWithdrawAddress

SetWithdrawAddress defines a method to change the withdraw address for a delegator (or validator self-delegation).

|            |                                                      |
| ---------- | ---------------------------------------------------- |
| Type URL   | `/cosmos.distribution.v1beta1.MsgSetWithdrawAddress` |
| Handler    | `cosmos.distribution.v1beta1.Msg/SetWithdrawAddress` |
| Signer     | `delegator_address`                                  |
| Amino name | `cosmos-sdk/MsgModifyWithdrawAddress`                |

| Field               | Type     | Description                      |
| ------------------- | -------- | -------------------------------- |
| `delegator_address` | `string` | Encoded as cosmos.AddressString. |
| `withdraw_address`  | `string` | Encoded as cosmos.AddressString. |

In a transaction:

```json theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
{
  "@type": "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",
  "delegator_address": "<string>",
  "withdraw_address": "<string>"
}
```

Response `MsgSetWithdrawAddressResponse`:

This message has no fields.

### UpdateParams

UpdateParams defines a governance operation for updating the x/distribution module parameters. The authority is defined in the keeper.

|            |                                                |
| ---------- | ---------------------------------------------- |
| Type URL   | `/cosmos.distribution.v1beta1.MsgUpdateParams` |
| Handler    | `cosmos.distribution.v1beta1.Msg/UpdateParams` |
| Signer     | `authority`                                    |
| Amino name | `cosmos-sdk/distribution/MsgUpdateParams`      |

<Note>The signer is the governance module account, which no user holds a key for. This message executes only through a passed governance proposal, not as a transaction you submit directly.</Note>

| Field       | Type                                            | Description                                                                                                                |
| ----------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `authority` | `string`                                        | authority is the address that controls the module (defaults to x/gov unless overwritten). Encoded as cosmos.AddressString. |
| `params`    | [`Params`](#cosmos-distribution-v1beta1-params) | params defines the x/distribution parameters to update. NOTE: All parameters must be supplied.                             |

In a transaction:

```json theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
{
  "@type": "/cosmos.distribution.v1beta1.MsgUpdateParams",
  "authority": "<string>",
  "params": {
    "community_tax": "<string>",
    "withdraw_addr_enabled": false
  }
}
```

Response `MsgUpdateParamsResponse`:

This message has no fields.

### WithdrawDelegatorReward

WithdrawDelegatorReward defines a method to withdraw rewards of delegator from a single validator.

|            |                                                           |
| ---------- | --------------------------------------------------------- |
| Type URL   | `/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward` |
| Handler    | `cosmos.distribution.v1beta1.Msg/WithdrawDelegatorReward` |
| Signer     | `delegator_address`                                       |
| Amino name | `cosmos-sdk/MsgWithdrawDelegationReward`                  |

| Field               | Type     | Description                               |
| ------------------- | -------- | ----------------------------------------- |
| `delegator_address` | `string` | Encoded as cosmos.AddressString.          |
| `validator_address` | `string` | Encoded as cosmos.ValidatorAddressString. |

In a transaction:

```json theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
{
  "@type": "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",
  "delegator_address": "<string>",
  "validator_address": "<string>"
}
```

Response `MsgWithdrawDelegatorRewardResponse`:

| Field    | Type                                   | Description |
| -------- | -------------------------------------- | ----------- |
| `amount` | [`Coin`](#cosmos-base-v1beta1-coin)\[] |             |

### WithdrawValidatorCommission

WithdrawValidatorCommission defines a method to withdraw the full commission to the validator address.

|            |                                                               |
| ---------- | ------------------------------------------------------------- |
| Type URL   | `/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission` |
| Handler    | `cosmos.distribution.v1beta1.Msg/WithdrawValidatorCommission` |
| Signer     | `validator_address`                                           |
| Amino name | `cosmos-sdk/MsgWithdrawValCommission`                         |

| Field               | Type     | Description                               |
| ------------------- | -------- | ----------------------------------------- |
| `validator_address` | `string` | Encoded as cosmos.ValidatorAddressString. |

In a transaction:

```json theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
{
  "@type": "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",
  "validator_address": "<string>"
}
```

Response `MsgWithdrawValidatorCommissionResponse`:

| Field    | Type                                   | Description |
| -------- | -------------------------------------- | ----------- |
| `amount` | [`Coin`](#cosmos-base-v1beta1-coin)\[] |             |

## Types

Messages referenced by the fields above. Protocol buffers version 3 has no required fields, so every field is optional on the wire, and a `[]` suffix marks a repeated field.

### cosmos.base.query.v1beta1.PageRequest

PageRequest is to be embedded in gRPC request messages for efficient pagination. Ex:

`message SomeRequest { Foo some_parameter = 1; PageRequest pagination = 2; }`

| Field         | Type     | Description                                                                                                                                                                                                                          |
| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `key`         | `bytes`  | key is a value returned in PageResponse.next\_key to begin querying the next page most efficiently. Only one of offset or key should be set.                                                                                         |
| `offset`      | `uint64` | offset is a numeric offset that can be used when key is unavailable. It is less efficient than using key. Only one of offset or key should be set.                                                                                   |
| `limit`       | `uint64` | limit is the total number of results to be returned in the result page. If left empty it will default to a value to be set by each app.                                                                                              |
| `count_total` | `bool`   | count\_total is set to true  to indicate that the result set should include a count of the total number of items available for pagination in UIs. count\_total is only respected when offset is used. It is ignored when key is set. |
| `reverse`     | `bool`   | reverse is set to true if results are to be returned in the descending order.                                                                                                                                                        |

### cosmos.base.query.v1beta1.PageResponse

PageResponse is to be embedded in gRPC response messages where the corresponding request message has used PageRequest.

`message SomeResponse { repeated Bar results = 1; PageResponse page = 2; }`

| Field      | Type     | Description                                                                                                                                  |
| ---------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `next_key` | `bytes`  | next\_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. |
| `total`    | `uint64` | total is total number of results available if PageRequest.count\_total was set, its value is undefined otherwise                             |

### cosmos.base.v1beta1.Coin

Coin defines a token with a denomination and an amount.

NOTE: The amount field is an Int which implements the custom method signatures required by gogoproto.

| Field    | Type     | Description            |
| -------- | -------- | ---------------------- |
| `denom`  | `string` |                        |
| `amount` | `string` | Encoded as cosmos.Int. |

### cosmos.base.v1beta1.DecCoin

DecCoin defines a token with a denomination and a decimal amount.

NOTE: The amount field is a Dec which implements the custom method signatures required by gogoproto.

| Field    | Type     | Description                                                                      |
| -------- | -------- | -------------------------------------------------------------------------------- |
| `denom`  | `string` |                                                                                  |
| `amount` | `string` | Encoded as cosmos.Dec, read back as an integer string scaled by 10^18 over gRPC. |

### cosmos.distribution.v1beta1.DelegationDelegatorReward

DelegationDelegatorReward represents the properties of a delegator's delegation reward.

| Field               | Type                                         | Description                               |
| ------------------- | -------------------------------------------- | ----------------------------------------- |
| `validator_address` | `string`                                     | Encoded as cosmos.ValidatorAddressString. |
| `reward`            | [`DecCoin`](#cosmos-base-v1beta1-deccoin)\[] |                                           |

### cosmos.distribution.v1beta1.DelegatorStartingInfo

DelegatorStartingInfo represents the starting info for a delegator reward period. It tracks the previous validator period, the delegation's amount of staking token, and the creation height (to check later on if any slashes have occurred). NOTE: Even though validators are slashed to whole staking tokens, the delegators within the validator may be left with less than a full token, thus sdk.Dec is used.

| Field             | Type     | Description                                                                      |
| ----------------- | -------- | -------------------------------------------------------------------------------- |
| `previous_period` | `uint64` |                                                                                  |
| `stake`           | `string` | Encoded as cosmos.Dec, read back as an integer string scaled by 10^18 over gRPC. |
| `height`          | `uint64` |                                                                                  |

### cosmos.distribution.v1beta1.Params

Params defines the set of params for the distribution module.

| Field                   | Type     | Description                                                                                                                                                                                                                     |
| ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `community_tax`         | `string` | Encoded as cosmos.Dec, read back as an integer string scaled by 10^18 over gRPC.                                                                                                                                                |
| `base_proposer_reward`  | `string` | Deprecated: The base\_proposer\_reward field is deprecated and is no longer used in the x/distribution module's reward mechanism. Deprecated. Encoded as cosmos.Dec, read back as an integer string scaled by 10^18 over gRPC.  |
| `bonus_proposer_reward` | `string` | Deprecated: The bonus\_proposer\_reward field is deprecated and is no longer used in the x/distribution module's reward mechanism. Deprecated. Encoded as cosmos.Dec, read back as an integer string scaled by 10^18 over gRPC. |
| `withdraw_addr_enabled` | `bool`   |                                                                                                                                                                                                                                 |

### cosmos.distribution.v1beta1.ValidatorAccumulatedCommission

ValidatorAccumulatedCommission represents accumulated commission for a validator kept as a running counter, can be withdrawn at any time.

| Field        | Type                                         | Description |
| ------------ | -------------------------------------------- | ----------- |
| `commission` | [`DecCoin`](#cosmos-base-v1beta1-deccoin)\[] |             |

### cosmos.distribution.v1beta1.ValidatorCurrentRewards

ValidatorCurrentRewards represents current rewards and current period for a validator kept as a running counter and incremented each block as long as the validator's tokens remain constant.

| Field     | Type                                         | Description |
| --------- | -------------------------------------------- | ----------- |
| `rewards` | [`DecCoin`](#cosmos-base-v1beta1-deccoin)\[] |             |
| `period`  | `uint64`                                     |             |

### cosmos.distribution.v1beta1.ValidatorHistoricalRewards

ValidatorHistoricalRewards represents historical rewards for a validator. Height is implicit within the store key. Cumulative reward ratio is the sum from the zeroeth period until this period of rewards / tokens, per the spec. The reference count indicates the number of objects which might need to reference this historical entry at any point. ReferenceCount = number of outstanding delegations which ended the associated period (and might need to read that record) + number of slashes which ended the associated period (and might need to read that record) + one per validator for the zeroeth period, set on initialization

| Field                     | Type                                         | Description |
| ------------------------- | -------------------------------------------- | ----------- |
| `cumulative_reward_ratio` | [`DecCoin`](#cosmos-base-v1beta1-deccoin)\[] |             |
| `reference_count`         | `uint32`                                     |             |

### cosmos.distribution.v1beta1.ValidatorOutstandingRewards

ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards for a validator inexpensive to track, allows simple sanity checks.

| Field     | Type                                         | Description |
| --------- | -------------------------------------------- | ----------- |
| `rewards` | [`DecCoin`](#cosmos-base-v1beta1-deccoin)\[] |             |

### cosmos.distribution.v1beta1.ValidatorSlashEvent

ValidatorSlashEvent represents a validator slash event. Height is implicit within the store key. This is needed to calculate appropriate amount of staking tokens for delegations which are withdrawn after a slash has occurred.

| Field              | Type     | Description                                                                      |
| ------------------ | -------- | -------------------------------------------------------------------------------- |
| `validator_period` | `uint64` |                                                                                  |
| `fraction`         | `string` | Encoded as cosmos.Dec, read back as an integer string scaled by 10^18 over gRPC. |
