Solia saysEIP-1559 sets a base fee that adjusts ±12.5% per block toward a 50% block fullness target — the fee is burned, and tips go to the proposer.
Pre-1559, gas auctions caused unpredictable fee spikes. EIP-1559 replaced that with a base fee that the protocol adjusts every block based on how full the previous block was: above the 15M-gas target → fee increases, below → decreases, with a ±12.5% cap per block. The block cap is 30M gas, so the target is exactly 50% fullness.
The base fee is burned rather than paid to the proposer — making ETH mildly deflationary when usage is high. Tips (a separate per-tx priority fee) go to the proposer as the inclusion incentive. The demo simulates the base fee across a sequence of blocks with varying gas usage.
Power-ups you unlock
Base fee adjusts ±12.5% max per block toward 50% fullness
Target = 15M gas, cap = 30M gas
Base fee is BURNED (deflationary pressure)
Tips go to the proposer (inclusion incentive)
Replaced the unpredictable pre-1559 gas auctions
The Reentrancy Reaper attacks — common mistakes
Confusing base fee (burned) with tip (paid to proposer)
Assuming the base fee can change by more than 12.5% in one block
Targeting 100% block usage in calculations (target is 50%)
Ignoring that priority fee = tip = the only fee the proposer sees
Boss battleSimulate the base fee across six blocks with varying gas usage and confirm full blocks raise it ~12.5% while empty blocks drop it 12.5%.
Example code
<!doctype html><html><head><meta charset="utf-8"></head>
<body style="background:#06040d;color:#e6e0ff;font-family:monospace;padding:20px"><pre id="o"></pre>
<script>
const TARGET = 15000000;
const MAX = 30000000;
const BASE_CHANGE = 1/8; // ±12.5% max per block
let baseFee = 20; // gwei
const blocks = [30000000, 28000000, 22000000, 15000000, 5000000, 0];
const rows = [' start base fee = ' + baseFee.toFixed(2) + ' gwei'];
for(const gas of blocks){
const delta = ((gas - TARGET) / TARGET) * BASE_CHANGE;
baseFee = baseFee * (1 + delta);
rows.push(' gas=' + (gas/1e6).toFixed(0).padStart(2) + 'M base fee → ' + baseFee.toFixed(2) + ' gwei (Δ ' + (delta*100).toFixed(1) + '%)');
}
document.getElementById('o').textContent = [
'EIP-1559: target = ' + (TARGET/1e6) + 'M gas (50% of ' + (MAX/1e6) + 'M cap)',
' full (30M) → +12.5% empty (0) → −12.5% target (15M) → 0%',
'',
...rows,
'',
'base fee is BURNED (deflationary); tips go to the proposer'
].join('\n');
</script></body></html>