diff --git a/Cargo.lock b/Cargo.lock
index 79e19b6c449..8bd9ced6920 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -9964,6 +9964,7 @@ dependencies = [
"reth-trie-common",
"revm",
"revm-inspectors",
+ "serde_json",
"tokio",
"tracing",
]
diff --git a/crates/rpc/rpc-eth-api/Cargo.toml b/crates/rpc/rpc-eth-api/Cargo.toml
index 83ebd47ea64..559eb69e12e 100644
--- a/crates/rpc/rpc-eth-api/Cargo.toml
+++ b/crates/rpc/rpc-eth-api/Cargo.toml
@@ -57,6 +57,7 @@ tokio.workspace = true
# misc
auto_impl.workspace = true
dyn-clone.workspace = true
+serde_json.workspace = true
tracing.workspace = true
[features]
diff --git a/crates/rpc/rpc-eth-api/src/core.rs b/crates/rpc/rpc-eth-api/src/core.rs
index 3ae721c0cab..e0988dba92b 100644
--- a/crates/rpc/rpc-eth-api/src/core.rs
+++ b/crates/rpc/rpc-eth-api/src/core.rs
@@ -18,8 +18,9 @@ use alloy_serde::JsonStorageKey;
use jsonrpsee::{core::RpcResult, proc_macros::rpc};
use reth_primitives_traits::TxTy;
use reth_rpc_convert::RpcTxReq;
-use reth_rpc_eth_types::FillTransaction;
+use reth_rpc_eth_types::{EthApiError, FillTransaction};
use reth_rpc_server_types::{result::internal_rpc_err, ToRpcResult};
+use serde_json::Value;
use std::collections::HashMap;
use tracing::trace;
@@ -406,14 +407,14 @@ pub trait EthApi<
/// Returns the EIP-7928 block access list for a block by hash.
#[method(name = "getBlockAccessListByBlockHash")]
- async fn block_access_list_by_block_hash(&self, hash: B256) -> RpcResult