{"id":15624,"date":"2025-02-03T15:26:00","date_gmt":"2025-02-03T15:26:00","guid":{"rendered":"https:\/\/hederav2stg.wpenginepowered.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/"},"modified":"2026-02-03T18:36:10","modified_gmt":"2026-02-03T23:36:10","slug":"throttling-in-hedera-ensuring-stability-and-fairness","status":"publish","type":"post","link":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/","title":{"rendered":"Throttling in Hedera: Ensuring Stability and Fairness"},"content":{"rendered":"<div class=\"body-text BodyCopy mb-40 style-1\">\n<p dir=\"ltr\">Hedera is dedicated to maintaining network stability while ensuring fair and permissionless availability for all users. One way that Hedera achieves this is by using throttles, which regulate the rate at which operations (transactions and queries) are processed, both across the network and locally at individual nodes.<\/p>\n<p>This blog offers a comprehensive technical overview of Hedera&#8217;s throttles, explaining their purpose, functionality, and configuration.<\/p>\n<h4 class=\"color-ultraviolet\">Why Have Throttles?<\/h4>\n<p dir=\"ltr\">Throttles regulate the rate of processing operations to ensure network stability and availability. They safeguard the network from being overwhelmed by excessive traffic or targeted by Denial of Service (DoS<strong>)<\/strong> attacks.  <\/p>\n<p dir=\"ltr\">Hedera\u2019s throttles serve to:<\/p>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Prevent <strong>overloading<\/strong> of the network or individual nodes.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Ensure <strong>fair resource usage<\/strong> across all users and operations.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Maintain predictable <strong>transaction processing availability and performance<\/strong>.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Control the <strong>growth of the state size<\/strong>, ensuring long-term scalability and cost efficiency for the network.<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">Hedera\u2019s throttles are configured via a throttles.json file within the <a href=\"https:\/\/github.com\/hashgraph\/hedera-services\" target=\"_blank\">Hedera Services repo<\/a>. An example of a  Hedera mainnet throttle can be found <a href=\"https:\/\/github.com\/hashgraph\/hedera-services\/blob\/13bd3a9fa1bf4f87b9a71d111b44880aafc4ab2c\/hedera-node\/configuration\/mainnet\/upgrade\/throttles.json#L4\" target=\"_blank\">here<\/a>. Throughout this blog, we\u2019ll reference the syntax of this JSON file to illustrate how throttles are defined and applied.<\/p>\n<h4 class=\"color-ultraviolet\">Leaky Bucket<\/h4>\n<p dir=\"ltr\">Hedera&#8217;s throttling system is conceptually modeled after a bucket with a leak at the bottom. The total volume of the bucket represents its maximum capacity; as water (representing operations) drains through the leak, more capacity becomes available for new operations. If the bucket is full, operations are throttled by the bucket.<\/p>\n<p>More specifically, a bucket is a logical container that groups specific operations and enforces a limit on the rate at which those operations can be processed\u2014known as a rate limit. The rate limit defines the average number of operations per second) that the bucket can sustain over time. This steady-state rate reflects how consistently the bucket &#8220;drains,&#8221; dictating how frequently new operations can be accepted.<\/p>\n<p dir=\"ltr\">In the throttles.json file, rate limits can be expressed as:<\/p>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>opsPerSec<\/strong>: Specifies the transactions per second as a whole number.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>milliOpsPerSec<\/strong>: Specifies a finer-grained rate by dividing the value by 1,000.<\/p>\n<\/li>\n<\/ul>\n<p>When an operation is rejected by a throttle, the system will respond with a status code of <strong>BUSY.<\/strong><\/p>\n<h4 class=\"color-ultraviolet\">Example Configuration<\/h4>\n<p dir=\"ltr\">Here\u2019s a bucket configuration example, simplified for understanding:<\/p>\n<p class=\"codeInline\" dir=\"ltr\">{<br \/>  &#8220;name&#8221;: &#8220;XYZ&#8221;,<br \/>  &#8220;opsPerSec&#8221;: 10,<br \/>  &#8220;milliOpsPerSec&#8221;: 0,<br \/>  &#8220;operations&#8221;: [<br \/>    &#8220;FileGetContents&#8221;,<br \/>    &#8220;FileGetInfo&#8221;,<br \/>    &#8220;ContractGetInfo&#8221;<br \/>  ]<br \/>}<\/p>\n<p dir=\"ltr\">\n<p dir=\"ltr\">From this configuration:<\/p>\n<ol>\n<li dir=\"ltr\">\n<p dir=\"ltr\">The <strong>bucket name<\/strong> is XYZ.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">The <strong>rate limit<\/strong> is set to <strong>10 operations per second<\/strong> (no finer rate is specified since milliOpsPerSec is 0).<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">The bucket applies to three Hedera operations: FileGetContents, FileGetInfo, and ContractGetInfo.<\/p>\n<\/li>\n<\/ol>\n<p dir=\"ltr\">The XYZ bucket can support any combination of these FileGetContents, FileGetInfo, and ContractGetInfo operations, but only at a sustained rate of <strong>10 operations per second<\/strong>.<\/p>\n<h4 class=\"color-ultraviolet\">Network vs. Node Throttles<\/h4>\n<p dir=\"ltr\">It\u2019s important to understand that a bucket\u2019s rate limit is applied at both the network and node levels. The values specified in throttles.json represent the network-wide rate limit for each bucket.<\/p>\n<p dir=\"ltr\">For example, in the XYZ bucket configuration:<\/p>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">The <strong>network-wide rate limit<\/strong> supports <strong>10 operations per second<\/strong> for FileGetContents, FileGetInfo, and ContractGetInfo.<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">At the <strong>node level<\/strong>, the throttle is calculated by dividing the network-wide rate limit by the total number of active nodes in the network. For instance, if there are <strong>5 nodes <\/strong>in the network:<\/p>\n<figure><img decoding=\"async\" data-image=\"1704645\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/02\/Throttling-in-Hedera-Image01.png\"\/><\/figure>\n<p dir=\"ltr\">This ensures that each node can independently process these operations at a sustained rate of <strong>2 operations per second<\/strong>.<\/p>\n<p dir=\"ltr\">Network and node throttles serve distinct but complementary purposes in Hedera&#8217;s system:<\/p>\n<ul>\n<li dir=\"ltr\"><strong>Network Throttles:<\/strong>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Manage the total transaction capacity across all nodes to ensure system-wide stability and prevent overloading<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li dir=\"ltr\"><strong>Node Throttles<\/strong>:\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Divide the network&#8217;s capacity equitably among nodes, ensuring no single node monopolizes system capacity<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4 class=\"color-ultraviolet\"><strong>Throttle Groups <\/strong><\/h4>\n<p dir=\"ltr\">Buckets in Hedera\u2019s throttling system can contain one or more throttle groups, allowing a bucket to enforce multiple rate limits across different sets of operations. This flexibility ensures that specific types of operations are throttled independently, even when they share the capacity of a bucket.<\/p>\n<p>Throttle groups allow fine-tuned rate limits across different transaction types within a bucket. Also, by separating operations into groups, resources can be distributed more effectively to meet network needs.<\/p>\n<p dir=\"ltr\">Here\u2019s an example of a bucket with multiple throttle groups:<em><\/em><\/p>\n<p class=\"codeInline\">{<br \/>  &#8220;name&#8221;: &#8220;ABC&#8221;,<br \/>  &#8220;throttleGroups&#8221;: [<br \/>    {<br \/>      &#8220;opsPerSec&#8221;: 0,<br \/>      &#8220;milliOpsPerSec&#8221;: 2000,<br \/>      &#8220;operations&#8221;: [<br \/>        &#8220;CryptoCreate&#8221;,<br \/>        &#8220;NodeCreate&#8221;<br \/>      ]<br \/>    },<br \/>    {<br \/>      &#8220;opsPerSec&#8221;: 0,<br \/>      &#8220;milliOpsPerSec&#8221;: 5000,<br \/>      &#8220;operations&#8221;: [<br \/>        &#8220;ConsensusCreateTopic&#8221;<br \/>      ]<br \/>    },<br \/>    {<br \/>      &#8220;opsPerSec&#8221;: 0,<br \/>      &#8220;milliOpsPerSec&#8221;: 100000,<br \/>      &#8220;operations&#8221;: [<br \/>        &#8220;TokenCreate&#8221;,<br \/>        &#8220;TokenAirdrop&#8221;<br \/>      ]<br \/>    }<br \/>  ]<br \/>}<\/p>\n<p dir=\"ltr\">\n<h4 class=\"color-ultraviolet\">Understanding the Configuration<\/h4>\n<ol>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Bucket Name<\/strong>: ABC.<\/p>\n<\/li>\n<li dir=\"ltr\"><strong>Throttle Groups<\/strong>:\n<ul>\n<li dir=\"ltr\"><strong>Group 1<\/strong>:\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Operations: CryptoCreate, NodeCreate<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Rate Limit: <strong>2 operations per second<\/strong> (2000 milliOpsPerSec \u00f7 1000 = 2 opsPerSec).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li dir=\"ltr\"><strong>Group 2<\/strong>:\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Operations: ConsensusCreateTopic<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Rate Limit: <strong>5 operations per second<\/strong> (5000 milliOpsPerSec \u00f7 1000 = 5 opsPerSec).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li dir=\"ltr\"><strong>Group 3<\/strong>:\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Operations: TokenCreate, TokenAirdrop<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Rate Limit: <strong>100 operations per second<\/strong> (100000 milliOpsPerSec \u00f7 1000 = 100 opsPerSec).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h4 class=\"color-ultraviolet\" dir=\"ltr\">Each throttle group has its own independent rate limit but shares the overall capacity of the bucket. When operations enter the system and are associated with a specific throttle group, the operation is applied to the bucket\u2019s capacity at the rate limit defined in the throttle group.\u00a0<\/h4>\n<h4 class=\"color-ultraviolet\">Example Usage of Bucket ABC<\/h4>\n<p dir=\"ltr\">If the <strong>ABC <\/strong>bucket is initially empty, it can service any combination of operations within the defined rate limits. Here are a few examples of valid combinations of operations:<\/p>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">2 CryptoCreate (Group 1).<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">1 NodeCreate and 1 CryptoCreate (Group 1).<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">5 ConsensusCreateTopic (Group 2).<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">50 TokenCreate and 1 CryptoCreate (Groups 3 and 1).<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">100 TokenAirdrop (Group 3).<\/p>\n<\/li>\n<\/ul>\n<h4 class=\"color-ultraviolet\">Multi-bucket Configuration<\/h4>\n<p dir=\"ltr\">While throttle groups offer fine-grained control over resource allocation, relying on a single bucket introduces the risk that one specific operation could monopolize system resources. This could lead to unfair usage and reduced availability for other operations. By implementing a multi-bucket configuration, you can ensure a fair distribution of resources and maintain availability for various operations.<\/p>\n<p dir=\"ltr\">In a multi-bucket setup, an incoming operation is applied to one or more bucket(s) that include it in a throttle group. The operation is accepted only if all associated buckets have sufficient capacity. If any of the buckets are full, the transaction is rejected.<\/p>\n<p>This approach allows for more sophisticated throttling, ensuring no single operation can overwhelm the system.<\/p>\n<h4 class=\"color-ultraviolet\">Burst Period<\/h4>\n<p dir=\"ltr\">As mentioned earlier, the rate limit represents the average number of operations per second, reflecting the steady-state capacity of the network. However, network usage is rarely consistent and often fluctuates due to periods of high or low activity.<\/p>\n<p dir=\"ltr\">The burst period feature allows nodes to temporarily exceed their steady-state rate limit for a defined period. This means multiple seconds\u2019 worth of throttle capacity can be utilized in a single second. The system continuously tracks usage to ensure that, even with burst periods, the average number of operations per second remains aligned with the configured rate limit over time.<\/p>\n<p dir=\"ltr\">The burst period is particularly valuable for throttles with very low rate limits, especially when the per-node capacity is less than one transaction per second. By configuring a burst period, nodes can execute these low-frequency operations during the designated burst window, ensuring they are processed periodically while still adhering to the long-term average rate limit.<\/p>\n<h4 class=\"color-ultraviolet\">Here\u2019s an example of a burst period configuration:<\/h4>\n<p class=\"codeInline\" dir=\"ltr\">{<br \/>&#8220;burstPeriod&#8221;: 0,<br \/>  &#8220;burstPeriodMs&#8221;: 15000,<br \/>  &#8220;name&#8221;: &#8220;123&#8221;,<br \/>  &#8220;throttleGroups&#8221;: [<br \/>    {<br \/>      &#8220;opsPerSec&#8221;: 0,<br \/>      &#8220;milliOpsPerSec&#8221;: 2000,<br \/>      &#8220;operations&#8221;: [<br \/>        &#8220;CryptoCreate&#8221;,<br \/>        &#8220;NodeCreate&#8221;<br \/>      ]<br \/>    }<br \/>  ]<br \/>}<\/p>\n<p dir=\"ltr\">\n<h4 class=\"color-ultraviolet\" dir=\"ltr\">For this configuration, we see:<\/h4>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Bucket Name<\/strong>: 123<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Throttle Group<\/strong>: Contains operations for CryptoCreate and NodeCreate.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Rate Limit<\/strong>: The throttle group has a rate limit of <strong>2 operations per second<\/strong> (2000 \u00f7 1000).<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Burst Period<\/strong>: Configured for <strong>15 seconds<\/strong> (15000 \u00f7 1000). This value can be defined in seconds (burstPeriod) or milliseconds (burstPeriodMs).<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">If this configuration is applied to a 10-node network, here\u2019s the impact that the burst period would have at the node level:<\/p>\n<ol>\n<li dir=\"ltr\">\n<p dir=\"ltr\">The per-node rate limit would be <strong>0.2 operations per second<\/strong> (2 operations per second \u00f7 10 nodes).<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">During the burst period, each node could accumulate throttle capacity for up to 15 seconds at the steady-state rate.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">This allows a node to process a burst of 3 operations during the burst period (15 seconds \u00d7 0.2 operations per second = 3 operations).<\/p>\n<\/li>\n<\/ol>\n<h4 class=\"color-ultraviolet\">EVM Throttles<\/h4>\n<p dir=\"ltr\">For EVM-related operations, an additional throttle mechanism is used. Rather than throttling by operations per second, EVM throttles are expressed in gas per second. This better reflects the consumption of resources performed to execute the operation. Specifically, <strong>ContractCall<\/strong>, <strong>ContractCallLocal<\/strong>, and <strong>ContractCreate<\/strong> operations are subject to these throttles. <\/p>\n<p>EVM related operations include two separate throttles:<\/p>\n<ol>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Frontend Throttle<\/strong>: Regulates the maximum gas per second for incoming gRPC transactions at the node level. The transaction is rejected with a status code of <strong>BUSY<\/strong>.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Consensus Throttle<\/strong>: Enforces the maximum gas per second during the execution of transactions at the Hedera consensus level. It is analogous to Ethereum\u2019s Block Gas Limit. The transaction is rejected with a status code of <strong>CONSENSUS_GAS_EXHAUSTED.<\/strong><\/p>\n<\/li>\n<\/ol>\n<p dir=\"ltr\">EVM throttles are not configured through throttles.json; instead, they are configured using two global dynamic properties configured from Hedera file 0.0.121:<\/p>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>contracts.frontendThrottleMaxGasLimit<\/strong>: Defines the frontend throttle limit for maximum gas per second.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>contracts.consensusThrottleMaxGasLimit<\/strong>: Specifies the consensus throttle limit for maximum gas per second.<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">Please note: Contract-related transactions can still be subject to the standard <strong>opsPerSec<\/strong> buckets where contract-related operations are listed. These buckets operate independently and may reject transactions based on the configured operations-per-second limits.<\/p>\n<h4 class=\"color-ultraviolet\">Conclusion<\/h4>\n<p dir=\"ltr\">Hedera\u2019s throttling system is vital to its network infrastructure, ensuring stability, fairness, and efficient resource utilization across diverse operations. As the network grows and evolves, we anticipate that system throttling will continue to adapt to better safeguard critical resources while maintaining full availability and optimal performance for users. <\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hedera is designed for network stability, fair access, and efficient transaction processing. One key mechanism enabling this is throttling, which regulates the rate of operations to prevent overload and ensure seamless performance. In this blog, we explore Hedera\u2019s throttles, their purpose, and how they\u2019re configured using the `throttles.json` file.<\/p>\n","protected":false},"author":10,"featured_media":16708,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[1],"tags":[],"ppma_author":[43],"class_list":["post-15624","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Throttling in Hedera: Ensuring Stability and Fairness | Hedera<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Throttling in Hedera: Ensuring Stability and Fairness | Hedera\" \/>\n<meta property=\"og:description\" content=\"Hedera is designed for network stability, fair access, and efficient transaction processing. One key mechanism enabling this is throttling, which regulates the rate of operations to prevent overload and ensure seamless performance. In this blog, we explore Hedera\u2019s throttles, their purpose, and how they\u2019re configured using the `throttles.json` file.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/\" \/>\n<meta property=\"og:site_name\" content=\"Hedera\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-03T15:26:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-03T23:36:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hedera Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/\"},\"author\":{\"name\":\"Hedera Team\",\"@id\":\"https:\/\/hedera.com\/#\/schema\/person\/2dc6146f9f20a44d3de58c834d52e9f4\"},\"headline\":\"Throttling in Hedera: Ensuring Stability and Fairness\",\"datePublished\":\"2025-02-03T15:26:00+00:00\",\"dateModified\":\"2026-02-03T23:36:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/\"},\"wordCount\":1498,\"publisher\":{\"@id\":\"https:\/\/hedera.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner.png\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/\",\"url\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/\",\"name\":\"Throttling in Hedera: Ensuring Stability and Fairness | Hedera\",\"isPartOf\":{\"@id\":\"https:\/\/hedera.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner.png\",\"datePublished\":\"2025-02-03T15:26:00+00:00\",\"dateModified\":\"2026-02-03T23:36:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#primaryimage\",\"url\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner.png\",\"contentUrl\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/hedera.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Throttling in Hedera: Ensuring Stability and Fairness\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/hedera.com\/#website\",\"url\":\"https:\/\/hedera.com\/\",\"name\":\"Hedera\",\"description\":\"Hello future\",\"publisher\":{\"@id\":\"https:\/\/hedera.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/hedera.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/hedera.com\/#organization\",\"name\":\"Hedera\",\"url\":\"https:\/\/hedera.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hedera.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/09\/hedera_logo.png\",\"contentUrl\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/09\/hedera_logo.png\",\"width\":500,\"height\":375,\"caption\":\"Hedera\"},\"image\":{\"@id\":\"https:\/\/hedera.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Throttling in Hedera: Ensuring Stability and Fairness | Hedera","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/","og_locale":"en_US","og_type":"article","og_title":"Throttling in Hedera: Ensuring Stability and Fairness | Hedera","og_description":"Hedera is designed for network stability, fair access, and efficient transaction processing. One key mechanism enabling this is throttling, which regulates the rate of operations to prevent overload and ensure seamless performance. In this blog, we explore Hedera\u2019s throttles, their purpose, and how they\u2019re configured using the `throttles.json` file.","og_url":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/","og_site_name":"Hedera","article_published_time":"2025-02-03T15:26:00+00:00","article_modified_time":"2026-02-03T23:36:10+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner.png","type":"image\/png"}],"author":"Hedera Team","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#article","isPartOf":{"@id":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/"},"author":{"name":"Hedera Team","@id":"https:\/\/hedera.com\/#\/schema\/person\/2dc6146f9f20a44d3de58c834d52e9f4"},"headline":"Throttling in Hedera: Ensuring Stability and Fairness","datePublished":"2025-02-03T15:26:00+00:00","dateModified":"2026-02-03T23:36:10+00:00","mainEntityOfPage":{"@id":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/"},"wordCount":1498,"publisher":{"@id":"https:\/\/hedera.com\/#organization"},"image":{"@id":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#primaryimage"},"thumbnailUrl":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner.png","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/","url":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/","name":"Throttling in Hedera: Ensuring Stability and Fairness | Hedera","isPartOf":{"@id":"https:\/\/hedera.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#primaryimage"},"image":{"@id":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#primaryimage"},"thumbnailUrl":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner.png","datePublished":"2025-02-03T15:26:00+00:00","dateModified":"2026-02-03T23:36:10+00:00","breadcrumb":{"@id":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#primaryimage","url":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner.png","contentUrl":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/hedera.com\/blog\/throttling-in-hedera-ensuring-stability-and-fairness\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hedera.com\/"},{"@type":"ListItem","position":2,"name":"Throttling in Hedera: Ensuring Stability and Fairness"}]},{"@type":"WebSite","@id":"https:\/\/hedera.com\/#website","url":"https:\/\/hedera.com\/","name":"Hedera","description":"Hello future","publisher":{"@id":"https:\/\/hedera.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hedera.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/hedera.com\/#organization","name":"Hedera","url":"https:\/\/hedera.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hedera.com\/#\/schema\/logo\/image\/","url":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/09\/hedera_logo.png","contentUrl":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/09\/hedera_logo.png","width":500,"height":375,"caption":"Hedera"},"image":{"@id":"https:\/\/hedera.com\/#\/schema\/logo\/image\/"}}]}},"featured_image_src":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner-600x400.png","featured_image_src_square":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/Ensuring-Stability-and-Fairness-Banner-600x600.png","author_info":{"display_name":"Hedera Team","author_link":"https:\/\/hedera.com\/blog\/author\/hedera-team\/"},"authors":[{"term_id":43,"user_id":10,"is_guest":0,"slug":"hedera-team","display_name":"Hedera Team","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/7ed01931dc9498365746508c4ca49ed0507ef65e04e0b82ffe88c50ef9242b1d?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":""}],"_links":{"self":[{"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/posts\/15624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/comments?post=15624"}],"version-history":[{"count":0,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/posts\/15624\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/media\/16708"}],"wp:attachment":[{"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/media?parent=15624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/categories?post=15624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/tags?post=15624"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/ppma_author?post=15624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}