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
  • Mainnet, Testnet, Stagenet
    Mainnet, Testnet, Stagenet
  • Node
    • Generating Node
      Generating Node
    • Validating Node
      Validating Node
    • Generator’s Income
      Generator’s Income
    • Block Reward
      Block Reward
    • Leased Proof of Stake
      Leased Proof of Stake
    Node
  • Block
    • Block Generation
      • Base Target
        Base Target
      • Generation Signature
        Generation Signature
      Block Generation
    • Block Height
      Block Height
    • Block Signature
      Block Signature
    • Block Timestamp
      Block Timestamp
    • Transactions Root Hash
      Transactions Root Hash
    • Genesis Block
      Genesis Block
    Block
  • Oracle
    Oracle
  • Protocols & Data formats
    • Cryptographic Practical Details
      Cryptographic Practical Details
    • Waves-NG Solution
      Waves-NG Solution
    • Waves-NG Protocol
      Waves-NG Protocol
    • Fair Proof of Stake
      Fair Proof of Stake
    • 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
        • Current reward size
        • The change of block reward size over time
        • Voting
        • How votes are counted
        • Examples
      waves_logo Docs

          # Block Reward

          Block Reward is a blockchain feature under which generating nodes receive a fixed fee in WAVES for each generated block.

          Block rewards are paid due to the additional issue of the WAVES token.

          The community of generating nodes can change the size of reward through voting.

          # Current reward size

          You can view the current reward size by making a request to the Node API. In response to the request, JSON is returned, the value of the currentReward field of which is the current block reward size in WAVELETs.

          Example of request:

          curl https://nodes.wavesnodes.com/blockchain/rewards
          

          Example of response:

          {
            "height": 1742254,
            "totalWavesAmount": 10001353000000000,
            "currentReward": 600000000,
            "minIncrement": 50000000,
            "term": 100000,
            "nextCheck": 1839999,
            "votingIntervalStart": 1830000,
            "votingInterval": 10000,
            "votingThreshold": 5001,
            "votes": {
              "increase": 0,
              "decrease": 0
            }
          }
          

          In the example above, the value of the JSON's currentReward field is 600,000,000 WAVELETs — i.e. it's 6 WAVES.

          # The change of block reward size over time

          Every 100,000 blocks, i.e. approximately every 70 days, a new voting for the current reward size change begins among the generators.

          The voting duration is 10,000 blocks. During this time, generating nodes vote to increase, decrease or leave the current reward size unchanged.

          The elected reward size remains unchanged for 100,000 blocks following the end of voting.

          # Voting

          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 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 time in 10,000 blocks, a single node can generate several blocks, therefore one node can vote several times. How often a node generates blocks is determined by the LPoS consensus.

          # How votes are counted

          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 — i.e. 5,001 votes or more — were given for increase/decrease. The amount of the current reward is increased/decreased by 0.5 WAVES step.

          # Examples

          # Example 1

          At the blockchain height of 2,000,000, the block reward equals 5 WAVES. At the height of 2,090,000, another voting starts.

          During the 10,000 blocks of voting 6,000 votes were given for reward increase, 1,000 — for decrease, 3,000 — for keeping the current reward size.

          From the height of 2,100,000 to the height of 2,199,999, the new reward size will be 5.5 WAVES, because the reward change step is 0.5 WAVES.

          The next voting will take place from the height of 2,190,000 to 2,199,999.

          # Example 2

          At the blockchain height of 2,100,000, the block reward equals 5.5 WAVES. At the height of 2,190,000, another voting starts.

          During the 10,000 blocks of voting 4,500 votes were given for reward increase, 4,000 — for decrease, 1,500 — for keeping the current reward size.

          From the height of 2,200,000 to the height of 2,299,999, the "new" reward size will be the same — 5.5 WAVES. Although the highest number of votes were given for the reward increase, it was not enough to change the current reward size. In order for the current reward size to be increased, at least 5,001 votes must be given for the increase.

          The next voting will take place from the height of 2,290,000 to 2,299,999.

          Generator’s Income
          Leased Proof of Stake
          Generator’s Income
          Leased Proof of Stake