waves_logo Docs
  • Why Waves
    Why Waves
  • Waves Basics
    Waves Basics
  • Account
    • Creating Account
      Creating Account
    • Address
      Address
    • Account Balance
      Account Balance
    • Account Data Storage
      Account Data Storage
    • Alias
      Alias
    • dApp and Smart Account
      dApp and Smart Account
    Account
  • Token (Asset)
    • Non-Fungible Token
      Non-Fungible Token
    • Smart Asset
      Smart Asset
    • Token ID
      Token ID
    • WAVES
      WAVES
    Token (Asset)
  • Transaction
    • Transaction Fee
      • Sponsored Fee
        Sponsored Fee
      Transaction Fee
    • Signature and Proofs
      Signature and Proofs
    • Transaction Types
      • Burn Transaction
        Burn Transaction
      • Create Alias Transaction
        Create Alias Transaction
      • Data Transaction
        Data Transaction
      • Exchange Transaction
        • Order
          Order
        Exchange Transaction
      • Genesis Transaction
        Genesis Transaction
      • Invoke Script Transaction
        Invoke Script Transaction
      • Issue Transaction
        Issue Transaction
      • Lease Cancel Transaction
        Lease Cancel Transaction
      • Lease Transaction
        Lease Transaction
      • Mass Transfer Transaction
        Mass Transfer Transaction
      • Reissue Transaction
        Reissue Transaction
      • Set Asset Script Transaction
        Set Asset Script Transaction
      • Set Script Transaction
        Set Script Transaction
      • Sponsor Fee Transaction
        Sponsor Fee Transaction
      • Transfer Transaction
        Transfer Transaction
      • Update Asset Info Transaction
        Update Asset Info Transaction
      • Ethereum-like Transaction
        Ethereum-like Transaction
      Transaction Types
    • Transaction Validation
      Transaction Validation
    Transaction
  • Block
    • Transactions Root Hash
      Transactions Root Hash
    • Genesis Block
      Genesis Block
    Block
  • Node
    • Leasing
      Leasing
    • Generator’s Income
      Generator’s Income
    • Monetary Policy
      Monetary Policy
    Node
  • Mainnet, Testnet, Stagenet
    Mainnet, Testnet, Stagenet
  • Unit Zero
    Unit Zero
  • Oracle
    Oracle
  • Protocols & Data formats
    • Cryptographic Practical Details
      Cryptographic Practical Details
    • Leased Proof of Stake
      Leased Proof of Stake
    • Waves-NG Solution
      Waves-NG Solution
    • Waves-NG Protocol
      Waves-NG Protocol
    • Waves 1.5
      Waves 1.5
    • Blockchain Data Types
      Blockchain Data Types
    • Binary Format
      • Address Binary Format
        Address Binary Format
      • Alias Binary Format
        Alias Binary Format
      • Block Binary Format
        Block Binary Format
      • Network Message Binary Format
        • Block Message Binary Format
          Block Message Binary Format
        • Checkpoint Message Binary Format
          Checkpoint Message Binary Format
        • Get Block Message Binary Format
          Get Block Message Binary Format
        • Get Peers Message Binary Format
          Get Peers Message Binary Format
        • Get Signatures Message Binary Format
          Get Signatures Message Binary Format
        • Handshake Message Binary Format
          Handshake Message Binary Format
        • Peers Message Binary Format
          Peers Message Binary Format
        • Score Message Binary Format
          Score Message Binary Format
        • Signatures Message Binary Format
          Signatures Message Binary Format
        • Transaction Message Message Binary Format
          Transaction Message Message Binary Format
        Network Message Binary Format
      • Order Binary Format
        Order Binary Format
      • Transaction Binary Format
        • Burn Transaction Binary Format
          Burn Transaction Binary Format
        • Create Alias Transaction Binary Format
          Create Alias Transaction Binary Format
        • Data Transaction Binary Format
          Data Transaction Binary Format
        • Exchange Transaction Binary Format
          Exchange Transaction Binary Format
        • Genesis Transaction Binary Format
          Genesis Transaction Binary Format
        • Invoke Script Transaction Binary Format
          Invoke Script Transaction Binary Format
        • Issue Transaction Binary Format
          Issue Transaction Binary Format
        • Lease Cancel Transaction Binary Format
          Lease Cancel Transaction Binary Format
        • Lease Transaction Binary Format
          Lease Transaction Binary Format
        • Mass Transfer Transaction Binary Format
          Mass Transfer Transaction Binary Format
        • Reissue Transaction Binary Format
          Reissue Transaction Binary Format
        • Set Asset Script Transaction Binary Format
          Set Asset Script Transaction Binary Format
        • Set Script Transaction Binary Format
          Set Script Transaction Binary Format
        • Sponsor Fee Transaction Binary Format
          Sponsor Fee Transaction Binary Format
        • Transfer Transaction Binary Format
          Transfer Transaction Binary Format
        • Update Asset Info Transaction Binary Format
          Update Asset Info Transaction Binary Format
        • Ethereum-like Transaction Binary Format
          Ethereum-like Transaction Binary Format
        Transaction Binary Format
      • Transaction Proof Binary Format
        Transaction Proof Binary Format
      Binary Format
    • Validation Rules
      Validation Rules
    Protocols & Data formats
  • Glossary
    Glossary
      • English
      • Русский
      On this page
        • Block Reward
        • Block Reward Distribution
        • Voting Rules
        • Current Voting Status
        • Cast Vote
        • Wrap-up
        • Example
        • Voting While Feature #23 is Active
      waves_logo Docs

          # Community-Driven Monetary Policy

          # Block Reward

          Block reward is an additional issue of WAVES token with each new block on the blockchain. The reward is shared between the block generator, Waves DAO, and the XTN buy-back contract.

          The current block reward is 6 WAVES. Once feature #23 "Boost Block Reward" is activated, the block reward will be 60 WAVES (the multiplier of ×10 applies within 300,000 blocks on Mainnet, 2000 blocks on Testnet and Stagenet). The community of block generators can change the block reward by voting.

          The block reward is introduced by feature #14 “Block Reward and Community Driven Monetary Policy”. Block reward distribution is introduced by feature #19 “Block Reward Distribution” and adjusted by feature #20 “Capped XTN buy-back & DAO amounts”.

          # Block Reward Distribution

          Before activation of feature #23 “Boost Block Reward” and 300,000 blocks after activation:

          • If the block reward is greater than 6 WAVES, then Waves DAO and the XTN buy-back smart contract each receive 2 WAVES, and the block generator receives the rest.
          • If the block reward is between 2 and 6 WAVES, then Waves DAO and the XTN buy-back smart contract each receive (R - 2) / 2, where R is the block reward (integer division is assumed).
          • If the block reward is less than 2 WAVES, the block generator receives the entire block reward.

          Within 300,000 blocks since activation of feature #23, each participant's portion of the block reward is calculated as described above and then multiplied by 10.

          Since activation of feature #21 “Cease XTN buy-back” (but not earlier than 100,000 blocks after activation of feature #19), the crediting of the block reward share to the XTN buy-back smart contract will cease. Its share will be received by the block generator.

          # Voting Rules

          • Each generating node can vote to increase, decrease or leave the current reward unchanged.
          • Voting lasts for 10,000 blocks.
          • As a result of voting, the block reward may increase or decrease by 0.5 WAVES or remain the same.
          • The established block reward remains unchanged for 50,000 blocks (about 35 days) following the end of voting. (Before activation of feature #20 this term was 100,000 blocks.)
          • During the last 10,000 blocks of the 50,000 block term, voting for the next term is held.

          # Current Voting Status

          You can view the current voting status by making a request to the Node REST API.

          Example request:

          curl -X 'GET' \
            'http://nodes.wavesnodes.com/blockchain/rewards' \
            -H 'accept: application/json'
          

          Example response:

          {
            "height": 3751610,
            "totalWavesAmount": 11206966600000000,
            "currentReward": 600000000,
            "minIncrement": 50000000,
            "term": 50000,
            "nextCheck": 3789999,
            "votingIntervalStart": 3780000,
            "votingInterval": 10000,
            "votingThreshold": 5001,
            "votes": {
              "increase": 0,
              "decrease": 0
            },
            "daoAddress": "3PEgG7eZHLFhcfsTSaYxgRhZsh4AxMvA4Ms",
            "xtnBuybackAddress": "3PFjHWuH6WXNJbwnfLHqNFBpwBS5dkYjTfv"
          }
          

          In the example above, the value of the JSON's currentReward field is 600,000,000 WAVELETs, that is 6 WAVES.

          # Cast Vote

          A generating node specifies the new desired reward size using the waves.rewards.desired setting in the node configuration file; the setting value is specified in WAVELETs.

          If the value is greater than the current reward size, then the block generator votes for the current reward size increase; if the value is smaller — for the decrease. If the setting value is not specified in the configuration file, then the generator votes for keeping the current reward size.

          When a node generates a block, it writes into that block the value of the waves.rewards.desired setting from its own configuration file. If the setting value is not specified in the configuration file, then -1 is written to the block.

          During the voting period of 10,000 blocks, a node can generate several blocks, therefore one node can vote several times. How often a node generates blocks is determined by the LPoS consensus.

          # Wrap-up

          To count the votes, all 10,000 blocks generated during the voting period are inspected.

          If either -1 or the value that is equal to the current reward size is recorded to the block, then the generator votes for keeping the current reward size.

          If the value recorded to the block is greater than the current reward size, then the generator votes for the current reward size increase; if the value is smaller — for the decrease.

          The block reward is increased/decreased only if more than half of the 10,000 votes, that is 5,001 votes or more, were given for increase/decrease. The amount of the current reward is increased/decreased by 0.5 WAVES step.

          # Example

          At the blockchain height of 3,751,610, the block reward is 6 WAVES. At the height of 3,780,000, the next voting begins.

          Let's say that 4500 votes of 10,000 voting blocks are cast to increase the reward, 1500 to decrease, and 4000 to keep the reward the same.

          As a result, at height from 3,790,000 to 3,839,999, the block reward will remain the same 6 WAVES. Although the highest number of votes are cast for the reward increase, it is not enough to change the current reward size. For the current size to be increased, at least 5,001 votes must be cast for the increase.

          The next vote will take place from a height of 3,830,000 to 3,839,999.

          # Voting While Feature #23 is Active

          Feature #23 does not impact the voting procedure itself. The ×10 multiplier only affects the final block reward.

          Details:

          • The generator specifies the desired reward size before applying the ×10 multiplier: for example, 700_000_000, which corresponds to 7 WAVES.
          • When votes are counted, the desired reward size is compared to the existing reward size before applying the multiplier, currently 6 WAVES.
          • If a majority of the votes support an increase in the reward size, it is raised by 0.5 WAVES, from 6 to 6.5 WAVES. Subsequently, the ×10 multiplier is applied. Therefore, for the next 50,000 blocks (and within 300,000 blocks since the activation of feature #23), the block generator, Waves DAO, and the XTN buy-back smart contract will collectively receive 65 WAVES per block. (In case of reducing the reward size, the calculation is similar.)
          Generator’s Income
          Mainnet, Testnet, Stagenet
          Generator’s Income
          Mainnet, Testnet, Stagenet