⚠️Blast API (blastapi.io) ends Oct 31. Migrate to Dwellir and skip Alchemy's expensive compute units.
Switch Today →
Skip to main content

starknet_getStorageProof

Get merkle paths in one of the state tries: global state, classes, individual contract. A single request can query for any mix of the three types of storage proofs (classes, contracts, and storage).

Parameters

ParameterTypeDescription
block_idstringBlock reference ("latest", "l1_accepted", block hash, or block number)
class_hashesfelt252[]Array of class hashes (optional)
contract_addressesfelt252[]Array of contract addresses (optional)
contracts_storage_keysarrayArray of contract-storage key pairs (optional)

Request

{
"jsonrpc": "2.0",
"method": "starknet_getStorageProof",
"params": [
{
"block_hash": "0x05abbad1e5"
},
[
"0x05abbad1e5"
],
[
"0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
],
[
{
"contract_address": "0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"storage_keys": [
"0x1"
]
}
]
],
"id": 1
}

Returns

The requested storage proofs. Note that if a requested leaf has the default value, the path to it may end in an edge node whose path is not a prefix of the requested leaf, thus effectively proving non-membership

Storage proof object with classes proof, contracts proof, storage proofs, and global roots

Errors

CodeMessage
24Block not found
42the node doesn't support storage proofs for blocks that are too far in the past

Examples

curl -X POST https://api-starknet-mainnet.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "starknet_getStorageProof",
"params": [
{
"block_hash": "0x05abbad1e5"
},
[
"0x05abbad1e5"
],
[
"0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
],
[
{
"contract_address": "0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"storage_keys": [
"0x1"
]
}
]
],
"id": 1
}'