diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go
index 6997f2c82878d14254ac58d4abdbbd6f9bd7e209..32757e75ffd55e43e900739d618490b5a1e1ebae 100644
--- a/internal/ethapi/api.go
+++ b/internal/ethapi/api.go
@@ -1915,6 +1915,19 @@ func NewPublicDebugAPI(b Backend) *PublicDebugAPI {
 	return &PublicDebugAPI{b: b}
 }
 
+// GetHeaderRlp retrieves the RLP encoded for of a single header.
+func (api *PublicDebugAPI) GetHeaderRlp(ctx context.Context, number uint64) (string, error) {
+	header, _ := api.b.HeaderByNumber(ctx, rpc.BlockNumber(number))
+	if header == nil {
+		return "", fmt.Errorf("header #%d not found", number)
+	}
+	encoded, err := rlp.EncodeToBytes(header)
+	if err != nil {
+		return "", err
+	}
+	return fmt.Sprintf("%x", encoded), nil
+}
+
 // GetBlockRlp retrieves the RLP encoded for of a single block.
 func (api *PublicDebugAPI) GetBlockRlp(ctx context.Context, number uint64) (string, error) {
 	block, _ := api.b.BlockByNumber(ctx, rpc.BlockNumber(number))
diff --git a/internal/web3ext/web3ext.go b/internal/web3ext/web3ext.go
index ad459362a59bec6e336c9057001bb676980a29f0..fe9292f5f861cffbd94041acadaacd8968d08353 100644
--- a/internal/web3ext/web3ext.go
+++ b/internal/web3ext/web3ext.go
@@ -223,6 +223,11 @@ web3._extend({
 			params: 1,
 			outputFormatter: console.log
 		}),
+		new web3._extend.Method({
+			name: 'getHeaderRlp',
+			call: 'debug_getHeaderRlp',
+			params: 1
+		}),
 		new web3._extend.Method({
 			name: 'getBlockRlp',
 			call: 'debug_getBlockRlp',