Hive Developer logo

Hive Developer Portal

Understanding Configuration Values

Low level blockchain constants


These values underpin the behavior of the entire blockchain. In a sense, each witness votes for these configuration values every time they sign a block. Unlike many of the Dynamic Global Properties, these values never change at runtime (e.g., as a witness, in order to change them, you typically must shut down your node, make the change, recompile, and run).

See: config.hpp

Usually, these configuration values are universally adhered to, but there are situations where these values can and should be altered, like in the case of deploying a new blockchain (typically a testnet). Some of the values that do not affect consensus, like HIVE_SOFT_MAX_COMMENT_DEPTH, are allowed to change to some extent.



Debt asset symbol, expressed as nai.


Address prefix used on mainnet is STM and on testnet is TST.

See: Hive Testnet




Block interval in seconds is 3. This is the target for block production. This constant is also used as a component for determining valid peer inventory, bandwidth calculations, and block production gaps.


This value was simply set to 7 days, since HF17.

Prior to this, other very complicated machinations were tried like multiple payouts and an initial 24 hours (prior to HF12) and even initial 12 hours (in HF12) all with time extensions depending on how much of an upvote the content got.

Note, on testnet, this is typically much shorter: 1 hour.

See: Hive Testnet


The chain ID to connect to, which is used to seed signing and prevent transaction crosstalk between two chains, typically mainnet and testnet.

See: Hive Testnet


Tyically used to automatically get a unique chain id for a testnet.

See: Hive Testnet


Prior to HF16, 7 day conversion. After HF16 3.5 day conversion

See: #551


This ratio is set to 5 and is used to determine the cost of an account created with delegation.

As an example, imagine the account creation fee is currently 3.000 HIVE. Instead of creating the account using pure HIVE, there is an option to use delegation so that the blockchain would reduce the creation fee to 0.100 HIVE. Going this route would require a delegation of 15.000 HIVE, that can be revoked at any time, but will stay in limbo for 30 days after the creation date (HIVE_CREATE_ACCOUNT_DELEGATION_TIME).

This minimum HIVE ensures that those accounts can transact if the delegation is removed.

See: #818


There is a minimum delegation period (30 days) and a minimum fee in HIVE even when delegating for account creation (derived with HIVE_CREATE_ACCOUNT_DELEGATION_RATIO). The minimum period enforces a rate limit on account creation.

Note that delegation can be revoked before 30 days have elapsed from the creation date, but stays in limbo.

See: #818


Version format string for platform independent state files. The Hive binary will refuse to load a state file where this does not match the built-in version.

See: #3084, HIVE_NETWORK_TYPE, state-format, from-state, to-state


Default rate is 0.5 accounts per block


347321 corresponds to a 5-day halflife


< 10% APR


Price feed history window, which is 3.5 days since HF16.


Scheduled time that the blockchain waited until the first block was produced. It is represented as the unix epoch of 1458835200, which is Thu Mar 24 16:00:00 UTC 2016. About five seconds later, the first block was produced.



The minimum number of Delegated Proof of Stake witnesses required for hardfork. This guarantees 75% participation on all subsequent rounds.

By default it is set to 17, but when running a testnet, we can change it to 1 so that only one node instance would be sufficient and the network will be still functional and fast.

See: Hive Testnet


Inflation narrows 0.01% every 250k blocks, since HF16. At block 7,000,000, there was a 9.5% instantaneous inflation rate, decreasing to 0.95% at this rate of 0.01% every 250k blocks. This narrowing will take approximately 20.5 years and will complete on block 220,750,000.

Year Supply Inflation New Supply   Year Supply Inflation New Supply
2016 250,000,000 9.50% 23,750,000   2031 646,511,386 3.19% 20,613,886
2017 273,750,000 9.08% 24,854,398   2032 667,125,272 2.77% 18,464,106
2018 298,604,398 8.66% 25,854,554   2033 685,589,378 2.35% 16,090,399
2019 324,458,952 8.24% 26,727,942   2034 701,679,777 1.93% 13,515,587
2020 351,186,894 7.82% 27,452,027   2035 715,195,364 1.51% 10,766,608
2021 378,638,921 7.40% 28,004,740   2036 725,961,973 1.08% 7,874,074
2022 406,643,661 6.98% 28,364,989   2037 733,836,047 0.95% 6,971,442
2023 435,008,650 6.55% 28,513,181   2038 740,807,489 0.95% 7,037,671
2024 463,521,832 6.13% 28,431,762   2039 747,845,160 0.95% 7,104,529
2025 491,953,593 5.71% 28,105,742   2040 754,949,689 0.95% 7,172,022
2026 520,059,335 5.29% 27,523,204   2041 762,121,711 0.95% 7,240,156
2027 547,582,539 4.87% 26,675,768   2042 769,361,868 0.95% 7,308,938
2028 574,258,308 4.45% 25,558,997   2043 776,670,805 0.95% 7,378,373
2029 599,817,304 4.03% 24,172,733   2044 784,049,178 0.95% 7,448,467
2030 623,990,038 3.61% 22,521,348   2045 791,497,645 0.95% 7,519,228

See: HIVE_INFLATION_RATE_START_PERCENT, HIVE_INFLATION_RATE_STOP_PERCENT, Decentralized Hive Fund, database_api.get_reward_funds, sps_fund


Fixes block 7,000,000 to 9.5%






The rate used prior to HF19. The number of votes an account may cast per day before voting power is impacted (originally 40 votes per day).



See: #320


Names must comply with the following grammar (RFC 1035), i.e.: a valid name consists of a dot-separated sequence of one or more labels consisting of the following rules:

In addition we require the following:

See: account_create, account_create_with_delegation, create_claimed_account


Each account may cast up to 30 witness votes.

See: account_witness_vote, account_witness_proxy


40 auths


Prior to HF17, the limit was 6. After HF17, the internal limit became 65,535, but with a soft limit of 255.



7 days

See: #822


Limit Order Expiration must not be more than 28 days in the future

See: #1449


2048 bytes

A permlink is a unique string identifier for a post/comment, linked to the author of the post/comment. It must not exceed 256 characters.


depth: 4


This value is set to 21, which means there are 21 witnesses cycling to produce blocks.

Every round of block production begins with the shuffling of 21 witnesses: the top 20 witnesses (by vote), plus one randomly-selected standby witness. Each is given a turn to produce a single block at a fixed rate of one block every 3 seconds. If a witness does not produce a block in their time slot, then that time slot is skipped, and the next witness produces the next block.


Witnesses may provide a URL in their witness proposal. It must not exceed 2,048 characters.


Represents the current witnesses


Names must comply with the following grammar (RFC 1035), i.e.: a valid name consists of a dot-separated sequence of one or more labels consisting of the following rules:

In addition we require the following:

See: account_create, account_create_with_delegation, create_claimed_account


Rewards of less than 0.020 HBD are considered “dust” and will not receive payout.


Prior to HF20, comments (replies) could only be broadcasted once every 20 seconds, per account.


In HF20, comments (replies) can be broadcasted once every 3 seconds, per account (one comment per account per block).

See: #2019


Posts (root comments) can only be broadcasted once every 5 minutes, per account.


Used by platform independent state files to indicate:

See: #3084, HIVE_DB_FORMAT_VERSION, state-format, from-state, to-state


This defines the null account used by the blockchain as the canonical account designated to burn assets.

The blockchain checks all asset types transferred to this account, thus, even reward balances and VESTS are burned.

See: operation_time_tests.cpp


Represents the canonical account with NO authority (nobody can access funds in null account)


1 day

See: PR#3272, PR#3278, Decentralized Hive Fund, database_api.get_reward_funds, sps_fund


Max number of IDs passed at once to the update_proposal_votes or remove_proposal. Maximum: 5

See: PR#3272, PR#3278, update_proposal_votes, Decentralized Hive Fund, database_api.get_reward_funds, sps_fund


Maximum: 80

See: PR#3272, PR#3278, Decentralized Hive Fund, database_api.get_reward_funds, sps_fund


An empty string represents the canonical account for specifying you will vote for directly (as opposed to a proxy).


Represents the canonical account for specifying you will vote for directly (as opposed to a proxy)


The rate used since HF19. The number of votes an account may cast per day before voting power is impacted (10 votes per day).


Removed in HF21, see: #1874

Prior to HF6, there was no reverse auction logic. From HF6 to HF19, the reverse auction window is 30 minutes.

In HF20, the reverse action is being reduced to 15 minutes.

In HF21, the reverse action is being reduced to 5 minutes.

See: reverse_auction_seconds, #1874, #1878


Represents the canonical root post parent account


This value sets the timelock of 3 days for funds being withdrawn from savings. Funds can be transferred into savings instantly, but require 72 hours (3 days) to withdraw from savings. This will guarantee there is at least 1 business day during which you can contact your recovery agent.


Max block size cannot be more than 2MiB (2*1024*1024).

See: #1655


A comment is nested at a maximum depth of 255. As a soft limit, it is enforced by the witness_plugin.

Prior to HF17, the maximum comment depth was 6.

See: #767, HIVE_MAX_COMMENT_DEPTH, witness_plugin.cpp


Represents the canonical account with WILDCARD authority (anybody can access funds in temp account)


Account dedicated to holding treasury debt asset balance to distribute.

See: PR#3272, PR#3278, update_proposal_votes, Decentralized Hive Fund, database_api.get_reward_funds, sps_fund


Represents the account with NO authority which holds resources for payouts according to given proposals. No longer constant, changed in HF24.


10.000 HBD

See: PR#3272, PR#3278, update_proposal_votes, Decentralized Hive Fund, database_api.get_reward_funds, sps_fund


Accounts may not increase payout within last 12 hours before payout, since HF17.


Sets the power-down rate, which is fulfilled once a week over 13 weeks.

Prior to HF16, this value was 104 weeks.

See: #551


1 week per interval


Used to determine when abs_rshares is too small while evaluating vote operation.

See: #774, vote, vote2




Since witness decay only procs once per round, multiplying the decay constant by the number of witnesses means the per-witness pools have the same effective decay rate in real-time terms.


Indicates if this node is running on testnet.

See: Hive Testnet




Note that old account is still considered a treasury (cannot be reused for other purposes), just all funds and actions are redirected to new one


Maxumum blocks (testnet only: 3,000,000 blocks, ~3.5 months).

See: Hive Testnet

Not Covered

Fields not covered in this recipe are:

Example Method Call

curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_config", "params":[], "id":1}'

Example Output

      "HBD_SYMBOL":{"nai":"@@000000013", "precision":3},
      "HIVE_ACTIVE_CHALLENGE_FEE":{"amount":"2000", "precision":3, "nai":"@@000000021"},
      "HIVE_MIN_CONTENT_REWARD":{"amount":"1000", "precision":3, "nai":"@@000000021"},
      "HIVE_MIN_CURATE_REWARD":{"amount":"1000", "precision":3, "nai":"@@000000021"},
      "HIVE_MINING_REWARD":{"amount":"1000", "precision":3, "nai":"@@000000021"},
      "HIVE_MIN_LIQUIDITY_REWARD":{"amount":"1200000", "precision":3, "nai":"@@000000021"},
      "HIVE_MIN_PAYOUT_HBD":{"amount":"20", "precision":3, "nai":"@@000000013"},
      "HIVE_MIN_POW_REWARD":{"amount":"1000", "precision":3, "nai":"@@000000021"},
      "HIVE_MIN_PRODUCER_REWARD":{"amount":"1000", "precision":3, "nai":"@@000000021"},
      "HIVE_OWNER_CHALLENGE_FEE":{"amount":"30000", "precision":3, "nai":"@@000000021"},
      "HIVE_SYMBOL":{"nai":"@@000000021", "precision":3},
      "VESTS_SYMBOL":{"nai":"@@000000037", "precision":6},