Custom Unstaking Period

Custom Unstaking Period (CUP)

Custom Unstaking Period (CUP) is a novel approach in which the user can select their unstaking period.

Minimum CUP = 14 Epochs (days) Maximum CUP = 365 Epochs (days)

  • The longer the unstaking period, the bigger the $BRO and $bBRO rewards

  • While unstaking, the user still receives $BRO and $bBRO rewards, but with a reduced rate

    • -10% BRO

    • -50% bBRO

While $BRO is staked it can not be transferred to other wallets or sold on the market.


  1. To receive the $BRO back, the user needs to start unstaking, and wait for as many days as their specified CUP

  2. After that period has passed the user can freely withdraw their $BRO tokens.

During the unstaking if a user changes their mind they can cancel the unstaking and reinstate the original CUP.

While a user has their $BRO staked, they cannot transfer them to other wallets or sell them on the market.


  1. Alice has 5,000 $BRO and decides to stake them

  2. She chooses an unstaking period of 180 epochs (6 months)

  3. After 3 months, she decides to unstake that 5,000 $BRO

  4. Now she needs to wait for 3 months before she can claim the tokens. During these 3 months she receives decreased staking rewards.

  5. After 3 months, she can claim the staked 5,000 tokens


An Epoch is a set period of time on which all the time-based functionalities of the DAO are connected (un/staking, reward distribution, bonding, etc.).

  • 1 Epoch = 24 hours

  • New Epoch starts at 12:00:00 UTC

A user may consider Epochs similar to days, but DAO has a unified time across the globe for "midnight". Once "midnight" passes the epoch advances to the next epoch and all the connected functionalities with it.


  • Use can have multiple unstaking positions but there is a limit to not run out of gas

Example: if the limit is 2, then Alice could stake 1000 BRO with an unstaking period of 180 epochs, and another 1000 BRO with unstaking period of 365 epochs. If she wants to stake another 1000 BRO - she can't choose a new unstaking period but can add it to the existing unstaking periods of 180 or 365 epochs.

  • Users can always increase their unstaking period

    • 1000 BRO with unstaking period of 180 epochs, users can increase the unstaking period to 365 epochs.

  • Only the full amounts can be increased, partial increases are not possible (eg. 500 out of 1000)

We have chosen the Custom Unstaking Period approach as it has a few advantages over the locking period as it:

  • Clear distinguis between short term stakers and long term believers If a user sets a locking period for 1 year they are willing to believe in the project for the next year, as this locking period is coming closer to ending they are less aligned with the long term success of the projects but enjoy the same benefits as newly locked users.

  • Less likely to create random events when a lot of tokens are unlocked at the same time Especially when the protocol launches there might be a lot of users that specify similar time-frames. On Terra most users staked for specific times (1 month, 3 months, 1 year, 2 years). Using CUP reduces the chance that those users will have their tokens unlocked at the same time.

  • Continuous staking without interruptions If you believe in the project you don't have to worry about relocking. Just stake, set your CUP and let it sit in there as long as you wish to.

  • Reduces uncertainty by limiting the amount of big unlocks happening If a user with a lot of tokens believes in the project doesn't need to unlock. and locks for the maximum amount they won't get their tokens released (when the locking period expires) unless they trigger the unstaking period. These withdrawals can be seen on the chain.

Rewards calculation


  • The amount of $BRO rewards that are distributed to the stakers per epoch is always fixed (currently 125,000 $BRO)

  • Longer unstaking period = earning more $BRO rewards

If the user sets a longer unstaking period they receive an increased $BRO reward generation up to a 40% maximum bonus (this is a percentage increase, not a total).

The users' $BRO gets separated into reward generating $BRO and idle $BRO based on their selected unstaking period. The formula below calculates what the ratio of the separation is:

userRewardGenerating$BRO = Base+(1-Base)*selectedUnstakingPeriod/MaxUnstakingPeriod*Staked$BRO

When an epoch ends, the rewards are distributed to the users based on the following formula:

$BROrewards = userRewardGenerating$BRO/totalRewardGenerating$BRO

The amount of $bBRO rewards that are distributed to the stakers per epoch is dynamic and based on the amount of $BRO staked and at which unstaking periods.

$bBROrewardsYearly = (Base + XtraMultiplier * unstakingPeriod^2 * 10^{-6})*Staked$BRO

Reduction while unstaking

  • The reduction for $bBRO rewards during the unstaking period is 50% of the normal rewards generation (based on the unstaking period)

  • The reduction for $BRO rewards during the unstaking period is a 10% less (based on the unstaking period) staked $BRO is considered as userRewardGenerating$BRO

Last updated

About Brokkr