Steem Developer logo

Steem 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 STEEM_SOFT_MAX_COMMENT_DEPTH, are allowed to change to some extent.



Indicates if this node is running on testnet. See: Steem Testnet


Indicates if Smart Media Tokens have been enabled (future hardfork).


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).


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


Address prefix used on mainnet is STM and on testnet is TST. See: Steem 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: Steem 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: Steem Testnet


Tyically used to automatically get a unique chain id for a testnet. See: Steem Testnet


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 STEEM. Instead of creating the account using pure STEEM, there is an option to use delegation so that the blockchain would reduce the creation fee to 0.100 STEEM. Going this route would require a delegation of 15.000 STEEM, that can be revoked at any time, but will stay in limbo for 30 days after the creation date (STEEM_CREATE_ACCOUNT_DELEGATION_TIME).

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


There is a minimum delegation period (30 days) and a minimum fee in STEEM even when delegating for account creation (derived with STEEM_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.


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. See:


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: Steem 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


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:


Each account may cast up to 30 witness votes.


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.

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.


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


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.


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


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


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. See: #1874, #1878


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

Prior to HF17, the maximum comment depth was 6. See: #767


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.


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.

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

      "STEEM_ACTIVE_CHALLENGE_FEE":{"amount":"2000", "precision":3, "nai":"@@000000021"},
      "STEEM_MIN_CONTENT_REWARD":{"amount":"1000", "precision":3, "nai":"@@000000021"},
      "STEEM_MIN_CURATE_REWARD":{"amount":"1000", "precision":3, "nai":"@@000000021"},
      "STEEM_MINING_REWARD":{"amount":"1000", "precision":3, "nai":"@@000000021"},
      "STEEM_MIN_LIQUIDITY_REWARD":{"amount":"1200000", "precision":3, "nai":"@@000000021" },
      "STEEM_MIN_PAYOUT_SBD":{"amount":"20", "precision":3, "nai":"@@000000013"},
      "STEEM_MIN_POW_REWARD":{"amount":"1000", "precision":3, "nai":"@@000000021"},
      "STEEM_MIN_PRODUCER_REWARD":{"amount":"1000", "precision":3, "nai":"@@000000021"},
      "STEEM_OWNER_CHALLENGE_FEE":{"amount":"30000", "precision":3, "nai":"@@000000021"},