Skip to content
BaseHub by Will Binns Updated

Glamsterdam EIP Port (Design)

Glamsterdam is Ethereum’s next L1 upgrade (meta-EIP 7773). On 2026-10-16, base/base added a design document (#5759) that sorts each Glamsterdam EIP into one of three buckets for Base: take it unchanged, take it with Base-specific changes, or skip it. This page summarizes that plan.

Upstream lists four decisions that are still pending:

  • Base Transactions (EIP-8430): pricing for the new transaction type is not yet defined. See Base Transactions.
  • State creation (EIP-8037): Base has not picked its per-byte gas price for newly created state.
  • State access (EIP-8038): the account and storage access and write prices for Base are undecided.
  • BAL bandwidth: a comparison of payload sizes with and without block-level access lists, both raw and compressed, has not been done yet.
EIPWhat it does on L1Base’s planned change
7928Block-level access lists (BALs): each block records the state it read and wrote, which enables parallel execution and quicker state processing.Ship the BAL inside gossiped Base blocks, leave it out of L1 batches, and rebuild it during CL sync. See design.
2780Replaces the flat per-transaction overhead with charges tied to the resources a transaction uses.Extend the model to Base Transactions (EIP-8430), covering batching, sponsorship, and nonce modes.
7843Adds the SLOTNUM opcode and a matching header field for the consensus slot.Report the L2 block number as the slot instead of the beacon slot. See design.
7976Lifts the calldata floor to 64 gas per byte.Use 128 gas/byte instead. See design.
8037Reprices new state and meters state creation apart from execution.Same mechanism; Base’s state-byte price is still to be chosen.
8038Updates gas for account and storage accesses and writes.Same mechanism; Base-specific values are still to be chosen.
7981Charges access lists for the data they carry.Price at 128 gas/byte to line up with the calldata floor. See design.
EIPEffect
7708Native ETH transfers produce a protocol-level log.
7778Block capacity counts execution gas before refunds, while users still receive their refunds.
7954Deployed code may be up to 64 KiB and initcode up to 128 KiB.
7997The standard CREATE2 factory must exist at a shared address across EVM chains.
8024New SWAPN, DUPN, and EXCHANGE instructions reach deeper into the stack.
8246When an eligible self-destructed account is cleared, its leftover ETH is kept rather than burned.
7975Networking: eth/70 lets peers send long receipt lists in pieces.
8159Networking: eth/71 adds request and response messages for BALs.
8189Networking: snap/2 uses BALs to move forward and patch state during sync.

The two goals are fast validator sync, at the chain tip and for history, and keeping L1 blob usage low.

The planned data flow:

  • Sequencer: builds each block and its BAL together. It gossips the payload and BAL as one unit, but posts only the transactions to L1.
  • Unsafe sync (P2P): a validator receives the payload with its BAL, executes the block, and checks the BAL against the result.
  • Safe sync (CL): a validator derives block inputs from L1. If they match a block it has already validated, it reuses that execution and promotes the block to safe. If there is no match, it treats the case as a reorg, replays the block, and rebuilds the BAL.
  • Historical sync (EL): a validator pulls blocks, state, and BALs from other nodes over eth/71 and snap/2, then catches up and verifies state.

Two deliberate departures from L1:

  • BAL travels inside the block. On Base the BAL sits in the gossiped execution payload instead of a separate sidecar, so a validator never needs a second fetch. The cost is more peer bandwidth, which upstream accepts because validators are expected to run on data-center links.
  • No BALs in L1 blobs. Batches carry transactions only. Any BAL can be rebuilt by execution, including deposits and system inputs that come from L1. The trade-off is slower CL sync during unusual recovery. In normal operation, history uses EL sync and CL reconciliation matches blocks that were already validated, so the replay cost rarely applies. Base avoids paying blob fees for a BAL on every block.
OptionUpsideDownsideFits
L2 block number (recommended)Easy to validate; every Base block gets its own slot; leaves space for a later Base slot counter that also advances over skipped blocks.Duplicates what NUMBER already returns.Scheduling local execution or tracking recent state per L2 block.
Beacon slot of the L1 originMatches the OP precedent for L1 consensus data (as with EIP-4399 and EIP-4788).Many L2 blocks share one slot, and it only moves when the L1 origin moves.Lining up with Ethereum oracle reporting windows or beacon-proof slots.

The floor formula is:

charged gas = max(txn cost, base_tx_cost + bytes * constant)

Upstream recommends constant = 128 gas/byte, applied to zero and nonzero bytes alike. Compared with L1’s 64, that halves the worst-case calldata size and growth, and in the sampled transactions nobody pays more.

The ranking used to pick the number, highest priority first:

  1. Do not price out payments, swaps, and other everyday transactions.
  2. Cap the worst-case size of incompressible blocks on the P2P network.
  3. Keep yearly calldata growth manageable.

Receipt gas for five real Base Mainnet transactions under different floors. Bold cells are where the floor starts to bind.

Constant (gas/byte)USDC payment (68 B)Aerodrome Router (324 B)Slipstream (260 B)Uniswap Router02 (228 B)Universal Router (644 B)
6440,271181,916186,366105,413171,148
128 (recommended)40,271181,916186,366105,413171,148
25640,271181,916186,366105,413185,864
51249,816181,916186,366137,736350,728
1,02484,632346,776281,240254,472680,456

At 128 none of the five samples changes. The first sample to pay more is the Universal Router swap at 256.

Under today’s pricing, worst-case calldata per block is large. At 400M gas per 2-second block, zero bytes at 10 gas allow 40 MB per block (105.12 TB a year); nonzero bytes at 40 gas allow 10 MB (26.28 TB a year). Denim’s 40M gas per 200 ms block cuts the per-block figures by ten (4 MB and 1 MB) but leaves the yearly growth the same.

With a floor in place, at a 200M gas/s limit and 33.33M gas/s target:

FloorMax calldata/blockYearly growthGas to fill 10 MiB
64 gas625 kB16.43 TB~671M
128 gas312.5 kB8.21 TB~1.34B
256 gas156.25 kB4.11 TB~2.68B
512 gas78.13 kB2.05 TB~5.37B

At a 1G gas/s limit and 166.67M gas/s target, the 128 gas row becomes 1.56 MB per block and 41.06 TB a year.

Access lists take block space just like calldata, so they get the same 128 gas/byte rate. Otherwise they would be a cheaper side door for stuffing data into a block.

EntryBytesL1 surcharge (64 gas/byte)Base surcharge (128 gas/byte)
Address201,280 gas2,560 gas
Storage key322,048 gas4,096 gas
EIPTopicWhy it does not apply
7688Forward-compatible consensus data structuresChanges beacon-chain structures, not Base execution.
7732Enshrined proposer-builder separationBase sequencing does not use Ethereum’s proposer and builder roles.
8045Bar slashed validators from proposingBase does not pick L2 block proposers from Ethereum validators.
8061Higher exit and consolidation churnStaking queues sit outside the Base protocol.
8282Builder execution requestsManages staked ePBS builders, which Base does not have.
8070eth/72 sparse blobpoolBase posts blobs to L1 and runs no L2 blob pool.
8136Cell-level deltas for data column broadcastPeerDAS networking on L1; Base gains only indirectly through L1 DA.
7904Compute gas cost analysisInformational; no protocol change to adopt.
8261Gas limit scheduleInformational; Base sets its L2 gas limit on its own.