module_inflation (including mint)

As of the v7 upgrade(May 2026), The effective inflation is now controlled by the new module_inflation, which wraps module_mint (See here for the full proposal).

To avoid splitting the explanation across two pages, both modules are documented together here.

inflation module

Introduction

v7 introduces x/inflation, which controls the total supply cap and gradually reduces the inflation rate over time.

Overview

How inflation decay works

The inflation rate decreases each month by a fixed percentage (compound decay), so early stakers benefit from higher inflation before it tapers off.

inflation_rate = base_rate Γ— (1 βˆ’ decay_rate) ^ months_elapsed

Where:
  base_rate      = 1% (fixed; InflationMin = InflationMax = 0.01)
  decay_rate     = 6.8% per month
  months_elapsed = blocks since upgrade height Γ· blocks per month

Inflation is always β‰₯ 0 and never goes negative.

Mainnet parameters

Parameter
Value

Max supply

100 billion CRO (10^19 basecro)

Decay rate

6.8% per month

Decay start

v7 upgrade block height

Base rate

1% (fixed min/max)

Transactions And Query

Query inflation parameters

All parameters are governance-adjustable.

Query
Description

params

Returns max_supply, decay_rate, burned_addresses

Transactions:

Transaction
Description

MsgUpdateParams

Update inflation parameters (governance only)


mint module

Introduction

The mint module is responsible for creating tokens in a flexible way to reward the validators who participate in the proof of stake consensus process (see also the distribution module). It is also designed in a way to bring a balance between market liquidity and staked supply.

Overview

Network parameters

Below are all the network parameters for the mint module:

  • "blocks_per_year" - The expected number of blocks being produced per year;

  • "goal_bonded" - Goal of bonded token in percentage;

  • "inflation_max" - Maximum annual inflation rate;

  • "inflation_min" - Minimum annual inflation rate;

  • "inflation_rate_change" - Maximum annual change in inflation rate;

  • "mint_denom" - Token type being minted.

The target annual inflation rate is recalculated for each previous cycle. The inflation is also subject to a rate change (positive or negative) depending on the distance from the desired ratio ("goal_bonded"). The maximum rate change possible is defined to be "inflation_rate_change" per year, where the annual inflation is capped as between "inflation_min" and "inflation_max".

Parameters explained

"goal_bonded"

Goal of bonded token in percentage (also called staking ratio), the changes of the reward and the inflation rate related to this parameter can be summarized as follows cases:

  • If the staking ratio is below the "goal_bonded" , the inflation rate will increase until reaching a maximum upper bound ("inflation_max");

  • If the staking ratio is equal to "goal_bonded", the inflation rate will stay constant;

  • If the staking ratio is above the "goal_bonded", it will decrease until reaching a minimum lower bound "inflation_min").

"inflation_rate_change"

Maximum annual change in inflation rate, represents the maximum percentage by which the inflation rate can change in a year.

Emissions and supply of $CRO

The current emissions and supply of $CRO and its emission projections can be easily queried directly from URLs, as described in this section.

How inflation rate is calculated

The magnitude of the rate of change of the inflation rate is controlled by an additional factor, which is the ratio between the current bonded ratio with the "goal_bonded", the inflation rate is updated at the end of every block accordingly to the following formula:

Or simply, when the inflation rate within the maximum and the minimum bounds

as

This function then updates the current inflation rate by adding the inflationRateChange to it. Finally, the function checks that the updated inflation rate is within the range defined by the InflationMin and InflationMax parameters, and returns the resulting inflation rate.

From V7 upgrade, params.InflationRateChange is fixed to 0, fixing Inflation Rate above finally at 1%.

How emissions are calculated

Annual provisions

The emission of the Cronos POS Chain is controlled by the inflation rate and the total supply of $CRO. New $CRO tokens are minted at each block and distributed as block rewards to delegators. The inflation rate determines the amount of $CRO emitted to delegators at each block, with emissions being distributed as staking rewards according to the Proof-of-Stake consensus mechanism.

The annualized quantity of $CRO emitted is called Annual Provisions. It can be calculated based on the inflation rate with:

At any point, the inflation, in annualized percentage increase of CRO supply, can be queried from https://rest.mainnet.cronos-pos.org/cosmos/mint/v1beta1/inflation.

This can be seen in the following code in the Cosmos SDK:

Easy to use endpoints to query $CRO emissions

Note: These numbers are provided in basecro, where 1 CRO = 10^8 basecro on the Cronos POS chain.

Block provisions

To calculate the number of $CRO emitted to delegators at each block, we need to divide the Annual Provisions by the expected number of blocks per year (blocks_per_year, an be queried at any time at this endpoint)

The resulting number is called the "Block Provision":

This can be seen in the following code in the CosmosSDK:

Total and Circulating Supply of $CRO

  • The Total Supply refers to the total amount of $CRO that has been created on Cronos POS chain;

  • The Circulating Supply refers to the total supply minus the amount stored in the "burn address", which has effectively been taken out of circulation by community burn governance proposals, i.e.

Easy to use endpoints to query $CRO supplies:

  • The current total supply of $CRO can be obtained here.

  • The current circulating supply of $CRO can be obtained here.

  • The current burned amount of $CRO can be obtained here.

Note - This number is provided in basecro, where 1 CRO = 10^8 basecro on the Cronos POS chain.


Queries

Query the current minting annual provisions value

We can query the current minting annual provisions value, for example:

implies that the current minting annual provisions will be 100346483960386394 basecro ( i.e. 1,003,464,839 CRO)

Query the current minting inflation value

We can query the current minting inflation value, for example:

Query the current minting parameters

We can query the current query parameters by

Parameter
Value
Description

inflation_max

0.01 (fixed value from V7)

Maximum annual inflation rate (1%)

inflation_min

0.01 (fixed value from V7)

Minimum annual inflation rate (1%)

inflation_rate_change

0 (fixed value from V7)

Maximum annual change in inflation rate (fixed, no dynamic adjustment)


Appendix

gov module: Network Parameters and configuration

The following tables show overall effects on different configurations of the mint related network parameters:

blocks_per_year

goal_bonded

mint_denom

Type

string (uint64)

string (dec)

string

Higher

More expected blocks per year

Higher target bonding ratio

N/A

Lower

Less expected blocks per year

Lower target bonding ratio

N/A

Constraints

Value has to be a positive integer

Value has to be less or equal to 1

N/A

Sample configuration

5256000 (5,256,000 blocks)

0.66 (66%)

basecro

inflation_max

inflation_min

inflation_rate_change

Type

string (dec)

string (dec)

string (dec)

Higher

N/A

N/A

N/A

Lower

N/A

N/A

N/A

Constraints

fixed to 0.01 (1%) from V7

fixed to 0.01 (1%) from V7

fixed to 0 from V7

Sample configuration

0.01 (1%)

0.01 (1%)

0 (0%)

Last updated