eth_getProof
curl --request POST \
--url https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_getProof",
"params": [
"0x3600000000000000000000000000000000000000",
[],
"latest"
]
}
'import requests
url = "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "eth_getProof",
"params": ["0x3600000000000000000000000000000000000000", [], "latest"]
}
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: 'eth_getProof',
params: ['0x3600000000000000000000000000000000000000', [], 'latest']
})
};
fetch('https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/', 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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/",
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' => 'eth_getProof',
'params' => [
'0x3600000000000000000000000000000000000000',
[
],
'latest'
]
]),
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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getProof\",\n \"params\": [\n \"0x3600000000000000000000000000000000000000\",\n [],\n \"latest\"\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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getProof\",\n \"params\": [\n \"0x3600000000000000000000000000000000000000\",\n [],\n \"latest\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
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\": \"eth_getProof\",\n \"params\": [\n \"0x3600000000000000000000000000000000000000\",\n [],\n \"latest\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": {
"address": "0x3600000000000000000000000000000000000000",
"balance": "0xa3f4a5c7c9a8a0000",
"codeHash": "0xc9987bd3af6b26a030951faa7eacc017b68343aeedf3ce5fe68f821c4b93939d",
"nonce": "0x1",
"storageHash": "0xaf70229a7b28b8585feb66178f9427124de8d5d49d50a50cabb751cd1c4a5227",
"accountProof": [
"0xf90211a049100b8307d0f817b630af39002c7a927e6676c7037ca273c205609adc9a79b0a0d67605f92e44dd690f79818db366cccb75203588628b7df827e75c0f549aeacda0da71c8b1fbf33d51e8233eb9e041f2224c3f73e96de902b6c988bdaef783d76ca04c2c2a0709f91a2d0a07552774bc3f9e75c03c9d17a4a136848e36b5299d41a2a02c2dc1ac8dca48feceb622b555fad7b25a65db3ec2dcc19180b2ab94f8ea4e67a0dd424d6a7aa37b1c05cb2c53fafa5bd300a4bd6ab89ad0eba6b01a22b0a95202a0d609e801bdd070e2d6030cae10a977cd6d6a3fc94340fb2622f6720fb0ca119da0762552191ff617b08ca0e17eb57694a53c30a9c750fbad920eeab7193cf2d4c8a07a09f9b0ea94806ef35ed02d8e6be7f048b9244aa0ca895cb8252c548a2c6cf8a088ec6d86e4e9099432afbdfe72ee50616efb903d2d5a527b9045d55a8938101ba0ca8ddf31f92ae69972b7ef693da8ecf8cfe5154546f77311bdb8d72c7be5d34fa03649277ac922e22328315c4d27794a7c454a4dba8ac4d37e7e325462a46c1e03a0225955e6dfe95ec25d014bdd163da334e41774e0b439e3b31dd4cde9fb70f561a0d1fb637d3d8081ecd467db31849afb1aaf012a6ab91f3e243b34e415b2d17634a0769bca519b7b37be8bcd321b535bf1d8c96d1d24f9eaa6f989f1526ccec0afa0a03414c703496fb667301ffd4ec71e46dd225477c8d71b9dc609d231261f56954580",
"0xf90211a0d71a5c08818c2035f456c8ad7019bac62ac62bc56f186d9a1a22f6b62567c7d4a0d24e1e4eb19b9873c74dc0915a1efb22851ed6921c8db31209bedd9a28eca4afa0811920cd57ed02c23d258f3d6cde313c2b716157df17bdce762535d6dabeee68a068ddc53d080fa4d7a4735a8ad1bbd054eb94005e861502cadd937d5bac085a8ea0ffc9b9d0daa341275fa08fb4c39f0ec53cac18c5d99ff0e3353759e872e91d9da0769d74831c216c96a3307822a3192342b9e43576c395a9b4fa4361b3976fad25a060e775b9955ad5772228b234b8d9a522bc3a99f7f72a6091f5e88c7a59d090b4a07762d5c31bc4e33671914a652882e1845a142e75c76e663dd32e532e7f04aa76a0bec8c9dbe7155976b1571ee95176c19a1b6bd9f8c186d4ef39224099dfddd6eea09a893bd076399d6b7887cfaee327c942b385769f080391ffdb657ddc1732c0d9a0977893687c1ad0a82b145d67e1f3e164f28cf62862e4a0ed60cf3257508dc7fda0d1648a0b021156b96dbb18baf515f02530dc3e6305d1f5803333d288a19eb6d2a0abd4e91ec0714fd10844967ee0bd671e99d84456ff5768b611eec4ba2151a490a0a465a3b59b52c72074afd8574ad7c26ff949afb898b4aa22894d8de254ac5274a08eda1f9a46904ae99913d9e7140da1b732c316a6b7c04ef2865dfe440aa37490a04deb40a9e81283668bd4df5e8ea613ce25e08edaaa1247466cf8713d2cc4433c80",
"0xf90211a05251e940efd6243bf72ee31220acfb8eda3202930a19dbe943122da5e3bdafbea0f13d460bdc51a5d6d8bdfdd313cd4eb4d8c50ee46a9d07a28a76069fa7452319a0acc35e7ef36b97a223f927b6a02480f901e45986f291333457c5b4032dcdcc91a0cd0f452450bacdc1c017f2774d1eba86039871ce42c674c94ab5eab9dededd76a0b82d613963e88a09b83cb228664c8344029e9354b8f451568b07b5e382a278fda0b8c808758cc58e1bc7d4edf3addb073d3331368234e45603ee23f514f0993fc7a03861e711bb8c410349dc1d097790faf2b2c4026de9ece4159f60e5ad3c2808b7a051bc0582ca650d65b295b3555ce8f765041f933ae444ff119106bf97ad1db8cca06389eb8d0249f2f2b1d71644386cf43e457345de06412af22ed67a64517225b3a0255d5fb3361f2e701288a46391179a8bf5ce2f9eec9cef087ffc4f17fe1e1fb6a0f4f28ac10f63001fd2057c9b65312040681ba1abc5b65f50107077ba088f2a7ba0523fbc6ecd2dfc482f204bb8141a1d39663ad586a9556c0dbd4d041335f80878a077dd575da0aa732dfa6e09273d38694579cf56de20bba97a3344bcc925dc0bf6a0a62182a85c9aa646fae74d590b4a35aae8db148c63b5c2d344956be2eeaaa3f1a0af1788ffd9842e493697ffce6af92e18678ef1752f556d53e8a53e9560225f9ea037fffce8cc2fe2a584d5cc8d54005457a574e18124e407d0babf77e5be2f193780",
"0xf90211a083327005640cfd09a094721404245832e0deb3da92a11c623ea74e617e3d78aaa0f44807d550044b5a6d46a463e1ba4c25f198373eee9cc2947836d922a4b00aeea0eebdeb1dc6f23d74a670bf30c756877044359ebfa3200916fec760460545c3b7a02b42b0d71863ec4de960cf67dc67dde195ed348c988194b219849db8a6edd21ba0d0758c267d37ff6aab596d37d2e7f080d6117b9722fa79c57134df65755fe2eaa053642b7f1bca8a0649c236eaf13cd65772f216dafdf4c3f19b3b09a158bb6703a0e292399db228c83c92ac4f7479253e4a3312549aaf2fef8db1836669ec790f13a01554ee452e0d1f550a8174d43ee2ab05ee9d69174553980e7c202524d60b7848a07e2121e825dcf2736786b7ff567cb59fb7ae1e07c3a654cd666d8195d9cd0b55a021ffa95a7592f101850e4d0230ca81d2b4d4b62c2a5634b9b785f4a8eaa3de51a0c55185e5c825dabaa001725572a4753d5cc945092bf9c2e440e2d32591e4dfc8a0b37cd2caf269beefc0697630ac2423d83e6acd8ece9abba1cd80e9fe25a97edfa0a6ddf972bb967ee583a11d7cf948deab61888dfd6baff860d4aa000ed1ff1af6a0a405ff306f7621dc036aeed0faec4d5204d133036a84ed9f664538834e3f9406a03961d91c511c4b6cc6ffff7792114ee82522f09d54f9f0dfc753ca5911af7a5ea05fea38bc5832495203cb53fb6f92ed3281a9704eff9a7c7fa1dde338291112c080",
"0xf90211a086950ecad36556bbb7e6f79abc736fa64adb20bec7cd9113439368f566fcc384a027b3a9c0d77c090049647aa8cac5086c80a480244c749fdc46a19c764077f3e6a00257168ba48b43e89999c298e32013456e47c2ea012de14f193d4365e72097f9a07f5f86f453116a1fe8b4b011e35deead3be5f5c564882376eb360dcd1b3c8251a0a8d6a8593d6a76b30071e49684ff8cce8769d5faf282928f8ddb1bb1602eb627a02c9ecc604264cd34c4ac4e297f70afd6a2a914eff515cba8c7421a8e95f020b0a004c16ffedee9f1a52d2facb355e402201b6078a8a33954143d4adf00da6c16f2a0b1990a3c08cc9f4e8dbbea1595abbcca856e158ed8bcc0a8bf3adc76c3540ceda0f3604b31e7e6940886aa6b530f480a052a6131e9d3b558c9c0c84fa325fc5394a05a0e91b3c1c4defb840d6396e4ee0c7afaf4549da2ed3223de9e77d451c6609ca01e9a6a5efc1718643709952e2b08df7fad33a62c634f8568cb64b6570770b4f4a05cc632eb2e398f86a9da3133bd3ff35d1754c0a46a57fe7d500c1272827b9aa8a044df41db286a73a7daf46f250e104a8468def81f33a014997ac172c546c0a910a00c86f3e6209f6435a9f87f222c0bf31288dcd289a0eefcecdd04a3d06e45980aa02796d95e5add19c4e9dda8f432102b37030bac60487f65a5c4f7a6cee5596f50a02db23d1d5594c516954a7ad1c6c67c2234c62a1d246ad5094cef1b75d81bcc6b80",
"0xf90211a04291c0adfa4976bdf96e78d88495546f2f28eecfc05fc0b96755592b6d5e1eb6a0b58b25111df1d2cc77de58c989bf18e7075538fc733aafa825019fff8d4bf6f4a0a9da0bfdd487d371f117b00e6fa8601a68f6d231846155e842f7dc7e7e7d82afa084823c354e5e2b8debceb6b4927e614fbaa5a07ceef2a4c043679496d5f27220a0d76e7edc04424890e571182eb91954db548504c742a5c58523b409951a38439ca0faf6cff9f98bebefde4bcf72a100d9eeced4aa521a1974a79baba49611e4a8aea0fc2a48d5c2f5c6a6c76d2e9a9bf84aea5993a506281f887edf6b9ed6c30d26cfa0fb5a86084698328d5c0a7fc6c075d452460bb4bf90c44fe1d261fdef6ce87ad3a0e1559e31b0618368acf3b496eee53dac808109abd9f11178ed55eec1baf1bfa2a095dafd8ec63be86d3fe0ea4911c34ac048fb1fb2d7664abbe686cf21d256ca6fa07b075a86a76c3b8ab78215edfc2b57d2c7ec705de6b1accf35ba74d8432c94f0a00cd63a9f4e6a9230a6f6a3091acd76ecd12fb11b8d2c5920a05cddd1b375e1bda0273b1f333abeae38de59276b671b0a56c2e359eae31787e8b7af70e32894cc35a027ecbe92a3f65bc236fe4ca5af437cf52042e575bae26b2a567a6dc3b2e4387ca044031d98bab3edf7ffc96c62e27bdd47200192149759e236b93e4aacc12e78fca06f64aa6a1335612d98034abbcc224fcbfbcda26d79151b916be8411272ff9d9180",
"0xf89180a090e66a316f2aa57e339e07c22c290f5d4eafc219bde7ad3b7340869aafddad0e8080808080a00408a4c53aabb67c09a90bd6357e6ffb678912f587e8a5b89c4ac3b432bb0924808080a0fa807aa7e359d2c0840d31fbe91d426d69647d6937f62b360f53f6cbb0848b6aa033e6b552221ecdb849b430499acf6886cde33c18b52110dcccc00c4828b261a780808080",
"0xf86f9d39d406adc073c7af41f98ee55e2b04b3b44d971d6009f97e498f86ab8ab84ff84d01890a3f4a5c7c9a8a0000a0af70229a7b28b8585feb66178f9427124de8d5d49d50a50cabb751cd1c4a5227a0c9987bd3af6b26a030951faa7eacc017b68343aeedf3ce5fe68f821c4b93939d"
],
"storageProof": []
}
}Arc node API
eth_getProof | Arc
Arc API method that returns the Merkle proof for an account and optionally some storage keys. Available on Arc via Chainstack.
POST
/
eth_getProof
curl --request POST \
--url https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_getProof",
"params": [
"0x3600000000000000000000000000000000000000",
[],
"latest"
]
}
'import requests
url = "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "eth_getProof",
"params": ["0x3600000000000000000000000000000000000000", [], "latest"]
}
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: 'eth_getProof',
params: ['0x3600000000000000000000000000000000000000', [], 'latest']
})
};
fetch('https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/', 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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/",
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' => 'eth_getProof',
'params' => [
'0x3600000000000000000000000000000000000000',
[
],
'latest'
]
]),
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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getProof\",\n \"params\": [\n \"0x3600000000000000000000000000000000000000\",\n [],\n \"latest\"\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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getProof\",\n \"params\": [\n \"0x3600000000000000000000000000000000000000\",\n [],\n \"latest\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
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\": \"eth_getProof\",\n \"params\": [\n \"0x3600000000000000000000000000000000000000\",\n [],\n \"latest\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": {
"address": "0x3600000000000000000000000000000000000000",
"balance": "0xa3f4a5c7c9a8a0000",
"codeHash": "0xc9987bd3af6b26a030951faa7eacc017b68343aeedf3ce5fe68f821c4b93939d",
"nonce": "0x1",
"storageHash": "0xaf70229a7b28b8585feb66178f9427124de8d5d49d50a50cabb751cd1c4a5227",
"accountProof": [
"0xf90211a049100b8307d0f817b630af39002c7a927e6676c7037ca273c205609adc9a79b0a0d67605f92e44dd690f79818db366cccb75203588628b7df827e75c0f549aeacda0da71c8b1fbf33d51e8233eb9e041f2224c3f73e96de902b6c988bdaef783d76ca04c2c2a0709f91a2d0a07552774bc3f9e75c03c9d17a4a136848e36b5299d41a2a02c2dc1ac8dca48feceb622b555fad7b25a65db3ec2dcc19180b2ab94f8ea4e67a0dd424d6a7aa37b1c05cb2c53fafa5bd300a4bd6ab89ad0eba6b01a22b0a95202a0d609e801bdd070e2d6030cae10a977cd6d6a3fc94340fb2622f6720fb0ca119da0762552191ff617b08ca0e17eb57694a53c30a9c750fbad920eeab7193cf2d4c8a07a09f9b0ea94806ef35ed02d8e6be7f048b9244aa0ca895cb8252c548a2c6cf8a088ec6d86e4e9099432afbdfe72ee50616efb903d2d5a527b9045d55a8938101ba0ca8ddf31f92ae69972b7ef693da8ecf8cfe5154546f77311bdb8d72c7be5d34fa03649277ac922e22328315c4d27794a7c454a4dba8ac4d37e7e325462a46c1e03a0225955e6dfe95ec25d014bdd163da334e41774e0b439e3b31dd4cde9fb70f561a0d1fb637d3d8081ecd467db31849afb1aaf012a6ab91f3e243b34e415b2d17634a0769bca519b7b37be8bcd321b535bf1d8c96d1d24f9eaa6f989f1526ccec0afa0a03414c703496fb667301ffd4ec71e46dd225477c8d71b9dc609d231261f56954580",
"0xf90211a0d71a5c08818c2035f456c8ad7019bac62ac62bc56f186d9a1a22f6b62567c7d4a0d24e1e4eb19b9873c74dc0915a1efb22851ed6921c8db31209bedd9a28eca4afa0811920cd57ed02c23d258f3d6cde313c2b716157df17bdce762535d6dabeee68a068ddc53d080fa4d7a4735a8ad1bbd054eb94005e861502cadd937d5bac085a8ea0ffc9b9d0daa341275fa08fb4c39f0ec53cac18c5d99ff0e3353759e872e91d9da0769d74831c216c96a3307822a3192342b9e43576c395a9b4fa4361b3976fad25a060e775b9955ad5772228b234b8d9a522bc3a99f7f72a6091f5e88c7a59d090b4a07762d5c31bc4e33671914a652882e1845a142e75c76e663dd32e532e7f04aa76a0bec8c9dbe7155976b1571ee95176c19a1b6bd9f8c186d4ef39224099dfddd6eea09a893bd076399d6b7887cfaee327c942b385769f080391ffdb657ddc1732c0d9a0977893687c1ad0a82b145d67e1f3e164f28cf62862e4a0ed60cf3257508dc7fda0d1648a0b021156b96dbb18baf515f02530dc3e6305d1f5803333d288a19eb6d2a0abd4e91ec0714fd10844967ee0bd671e99d84456ff5768b611eec4ba2151a490a0a465a3b59b52c72074afd8574ad7c26ff949afb898b4aa22894d8de254ac5274a08eda1f9a46904ae99913d9e7140da1b732c316a6b7c04ef2865dfe440aa37490a04deb40a9e81283668bd4df5e8ea613ce25e08edaaa1247466cf8713d2cc4433c80",
"0xf90211a05251e940efd6243bf72ee31220acfb8eda3202930a19dbe943122da5e3bdafbea0f13d460bdc51a5d6d8bdfdd313cd4eb4d8c50ee46a9d07a28a76069fa7452319a0acc35e7ef36b97a223f927b6a02480f901e45986f291333457c5b4032dcdcc91a0cd0f452450bacdc1c017f2774d1eba86039871ce42c674c94ab5eab9dededd76a0b82d613963e88a09b83cb228664c8344029e9354b8f451568b07b5e382a278fda0b8c808758cc58e1bc7d4edf3addb073d3331368234e45603ee23f514f0993fc7a03861e711bb8c410349dc1d097790faf2b2c4026de9ece4159f60e5ad3c2808b7a051bc0582ca650d65b295b3555ce8f765041f933ae444ff119106bf97ad1db8cca06389eb8d0249f2f2b1d71644386cf43e457345de06412af22ed67a64517225b3a0255d5fb3361f2e701288a46391179a8bf5ce2f9eec9cef087ffc4f17fe1e1fb6a0f4f28ac10f63001fd2057c9b65312040681ba1abc5b65f50107077ba088f2a7ba0523fbc6ecd2dfc482f204bb8141a1d39663ad586a9556c0dbd4d041335f80878a077dd575da0aa732dfa6e09273d38694579cf56de20bba97a3344bcc925dc0bf6a0a62182a85c9aa646fae74d590b4a35aae8db148c63b5c2d344956be2eeaaa3f1a0af1788ffd9842e493697ffce6af92e18678ef1752f556d53e8a53e9560225f9ea037fffce8cc2fe2a584d5cc8d54005457a574e18124e407d0babf77e5be2f193780",
"0xf90211a083327005640cfd09a094721404245832e0deb3da92a11c623ea74e617e3d78aaa0f44807d550044b5a6d46a463e1ba4c25f198373eee9cc2947836d922a4b00aeea0eebdeb1dc6f23d74a670bf30c756877044359ebfa3200916fec760460545c3b7a02b42b0d71863ec4de960cf67dc67dde195ed348c988194b219849db8a6edd21ba0d0758c267d37ff6aab596d37d2e7f080d6117b9722fa79c57134df65755fe2eaa053642b7f1bca8a0649c236eaf13cd65772f216dafdf4c3f19b3b09a158bb6703a0e292399db228c83c92ac4f7479253e4a3312549aaf2fef8db1836669ec790f13a01554ee452e0d1f550a8174d43ee2ab05ee9d69174553980e7c202524d60b7848a07e2121e825dcf2736786b7ff567cb59fb7ae1e07c3a654cd666d8195d9cd0b55a021ffa95a7592f101850e4d0230ca81d2b4d4b62c2a5634b9b785f4a8eaa3de51a0c55185e5c825dabaa001725572a4753d5cc945092bf9c2e440e2d32591e4dfc8a0b37cd2caf269beefc0697630ac2423d83e6acd8ece9abba1cd80e9fe25a97edfa0a6ddf972bb967ee583a11d7cf948deab61888dfd6baff860d4aa000ed1ff1af6a0a405ff306f7621dc036aeed0faec4d5204d133036a84ed9f664538834e3f9406a03961d91c511c4b6cc6ffff7792114ee82522f09d54f9f0dfc753ca5911af7a5ea05fea38bc5832495203cb53fb6f92ed3281a9704eff9a7c7fa1dde338291112c080",
"0xf90211a086950ecad36556bbb7e6f79abc736fa64adb20bec7cd9113439368f566fcc384a027b3a9c0d77c090049647aa8cac5086c80a480244c749fdc46a19c764077f3e6a00257168ba48b43e89999c298e32013456e47c2ea012de14f193d4365e72097f9a07f5f86f453116a1fe8b4b011e35deead3be5f5c564882376eb360dcd1b3c8251a0a8d6a8593d6a76b30071e49684ff8cce8769d5faf282928f8ddb1bb1602eb627a02c9ecc604264cd34c4ac4e297f70afd6a2a914eff515cba8c7421a8e95f020b0a004c16ffedee9f1a52d2facb355e402201b6078a8a33954143d4adf00da6c16f2a0b1990a3c08cc9f4e8dbbea1595abbcca856e158ed8bcc0a8bf3adc76c3540ceda0f3604b31e7e6940886aa6b530f480a052a6131e9d3b558c9c0c84fa325fc5394a05a0e91b3c1c4defb840d6396e4ee0c7afaf4549da2ed3223de9e77d451c6609ca01e9a6a5efc1718643709952e2b08df7fad33a62c634f8568cb64b6570770b4f4a05cc632eb2e398f86a9da3133bd3ff35d1754c0a46a57fe7d500c1272827b9aa8a044df41db286a73a7daf46f250e104a8468def81f33a014997ac172c546c0a910a00c86f3e6209f6435a9f87f222c0bf31288dcd289a0eefcecdd04a3d06e45980aa02796d95e5add19c4e9dda8f432102b37030bac60487f65a5c4f7a6cee5596f50a02db23d1d5594c516954a7ad1c6c67c2234c62a1d246ad5094cef1b75d81bcc6b80",
"0xf90211a04291c0adfa4976bdf96e78d88495546f2f28eecfc05fc0b96755592b6d5e1eb6a0b58b25111df1d2cc77de58c989bf18e7075538fc733aafa825019fff8d4bf6f4a0a9da0bfdd487d371f117b00e6fa8601a68f6d231846155e842f7dc7e7e7d82afa084823c354e5e2b8debceb6b4927e614fbaa5a07ceef2a4c043679496d5f27220a0d76e7edc04424890e571182eb91954db548504c742a5c58523b409951a38439ca0faf6cff9f98bebefde4bcf72a100d9eeced4aa521a1974a79baba49611e4a8aea0fc2a48d5c2f5c6a6c76d2e9a9bf84aea5993a506281f887edf6b9ed6c30d26cfa0fb5a86084698328d5c0a7fc6c075d452460bb4bf90c44fe1d261fdef6ce87ad3a0e1559e31b0618368acf3b496eee53dac808109abd9f11178ed55eec1baf1bfa2a095dafd8ec63be86d3fe0ea4911c34ac048fb1fb2d7664abbe686cf21d256ca6fa07b075a86a76c3b8ab78215edfc2b57d2c7ec705de6b1accf35ba74d8432c94f0a00cd63a9f4e6a9230a6f6a3091acd76ecd12fb11b8d2c5920a05cddd1b375e1bda0273b1f333abeae38de59276b671b0a56c2e359eae31787e8b7af70e32894cc35a027ecbe92a3f65bc236fe4ca5af437cf52042e575bae26b2a567a6dc3b2e4387ca044031d98bab3edf7ffc96c62e27bdd47200192149759e236b93e4aacc12e78fca06f64aa6a1335612d98034abbcc224fcbfbcda26d79151b916be8411272ff9d9180",
"0xf89180a090e66a316f2aa57e339e07c22c290f5d4eafc219bde7ad3b7340869aafddad0e8080808080a00408a4c53aabb67c09a90bd6357e6ffb678912f587e8a5b89c4ac3b432bb0924808080a0fa807aa7e359d2c0840d31fbe91d426d69647d6937f62b360f53f6cbb0848b6aa033e6b552221ecdb849b430499acf6886cde33c18b52110dcccc00c4828b261a780808080",
"0xf86f9d39d406adc073c7af41f98ee55e2b04b3b44d971d6009f97e498f86ab8ab84ff84d01890a3f4a5c7c9a8a0000a0af70229a7b28b8585feb66178f9427124de8d5d49d50a50cabb751cd1c4a5227a0c9987bd3af6b26a030951faa7eacc017b68343aeedf3ce5fe68f821c4b93939d"
],
"storageProof": []
}
}Arc API method that returns the Merkle proof for an account and optionally some storage keys. This is useful for verifying account state without trusting the node.
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
address— the address to get the proof forstorageKeys— array of storage positions to prove (hex strings)blockParameter— the block number (hex) or tag (latest,earliest,pending)
Response
result— the proof object:address— the account addressaccountProof— array of RLP-encoded Merkle Patricia trie nodes from state root to accountbalance— the account balancecodeHash— the hash of the account codenonce— the account noncestorageHash— the hash of the storage trie rootstorageProof— array of storage proofs, one per requested key:key— the storage keyvalue— the storage valueproof— array of RLP-encoded trie nodes from storage root to value
eth_getProof code examples
const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
// USDC token address
const USDC = "0x3600000000000000000000000000000000000000";
const getProof = async () => {
// Get proof for storage slot 0 (often totalSupply)
const proof = await provider.send("eth_getProof", [
USDC,
["0x0", "0x1"],
"latest"
]);
console.log(`Account: ${proof.address}`);
console.log(`Balance: ${proof.balance}`);
console.log(`Nonce: ${parseInt(proof.nonce, 16)}`);
console.log(`Code Hash: ${proof.codeHash}`);
console.log(`Storage Hash: ${proof.storageHash}`);
console.log(`\nAccount Proof nodes: ${proof.accountProof.length}`);
for (const sp of proof.storageProof) {
console.log(`\nStorage Key: ${sp.key}`);
console.log(` Value: ${sp.value}`);
console.log(` Proof nodes: ${sp.proof.length}`);
}
};
getProof();
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))
# USDC token address
USDC = "0x3600000000000000000000000000000000000000"
result = web3.provider.make_request("eth_getProof", [
USDC,
["0x0", "0x1"],
"latest"
])
proof = result['result']
print(f"Account: {proof['address']}")
print(f"Balance: {proof['balance']}")
print(f"Nonce: {int(proof['nonce'], 16)}")
print(f"Code Hash: {proof['codeHash']}")
print(f"Storage Hash: {proof['storageHash']}")
print(f"\nAccount Proof nodes: {len(proof['accountProof'])}")
for sp in proof['storageProof']:
print(f"\nStorage Key: {sp['key']}")
print(f" Value: {sp['value']}")
print(f" Proof nodes: {len(sp['proof'])}")
curl -X POST "CHAINSTACK_NODE_URL" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getProof",
"params": [
"0x3600000000000000000000000000000000000000",
["0x0", "0x1"],
"latest"
],
"id": 1
}'
Last modified on September 16, 2026
Was this page helpful?