# Vbr

# Abstract

The vbr (Validator Block Rewards) module allows validators to get a recurrent reward each time a new block is proposed, even if such a block does not contain any transaction.

# How it works

During genesis, a pool of tokens is created and it's filled with a decided amount of tokens.
From this point in epoch duration timing, whenever an epoch ends an amount of tokens will be sent to the active validators.

The amount of tokens that will be sent to the validators that proposed the blocks during the epoch is computed using the formula described below.

# Definitions

Block produced in a year, considering a block interval of 5 seconds and a year length of 365 days and 8 hours:
B=365.25×24×60×605=6,311,520B = 365.25 \times 24 \times 60 \times \frac{60}{5} = 6,311,520

Initial rewards pool amount:
P=12,500,000P = 12,500,000

Number of active validators

Annual distribution for the nn-th validator:
ADn=Sn0.5V100AD_{n} = S_{n} * 0.5 * \frac{V}{100}


  • SnS_{n} is the amount of bonded tokens of the nn-th validator

Possible Epoch duration:
E={60sminuteminute60hourhour24dayhour247weekhour2430monthE = \begin{cases} 60s &\text minute \\ minute*60 &\text hour \\ hour*24 &\text day \\ hour*24*7 &\text week \\ hour*24*30 &\text month \end{cases}

Yearly pool reward amount for the yy-th year:
Py={Pif y=0Py1n,eRn,eif y>0P_y = \begin{cases} P &\text{if } y = 0 \\ P_{y - 1} - \sum_{n, e}{R_{n, e}} &\text{if } y > 0 \end{cases}


  • Rn,eR_{n, e} is the reward of the nn-th validator at the end of the ee-th epoch.

# Formula

Let's define the maximum reward for the ee-th epoch as

Re=vADnER_e = \sum_{v}\frac{AD_{n}}{E}

# Contents

  1. State
  2. Messages
  3. Events
  4. Parameters
  5. Client