NextFeeMultiplier
Storage Plain v101 → currentDynamic fee multiplier that adjusts based on network congestion.
Explore chainThe Big Picture
Bittensor uses dynamic fee adjustment to manage network load. When blocks are heavily utilized, NextFeeMultiplier increases, making transactions more expensive and reducing demand. When blocks are underutilized, it decreases, making transactions cheaper. This creates a market-based mechanism for allocating limited block space. The multiplier is a FixedU128, typically hovering around 1.0 (no adjustment) but can vary significantly during congestion.
Why This Matters
Want to know if now is a cheap or expensive time to transact? This multiplier tells you. Values above 1.0 mean congestion (higher fees), below 1.0 means slack (lower fees). Plan your transactions accordingly.
Example Scenario
Query NextFeeMultiplier() returns 1.2 (as FixedU128). This means fees are 20% higher than baseline due to recent high block utilization. If you can wait, fees may drop as congestion clears.
Common Questions
- How fast does the multiplier change?
- It adjusts each block based on the previous block's weight utilization. Changes are gradual - it won't spike dramatically from one block to the next.
- What's a typical range?
- Usually 0.5 to 2.0 under normal conditions. Extreme congestion could push it higher. The multiplier has minimum and maximum bounds set in the runtime.
- How do I use this for fee estimation?
- Multiply the base fee (from weight) by this multiplier, then add length fee and any tip. Most SDKs handle this automatically in their fee estimation.
- Does this affect all transactions equally?
- Yes, it scales all weight-based fees. Operational extrinsics (like set_weights) may have additional priority through OperationalFeeMultiplier, but this base multiplier applies to all.
Use Cases
- Estimate accurate transaction fees before submission
- Build dynamic fee calculators in wallet applications
- Analyze network congestion patterns over time
- Optimize transaction timing for lower fees
- Build fee prediction models for users
Purpose & Usage
Purpose
Scales transaction fees up or down based on block utilization to manage network load.
Common Query Patterns
- Query current multiplier for fee estimation
- Track multiplier changes over time for analytics
Stored Value
Dynamic fee multiplier (FixedU128, ~1.0 baseline)
Code Examples
import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";
const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });
// Query NextFeeMultiplier storage (no keys - plain value)
const result = await api.query
[stringCamelCase("TransactionPayment")]
[stringCamelCase("NextFeeMultiplier")]();
console.log("NextFeeMultiplier:", result.toHuman());Runtime Info
- Pallet
- TransactionPayment
- Storage Kind
- Plain
- First Version
- v101
- Current Version
- v393