debug_preimage
curl --request POST \
--url https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_preimage",
"params": [
"0x0000000000000000000000000000000000000000000000000000000000000000"
]
}
'import requests
url = "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "debug_preimage",
"params": ["0x0000000000000000000000000000000000000000000000000000000000000000"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 1,
jsonrpc: '2.0',
method: 'debug_preimage',
params: ['0x0000000000000000000000000000000000000000000000000000000000000000']
})
};
fetch('https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'debug_preimage',
'params' => [
'0x0000000000000000000000000000000000000000000000000000000000000000'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_preimage\",\n \"params\": [\n \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_preimage\",\n \"params\": [\n \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_preimage\",\n \"params\": [\n \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": "<string>"
}Robinhood Chain node API
debug_preimage | Robinhood
Robinhood Chain API method that returns the preimage for a given Keccak-256 hash. In Ethereum’s state trie, account addresses are stored as their Keccak-256 hashes.
POST
/
debug_preimage
curl --request POST \
--url https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_preimage",
"params": [
"0x0000000000000000000000000000000000000000000000000000000000000000"
]
}
'import requests
url = "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "debug_preimage",
"params": ["0x0000000000000000000000000000000000000000000000000000000000000000"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 1,
jsonrpc: '2.0',
method: 'debug_preimage',
params: ['0x0000000000000000000000000000000000000000000000000000000000000000']
})
};
fetch('https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'debug_preimage',
'params' => [
'0x0000000000000000000000000000000000000000000000000000000000000000'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_preimage\",\n \"params\": [\n \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_preimage\",\n \"params\": [\n \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_preimage\",\n \"params\": [\n \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": "<string>"
}Robinhood Chain API method that returns the preimage for a given Keccak-256 hash. In Ethereum’s state trie, account addresses are stored as their Keccak-256 hashes. This method allows retrieving the original data (preimage) that was hashed. The node must have preimage recording enabled for this method to return results.
Learn how to deploy a node with the debug and trace API methods enabled.
This method is available for post-Nitro blocks only (block 22,207,815 and later). For pre-Nitro blocks, use the
arbtrace_* methods instead.Preimage recording must be enabled on the node (
--cache.preimages). If preimages are not stored, this method returns an error.Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
hash— the Keccak-256 hash to look up the preimage for, encoded as a hex string.
Response
data— the raw preimage bytes as a hex string. Returns an error if the preimage is not found.
debug_preimage code examples
const { JsonRpcProvider } = require("ethers");
const provider = new JsonRpcProvider("CHAINSTACK_NODE_URL");
async function call() {
const result = await provider.send("debug_preimage", ["0x0000000000000000000000000000000000000000000000000000000000000000"]);
console.log(result);
}
call();
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))
result = web3.provider.make_request("debug_preimage", ["0x0000000000000000000000000000000000000000000000000000000000000000"])
print(result)
curl -X POST "CHAINSTACK_NODE_URL" \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"method": "debug_preimage",
"params": ["0x0000000000000000000000000000000000000000000000000000000000000000"],
"id": 1
}'
Last modified on July 18, 2026
Was this page helpful?
⌘I