debug_accountRange
curl --request POST \
--url https://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154 \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_accountRange",
"params": [
"latest",
"0x0000000000000000000000000000000000000000000000000000000000000000",
10,
true,
true,
false
]
}
'import requests
url = "https://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "debug_accountRange",
"params": ["latest", "0x0000000000000000000000000000000000000000000000000000000000000000", 10, True, True, False]
}
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_accountRange',
params: [
'latest',
'0x0000000000000000000000000000000000000000000000000000000000000000',
10,
true,
true,
false
]
})
};
fetch('https://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154', 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://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154",
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_accountRange',
'params' => [
'latest',
'0x0000000000000000000000000000000000000000000000000000000000000000',
10,
true,
true,
false
]
]),
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://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_accountRange\",\n \"params\": [\n \"latest\",\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n 10,\n true,\n true,\n false\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://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_accountRange\",\n \"params\": [\n \"latest\",\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n 10,\n true,\n true,\n false\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154")
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_accountRange\",\n \"params\": [\n \"latest\",\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n 10,\n true,\n true,\n false\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": {}
}Arbitrum node API
debug_accountRange | Arbitrum
Arbitrum API method that enumerates all accounts at a given block with paging capability. debug_accountRange on Arbitrum via Chainstack.
POST
/
66f812de2a6724a75a51f60dd6f2a154
debug_accountRange
curl --request POST \
--url https://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154 \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_accountRange",
"params": [
"latest",
"0x0000000000000000000000000000000000000000000000000000000000000000",
10,
true,
true,
false
]
}
'import requests
url = "https://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "debug_accountRange",
"params": ["latest", "0x0000000000000000000000000000000000000000000000000000000000000000", 10, True, True, False]
}
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_accountRange',
params: [
'latest',
'0x0000000000000000000000000000000000000000000000000000000000000000',
10,
true,
true,
false
]
})
};
fetch('https://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154', 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://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154",
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_accountRange',
'params' => [
'latest',
'0x0000000000000000000000000000000000000000000000000000000000000000',
10,
true,
true,
false
]
]),
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://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_accountRange\",\n \"params\": [\n \"latest\",\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n 10,\n true,\n true,\n false\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://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_accountRange\",\n \"params\": [\n \"latest\",\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n 10,\n true,\n true,\n false\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://nd-954-882-037.p2pify.com/66f812de2a6724a75a51f60dd6f2a154")
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_accountRange\",\n \"params\": [\n \"latest\",\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n 10,\n true,\n true,\n false\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": {}
}Arbitrum API method that enumerates all accounts at a given block with paging capability. This method returns a range of accounts stored in the state trie, providing account details such as balance, nonce, code hash, and storage. It is useful for state inspection and debugging purposes.
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.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
blockNrOrHash— the block number in hex format or block tag (latest,earliest,pending,safe,finalized), or block hash.start— the start key hash for pagination, encoded as hex bytes. Use0x0000000000000000000000000000000000000000000000000000000000000000to start from the beginning.maxResults— the maximum number of accounts to return. Capped at 256.nocode— iftrue, excludes contract bytecode from the result.nostorage— iftrue, excludes storage data from the result.incompletes— iftrue, includes accounts without known addresses.
Response
result— an object containing the state dump:root— the state root hash of the block.accounts— a map of account addresses to account data:balance— the account balance in Wei.nonce— the account nonce.root— the storage root hash.codeHash— the hash of the account’s contract code.code— the contract bytecode (omitted ifnocodeistrue).storage— the account’s storage slots (omitted ifnostorageistrue).address— the account address.
next— the next key hash for pagination. Use this value as thestartparameter in the next call to continue iterating.
debug_accountRange code examples
const ethers = require('ethers');
const NODE_URL = "YOUR_CHAINSTACK_ENDPOINT";
const provider = new ethers.JsonRpcProvider(NODE_URL);
const debugAccountRange = async () => {
const result = await provider.send("debug_accountRange", [
"latest",
"0x0000000000000000000000000000000000000000000000000000000000000000",
10,
true,
true,
false
]);
console.log(result);
};
debugAccountRange();
from web3 import Web3
node_url = "YOUR_CHAINSTACK_ENDPOINT"
web3 = Web3(Web3.HTTPProvider(node_url))
result = web3.provider.make_request('debug_accountRange', [
"latest",
"0x0000000000000000000000000000000000000000000000000000000000000000",
10,
True,
True,
False
])
print(result)
Use case
Thedebug_accountRange method is useful for building state explorers and performing state audits. By paginating through all accounts at a specific block, developers can analyze the distribution of balances, identify contracts, and inspect the state trie structure. The pagination support via the start and next parameters allows iterating over the full account set without loading the entire state into memory.Body
application/json
Last modified on June 22, 2026
Was this page helpful?