πŸ’‘Tiered Staking

Tiered staking is a new staking mechanism introduced in Cronos POS Chain v7 (via the x/tieredrewards module). CRO holders can lock their stake for a defined exit commitment period in exchange for a higher APY on top of standard staking rewards.

There are two components to staking rewards under the new model:

Reward Type
Source
Condition

Base rewards

The inflation + transaction fee + reserve top up

Must be delegated to a bonded validator

Bonus rewards

Tier Rewards Pool

Must be in a tier position AND delegated to a bonded validator

The base reward floor (~3% APY) is guaranteed by the module - if block fees fall below the target rate, the rewards pool automatically tops up the shortfall. Bonus rewards are a fixed APY on top of the base rate, determined by the tier you choose.

Key things to know:

  • Voting rights preserved Tier-locked positions count toward governance voting power for the full duration of the lock.

  • Slashing applies Locked positions are subject to standard validator slashing rules.

  • Rewards are not automatic Rewards do not arrive in your wallet automatically. They are paid out when settlement runs inside a transaction or via hooks. Besides claim-tier-rewards, several other scenarios can implicitly claim outstanding rewards too (see Claim base and bonus rewards).

  • Change validator freely You can move your position to a different validator at any time without triggering exit.


Tier Structure

Tier
Exit Commitment
Bonus APY
Total APY (approx.)
Min. Lock

Base

β€”

β€”

~3%

β€”

1

1 year

+2%

~5%

100 CRO

2

2 years

+4%

~7%

100 CRO

3

4 years

+7%

~10%

100 CRO

APY values are illustrative. Actual rates depend on governance decisions and available protocol revenue. All tier parameters are governance-adjustable.

For integration: Always fetch live tier values from the chain. Parameters can change via governance. Use GET /chainmain/tieredrewards/v1/tiers or chain-maind query tieredrewards tiers. The on-chain Tier struct fields are: Id, ExitDuration, BonusApy (decimal, e.g. 0.02 = 2%), MinLockAmount, CloseOnly.

The exit commitment is the waiting period that begins when you choose to exit - not when you originally locked your stake. You continue earning full base and bonus rewards throughout this waiting period.

When governance sets a tier to close-only (CloseOnly = true), no new positions can be opened in that tier. Existing positions continue earning rewards and can exit normally. This is how a tier is retired over time.


Testnet vs Mainnet Parameters

Testnet uses shorter durations and lower minimums so full lifecycle flows can be tested in minutes.

Parameter
Mainnet
Testnet

Tier 1 exit commitment

1 year

1 minute

Tier 2 exit commitment

2 years

2 minutes

Tier 3 exit commitment

4 years

4 minutes

Min lock amount (all tiers)

100 CRO

1 CRO

Endpoints:

Network
REST
Chain ID

Mainnet

https://rest.mainnet.crypto.org

crypto-org-chain-mainnet-1

Testnet

https://rest.testnet-croeseid-4.cronos-pos.org

testnet-croeseid-4


Position Lifecycle

You can cancel exit at any time using clear-position. The exit timer resets and bonus rewards resume immediately.


Transaction Commands

Replace [YOUR_KEY] and [CHAIN_ID] with your key name and the appropriate chain ID.

Common flags:

Entering a Tier

Option A - Lock fresh CRO into a tier:

Argument
Description

tier-id

1, 2, or 3

amount

In basecro (1 CRO = 100,000,000 basecro)

validator-address

Validator operator address (starts with crocncl...)

Optional flag: --trigger-exit-immediately - starts the exit countdown immediately at lock time.

Example:

Option B - Lock an existing delegation (no unbonding required):

  • Converts your existing stake on that validator into a tier position in one step

  • Partial commits are supported β€” you can commit a portion of your delegation

  • Optional flag: --trigger-exit-immediately

Example:

Managing a Position

Query the positions by owner:

Add more CRO to an existing position:

Move your position (redelegate) to a different validator (does not trigger exit):

Claim base and bonus rewards (explicit):

Multiple position IDs can be claimed in a single transaction (space-separated):

Other user transactions that settle rewards first

The keeper runs the same base + bonus settlement before the main execution of these messages: tier-undelegate, tier-redelegate, add-to-tier-position, exit-tier-with-delegation, and clear-position.

Slashing a position

When the staking module slashes an active redelegation that is mapped to your position, any outstanding rewards on the position will also be claimed.

Exiting a Tier

Step 1 - Trigger exit (starts the commitment countdown):

Your position continues earning full base and bonus rewards during the commitment period.

Cancel exit at any time:

Step 2 - After exit commitment elapses, choose one route:

Option A - Instant exit (no unbonding):

Your stake transfers back to your wallet on the same validator immediately. Partial exits are supported that the remaining position must still meet the tier minimum (100 CRO on mainnet).

Option B - Standard unbonding (28-day wait):

Option C - Renew your commitment with clearPosition

After exit commitment elapses, you can use clear-position to cancel the exit instead of withdrawing. This resets the exit timer and resumes bonus rewards, effectively renewing your commitment without needing to re-lock.

Query Commands


REST API Reference

No authentication required. Standard HTTP GET requests.

Network
Base URL

Mainnet

https://rest.mainnet.crypto.org

Testnet

https://rest.testnet-croeseid-4.cronos-pos.org

x/tieredrewards Endpoints

Endpoint
Description

GET /chainmain/tieredrewards/v1/tiers

All tier definitions

GET /chainmain/tieredrewards/v1/params

Module parameters

GET /chainmain/tieredrewards/v1/position/{position_id}

Single position by ID

GET /chainmain/tieredrewards/v1/positions/{owner_address}

All positions for an owner

GET /chainmain/tieredrewards/v1/positions

All positions (paginated)

GET /chainmain/tieredrewards/v1/estimate_rewards/{position_id}

Estimated pending rewards

GET /chainmain/tieredrewards/v1/rewards_pool_balances

Rewards pool balance

GET /chainmain/tieredrewards/v1/voting_power/{owner}

Voting power by owner

GET /chainmain/tieredrewards/v1/total_delegated_voting_power

Total voting power

GET /chainmain/tieredrewards/v1/validator_data/{validator}

Validator reward data

GET /chainmain/tieredrewards/v1/position_mappings/{position_id}

Unbonding/redelegation mappings

x/inflation Endpoints

Endpoint
Description

GET /chainmain/inflation/v1/params

Inflation parameters (max_supply, decay_rate, burned_addresses)

Pagination

List endpoints that support pagination via query parameters:


Integration

Tier positions are queryable via standard public REST endpoints.

Key fields in position responses

Field
Notes

tier_id

Which tier: 1, 2, or 3

amount

Amount of tokens stored in the position

delegated_shares

Shares held by the tier module on behalf of this position

validator

Current validator operator address

exit_triggered_at

Zero value = not exiting

exit_unlock_at

When exit commitment elapses and tokens become withdrawable

last_bonus_accrual

Timestamp of last bonus settlement

Partners signing and submitting transactions use standard Cosmos SDK transaction signing - the same flow as regular staking transactions. No new signing logic is required.


Key Rules and Gotchas

Topic
Rule

Rewards settlement

Rewards do not distribute automatically. Users either claim directly claim-tier-rewards or through other messages that will initiate an claim.

Exit commitment timing

The commitment period starts when you trigger exit, not when you entered the tier.

Bonus stops at exit unlock

Bonus stops accruing once the exit commitment elapses. Base rewards continue.

No auto-rollover

When exit commitment elapses, the position stays active until the user submits an exit transaction.

Add to position

Cannot add tokens while an exit is in progress. Cancel with clear-position first.

Redelegate freely

Moving to a different validator does not trigger exit or affect tier status.

Partial exits

Instant exit supports partial amounts. Remaining balance must still meet the tier minimum.

Pool can be empty

If the rewards pool has insufficient balance, the claim transaction fails. Retry after replenishment.

Slashing applies

Tier-locked positions are subject to standard validator slashing rules.

Voting rights retained

Tier-locked positions count toward governance voting power throughout the lock.

Validator jailed or removed

Position stays valid. User can redelegate to another validator without triggering exit.


Quick Reference

Action
Command

Lock fresh CRO

tx tieredrewards lock-tier [tier-id] [amount] [validator]

Commit existing stake

tx tieredrewards commit-delegation-to-tier [validator] [amount] [tier-id]

Add to position

tx tieredrewards add-to-tier-position [position-id] [amount]

Redelegate

tx tieredrewards tier-redelegate [position-id] [dst-validator]

Claim rewards

tx tieredrewards claim-tier-rewards [position-id ...]

Trigger exit

tx tieredrewards trigger-exit [position-id]

Cancel exit

tx tieredrewards clear-position [position-id]

Instant exit

tx tieredrewards exit-tier-with-delegation [position-id] [amount]

Start unbonding

tx tieredrewards tier-undelegate [position-id]

Withdraw after unbonding

tx tieredrewards withdraw-from-tier [position-id]

View my positions

query tieredrewards positions-by-owner [address]

Estimate rewards

query tieredrewards estimate-position-rewards [position-id]

View tiers

query tieredrewards tiers

Inflation params

query inflation params

Last updated