evmos/inflation
Table of Contents
- evmos/inflation/v1/inflation.proto
-
evmos/inflation/v1/query.proto
- MQueryCirculatingSupplyRequest
- MQueryCirculatingSupplyResponse
- MQueryEpochMintProvisionRequest
- MQueryEpochMintProvisionResponse
- MQueryInflationRateRequest
- MQueryInflationRateResponse
- MQueryParamsRequest
- MQueryParamsResponse
- MQueryPeriodRequest
- MQueryPeriodResponse
- MQuerySkippedEpochsRequest
- MQuerySkippedEpochsResponse
- SQuery
- evmos/inflation/v1/genesis.proto
- Scalar Value Types
evmos/inflation/v1/inflation.proto
TopExponentialCalculation
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))
Field | Type | Label | Description |
a | string | initial value |
|
r | string | reduction factor |
|
c | string | 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%)
Field | Type | Label | Description |
staking_rewards | string | staking_rewards defines the proportion of the minted minted_denom that is to be allocated as staking rewards |
|
usage_incentives | string | 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 |
evmos/inflation/v1/query.proto
TopQueryCirculatingSupplyRequest
QueryCirculatingSupplyRequest is the request type for the
Query/CirculatingSupply RPC method.
QueryCirculatingSupplyResponse
QueryCirculatingSupplyResponse is the response type for the
Query/CirculatingSupply RPC method.
Field | Type | Label | Description |
circulating_supply | cosmos.base.v1beta1.DecCoin | 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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
inflation_rate | string | 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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
skipped_epochs | uint64 | number of epochs that the inflation module has been disabled. |
Query
Query provides defines the gRPC querier service.
Method Name | Request Type | Response Type | Description |
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/genesis.proto
TopGenesisState
GenesisState defines the inflation module's genesis state.
Field | Type | Label | Description |
params | Params | params defines all the paramaters of the module. |
|
period | uint64 | amount of past periods, based on the epochs per period param |
|
epoch_identifier | string | inflation epoch identifier |
|
epochs_per_period | int64 | number of epochs after which inflation is recalculated |
|
skipped_epochs | uint64 | number of epochs that have passed while inflation is disabled |
Params
Params holds parameters for the inflation module.
Field | Type | Label | Description |
mint_denom | string | type of coin to mint |
|
exponential_calculation | ExponentialCalculation | variables to calculate exponential inflation |
|
inflation_distribution | InflationDistribution | inflation distribution of the minted denom |
|
enable_inflation | bool | parameter to enable inflation and halt increasing the skipped_epochs |
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 |