evmos/inflation

Table of Contents

evmos/inflation/v1/genesis.proto

Top

Copyright Tharsis Labs Ltd.(Evmos)

SPDX-License-Identifier:ENCL-1.0(https://github.com/evmos/evmos/blob/main/LICENSE)

GenesisState

GenesisState defines the inflation module's genesis state.

FieldTypeLabelDescription
params Params

params defines all the parameters of the module.

period uint64

period is the amount of past periods, based on the epochs per period param

epoch_identifier string

epoch_identifier for inflation

epochs_per_period int64

epochs_per_period is the number of epochs after which inflation is recalculated

skipped_epochs uint64

skipped_epochs is the number of epochs that have passed while inflation is disabled

Params

Params holds parameters for the inflation module.

FieldTypeLabelDescription
mint_denom string

mint_denom specifies the type of coin to mint

exponential_calculation ExponentialCalculation

exponential_calculation takes in the variables to calculate exponential inflation

inflation_distribution InflationDistribution

inflation_distribution of the minted denom

enable_inflation bool

enable_inflation is the parameter that enables inflation and halts increasing the skipped_epochs

evmos/inflation/v1/inflation.proto

Top

Copyright Tharsis Labs Ltd.(Evmos)

SPDX-License-Identifier:ENCL-1.0(https://github.com/evmos/evmos/blob/main/LICENSE)

ExponentialCalculation

ExponentialCalculation holds factors to calculate exponential inflation on

each period. Calculation reference:

periodProvision = exponentialDecay * bondingIncentive

f(x) = (a * (1 - r) ^ x + c) * (1 + max_variance - bondedRatio *

(max_variance / bonding_target))

FieldTypeLabelDescription
a string

a defines the initial value

r string

r defines the reduction factor

c string

c defines the parameter for long term inflation

bonding_target string

bonding_target

max_variance string

max_variance

InflationDistribution

InflationDistribution defines the distribution in which inflation is

allocated through minting on each epoch (staking, incentives, community). It

excludes the team vesting distribution, as this is minted once at genesis.

The initial InflationDistribution can be calculated from the Evmos Token

Model like this:

mintDistribution1 = distribution1 / (1 - teamVestingDistribution)

0.5333333 = 40% / (1 - 25%)

FieldTypeLabelDescription
staking_rewards string

staking_rewards defines the proportion of the minted minted_denom that is to be allocated as staking rewards

usage_incentives string

Deprecated. Deprecated: usage_incentives defines the proportion of the minted minted_denom that is to be allocated to the incentives module address

community_pool string

community_pool defines the proportion of the minted minted_denom that is to be allocated to the community pool

Fields with deprecated option

Name Option
usage_incentives

true

evmos/inflation/v1/query.proto

Top

Copyright Tharsis Labs Ltd.(Evmos)

SPDX-License-Identifier:ENCL-1.0(https://github.com/evmos/evmos/blob/main/LICENSE)

QueryCirculatingSupplyRequest

QueryCirculatingSupplyRequest is the request type for the

Query/CirculatingSupply RPC method.

QueryCirculatingSupplyResponse

QueryCirculatingSupplyResponse is the response type for the

Query/CirculatingSupply RPC method.

FieldTypeLabelDescription
circulating_supply cosmos.base.v1beta1.DecCoin

circulating_supply is the total amount of coins in circulation

QueryEpochMintProvisionRequest

QueryEpochMintProvisionRequest is the request type for the

Query/EpochMintProvision RPC method.

QueryEpochMintProvisionResponse

QueryEpochMintProvisionResponse is the response type for the

Query/EpochMintProvision RPC method.

FieldTypeLabelDescription
epoch_mint_provision cosmos.base.v1beta1.DecCoin

epoch_mint_provision is the current minting per epoch provision value.

QueryInflationRateRequest

QueryInflationRateRequest is the request type for the Query/InflationRate RPC

method.

QueryInflationRateResponse

QueryInflationRateResponse is the response type for the Query/InflationRate

RPC method.

FieldTypeLabelDescription
inflation_rate string

inflation_rate by which the total supply increases within one period

QueryParamsRequest

QueryParamsRequest is the request type for the Query/Params RPC method.

QueryParamsResponse

QueryParamsResponse is the response type for the Query/Params RPC method.

FieldTypeLabelDescription
params Params

params defines the parameters of the module.

QueryPeriodRequest

QueryPeriodRequest is the request type for the Query/Period RPC method.

QueryPeriodResponse

QueryPeriodResponse is the response type for the Query/Period RPC method.

FieldTypeLabelDescription
period uint64

period is the current minting per epoch provision value.

QuerySkippedEpochsRequest

QuerySkippedEpochsRequest is the request type for the Query/SkippedEpochs RPC

method.

QuerySkippedEpochsResponse

QuerySkippedEpochsResponse is the response type for the Query/SkippedEpochs

RPC method.

FieldTypeLabelDescription
skipped_epochs uint64

skipped_epochs is the number of epochs that the inflation module has been disabled.

Query

Query provides defines the gRPC querier service.

Method NameRequest TypeResponse TypeDescription
Period QueryPeriodRequest QueryPeriodResponse

Period retrieves current period.

EpochMintProvision QueryEpochMintProvisionRequest QueryEpochMintProvisionResponse

EpochMintProvision retrieves current minting epoch provision value.

SkippedEpochs QuerySkippedEpochsRequest QuerySkippedEpochsResponse

SkippedEpochs retrieves the total number of skipped epochs.

CirculatingSupply QueryCirculatingSupplyRequest QueryCirculatingSupplyResponse

CirculatingSupply retrieves the total number of tokens that are in circulation (i.e. excluding unvested tokens).

InflationRate QueryInflationRateRequest QueryInflationRateResponse

InflationRate retrieves the inflation rate of the current period.

Params QueryParamsRequest QueryParamsResponse

Params retrieves the total set of minting parameters.

Methods with HTTP bindings

Method Name Method Pattern Body
Period GET /evmos/inflation/v1/period
EpochMintProvision GET /evmos/inflation/v1/epoch_mint_provision
SkippedEpochs GET /evmos/inflation/v1/skipped_epochs
CirculatingSupply GET /evmos/inflation/v1/circulating_supply
InflationRate GET /evmos/inflation/v1/inflation_rate
Params GET /evmos/inflation/v1/params

evmos/inflation/v1/tx.proto

Top

Copyright Tharsis Labs Ltd.(Evmos)

SPDX-License-Identifier:ENCL-1.0(https://github.com/evmos/evmos/blob/main/LICENSE)

MsgUpdateParams

MsgUpdateParams defines a Msg for updating the x/inflation module parameters.

FieldTypeLabelDescription
authority string

authority is the address of the governance account.

params Params

params defines the x/inflation parameters to update. NOTE: All parameters must be supplied.

MsgUpdateParamsResponse

MsgUpdateParamsResponse defines the response structure for executing a

MsgUpdateParams message.

Msg

Msg defines the evm Msg service.

Method NameRequest TypeResponse TypeDescription
UpdateParams MsgUpdateParams MsgUpdateParamsResponse

UpdateParams defined a governance operation for updating the x/inflation module parameters. The authority is hard-coded to the Cosmos SDK x/gov module account

Scalar Value Types

.proto Type Notes Python Type
double float
float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int/long
uint32 Uses variable-length encoding. int/long
uint64 Uses variable-length encoding. int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. int/long
sfixed32 Always four bytes. int
sfixed64 Always eight bytes. int/long
bool boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. str/unicode
bytes May contain any arbitrary sequence of bytes. str