Skip to content

Conversation

@nerolation
Copy link
Contributor

@nerolation nerolation commented Dec 20, 2025

Add RPC methods for EIP-7928 Block-level Access Lists

This PR introduces two new RPC methods to query block-level access lists (BALs) as defined in EIP-7928:

  • eth_getBlockAccessListByHash — returns the BAL for a block by hash
  • eth_getBlockAccessListByNumber — returns the BAL for a block by number or tag

  • Block access lists are stored separately from EL blocks and are not included in the Block structure.
  • RPC methods use the BlockAccessList naming to avoid confusion with EIP-2930 transaction access lists.
  • Error code 4445 is returned for pre-Amsterdam blocks.

@MysticRyuujin
Copy link

Is there a test for 4444 "pruned history unavailable" or perhaps that not possible with the current hivenet?

Also, maybe a silly question but how will the node know the difference between non-existing and pruned?

Otherwise lgtm

@nerolation
Copy link
Contributor Author

No, there's none on that. Wasn't sure about this one but if you say it makes sense to add one, let's do it.
Re, pruned vs. non-available, there can never be a valid ExecutionPayloadEnvelope with an empty Payload on the CL . As long as the EL block exists, it will always contain some fields in the BAL, e.g. entries from system contracts (4788, 7002, ... ) and won't be empty. If the BAL doesn't exist, but the block did, it must have been pruned.

Copy link
Contributor

@mkalinin mkalinin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The spec and tests look good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants