TPS without context
TPS without context is like measuring a car’s speed downhill with the engine off. The line stuck with me while reading through Karl Floersch’s mental model on scaling the EVM, which is worth going through in full.
Why raw TPS is a vanity metric
Most blockchain performance claims ignore what actually matters: what kind of transactions, how much state access, what execution complexity, sustained versus burst throughput. What matters is capacity under real-world constraints, and that is where gas comes in.
Gas isn’t just a fee mechanism. It’s a multi-dimensional resource accounting system. It measures computation, storage access and data throughput, everything that consumes network capacity. If you want a blockchain that scales sustainably, you need a gas pricing mechanism that responds dynamically to demand.
Most early blockchains didn’t have this. Static or semi-static gas limits seemed simple and predictable, but when demand spiked, fees shot up fast, and when demand dropped, fees took forever to settle. The result was fee volatility that punished users and made planning impossible for builders.
What the C-Chain had before
Avalanche’s C-Chain faced this problem too. The old dynamic fee mechanism worked in theory and it did prevent denial-of-service, but in practice it was clunky. Fees spiked hard, then decayed slowly, and changing the gas target required a full network upgrade. Not ideal when you are trying to move fast.
What ACP-176 changed
That’s why Avalanche shipped ACP-176 as part of the Octane upgrade: a rehaul of C-Chain fee dynamics and gas-target setting, inspired by EIP-4844 but adapted for Avalanche’s architecture.
- Dynamic gas limits based on capacity, not blocks.
- Real-time price discovery that responds to demand.
- Gas target adjustments without a network upgrade.
- Validator-driven gas voting built into block proposals.
Instead of fixed limits you get a capacity-based system. Think of it as a gas tank that refills over time: high demand drains it and fees rise, low demand refills it and fees drop. The key change is that validators can now propose target gas changes directly. Every time a validator proposes a block they can optionally adjust the target gas; the network takes the median of all proposals and uses that. No governance delay, no hard fork, just continuous tuning.
Why validators care
Because they are the ones providing capacity. If they are underutilised they can signal readiness for more throughput; if congestion is rising they can signal caution. The result is that the network consistently hits its gas target now.
ACP-224: the same model for L1s
ACP-224 brings ACP-176’s dynamic gas model to Subnet-EVM, the EVM most Avalanche L1s run. It replaces the legacy fee-manager parameters with three: a minimum gas price, a per-second target gas, and a “time to double” that sets how fast prices react (60 seconds by default). A new fee-manager precompile lets an L1 change those on-chain without an upgrade, and validators express their own gas-target preference through node config, exactly as on the C-Chain. It ships with the Helicon upgrade because the continuous-execution work in ACP-194 assumes 176-style gas accounting underneath.