Skip to main content
Breaking Schema ChangesEthereum’s Glamsterdam upgrade (estimated May–June 2026) introduces EIP-7732: Enshrined Proposer-Builder Separation (ePBS), which fundamentally changes how beacon blocks are structured.Action Required: Queries using execution_payload, blob_kzg_commitments, or execution_requests fields in beacon.raw.blocks and beacon_hoodi.raw.blocks will return NULL values for all slots after the Glamsterdam activation.Timeline: Changes will be available on beacon_hoodi testnet in early April 2026, approximately 4+ weeks before mainnet activation.

What Is Changing

The Glamsterdam upgrade restructures how beacon blocks are produced by enshrining the proposer-builder separation protocol directly into the consensus layer.

Key Change: Block Body Structure

Before Glamsterdam, a beacon block body contains the full execution payload with transaction data:
{
  "body": {
    "execution_payload": {
      "block_hash": "0xabc...",
      "block_number": "21000000",
      "timestamp": "1700000000",
      "fee_recipient": "0xdef...",
      "transactions": [...],
      "withdrawals": [...]
    },
    "blob_kzg_commitments": [...],
    "execution_requests": {...}
  }
}
After Glamsterdam, the proposer commits only a bid from the builder — the execution payload is revealed separately:
{
  "body": {
    "signed_execution_payload_bid": {
      "message": {
        "slot": "...",
        "block_hash": "0xabc...",
        "parent_hash": "0x...",
        "builder_index": "12345",
        "fee_recipient": "0xdef...",
        "gas_limit": "30000000",
        "value": "1500000000"
      },
      "signature": "0x..."
    },
    "payload_attestations": [
      {
        "aggregation_bits": "0x...",
        "data": {
          "beacon_block_root": "0x...",
          "slot": "...",
          "payload_present": true
        },
        "signature": "0x..."
      }
    ]
  }
}
The execution_payload, blob_kzg_commitments, and execution_requests fields are absent from the block body for all slots after the fork.
Why This MattersePBS separates the roles of block proposers and block builders at the protocol level. Proposers commit to a builder’s bid without seeing the full payload contents, which is then attested by a Payload Timeliness Committee (PTC). This reduces MEV centralization risks and improves censorship resistance.

Impact to Allium Tables

beacon.raw.blocks — Breaking Changes

The following columns will be affected for all slots after Glamsterdam activation:
ColumnCurrent BehaviorPost-Glamsterdam Behavior
execution_payloadAlways present (object)NULL or missing
eth1_block_hashExecution block hashNULL
eth1_block_numberExecution block numberNULL
eth1_block_timestampExecution block timestampNULL
transaction_countInteger ≥ 00 (no payload in block body)
withdrawal_countInteger ≥ 00 (no payload in block body)
withdrawalsArray of withdrawal objectsNULL
blob_kzg_commitmentsArray (if blobs present)NULL
execution_requestsObject (post-Pectra)NULL
signed_execution_payload_bidDoes not existNEW — builder’s signed bid
payload_attestationsDoes not existNEW — PTC attestation array
Migration Path: Use the new beacon.raw.execution_payload_bids table (see below) to look up execution block hashes and builder information for post-fork slots.

beacon.raw.block_rewards — Additive Changes

New columns will be added to provide explicit builder payment tracking:
ColumnCurrent BehaviorPost-Glamsterdam Behavior
totalConsensus proposer rewardUnchanged
attestationsComponent breakdownUnchanged
sync_aggregateComponent breakdownUnchanged
proposer_slashingsComponent breakdownUnchanged
attester_slashingsComponent breakdownUnchanged
builder_indexDoes not existNEW — validator index of winning builder
builder_paymentDoes not existNEW — explicit Gwei paid by builder to proposer
No Breaking Changes: All existing columns remain available. The new builder_payment field provides explicit execution reward attribution, replacing the current fee-recipient inference method for post-fork slots.

beacon.validator.consensus_income — No Changes

This view aggregates consensus-layer rewards only (attestations, sync committee, block proposals). No structural changes are expected.

New Tables

beacon.raw.execution_payload_bids

Provides one row per slot containing the builder’s committed bid from the beacon block body. Use this table to look up execution block hashes and builder information for post-Glamsterdam slots. Unique Key: slot_number
ColumnTypeDescription
slot_numberbigintBeacon slot number
slot_timestamptimestampSlot timestamp
proposer_indexbigintValidator index of the proposer
builder_indexbigintValidator index of the winning builder
valuenumericBid value in Gwei (builder payment to proposer)
parent_hashvarcharParent execution block hash
block_hashvarcharCommitted execution block hash
gas_limitbigintProposed gas limit
fee_recipientvarcharFee recipient address

beacon.raw.payload_attestations

Provides one row per Payload Timeliness Committee (PTC) attestation, recording whether the builder revealed the execution payload on time. Unique Key: slot_number
ColumnTypeDescription
slot_numberbigintBeacon slot being attested
slot_timestamptimestampSlot timestamp
payload_presentbooleanWhether the PTC attested the payload was revealed on time
aggregation_bitsvarcharBitfield of PTC members who signed this attestation
beacon_block_rootvarcharRoot of the beacon block being attested

Migration Timeline

TimelineEstimated DateStatus
Hoodi testnet ePBS activationEarly April 2026Awaiting node provider confirmation
Allium Hoodi schema update live~1 week after testnet activationPending
Glamsterdam mainnet activationMay–June 2026 (TBD by Ethereum Foundation)Pending
Allium mainnet schema cutoverPre-emptively supportedPending
Additive-First StrategyAllium follows an additive-first migration approach: New columns and tables appear before old columns are deprecated. Deprecated fields return NULL for post-fork slots — columns are not dropped. All changes are live on beacon_hoodi testnet ≥4 weeks before mainnet. Historical data (pre-fork slots) remains unchanged.

Action Items

ActionPriorityDeadline
Identify all queries referencing affected fields in beacon.raw.blocks and beacon_hoodi.raw.blocksHighBefore April 16, 2026
Update queries to use beacon.raw.execution_payload_bids for block hash lookupsHighBefore mainnet activation
Update execution reward reconciliation to use builder_payment in beacon.raw.block_rewardsHighBefore mainnet activation
Test updated queries against Hoodi testnet dataHighApril 16 – May 7, 2026
Optionally consume beacon.raw.payload_attestations to detect builder withholding eventsLowPost-mainnet

Additional Notes

EIP-7928 (Block-level Access Lists)

EIP-7928 is also included in the Glamsterdam upgrade but has no impact on beacon chain API structure or Allium tables. This EIP affects execution layer transaction processing only.

Reference Documentation

Support

If you have questions about migrating your queries or need assistance testing against Hoodi testnet data, please contact the Allium support team.
Last updated: March 27, 2026