Skip to main content
POST
eth_getStorageValues
BNB API method that returns the values stored at multiple storage slots, across one or more smart contracts, in a single call. It replaces a batch of eth_getStorageAt requests when you read several slots at the same block, for example to snapshot a contract’s state.
On BNB Smart Chain Global Nodes, eth_getStorageValues serves the latest 128 blocks. For an older block, it returns an error of the form historical state <state root> is not available; use eth_getStorageAt to read older state.
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

  • object — an object that maps each contract address to an array of storage slot keys. Each key must be a full 32-byte hex value, such as 0x0000000000000000000000000000000000000000000000000000000000000001; a short form such as 0x1 is rejected. A request can include up to 1,024 slots in total.
  • quantity or tag — the integer of a block encoded as hexadecimal or the string with:
    • latest — the most recent block in the blockchain and the current state of the blockchain at the most recent block. A chain reorganization is to be expected.
    • safe — the block that received justification from the beacon chain. Although this block could be involved in a chain reorganization, it would necessitate either a coordinated attack by the majority of validators or an instance of severe propagation latency.
    • finalized — the block accepted as canonical by more than 2/3 of the validators. A chain reorganization is extremely unlikely, and it would require at least 1/3 of the staked amount to be burned.
    • pending — the pending state and transactions block. The current state of transactions that have been broadcast to the network but have not yet been included in a block.

Response

result — an object that maps each requested contract address, in lowercase, to an array of 32-byte storage values in the same order as the requested slots. A request with no slots returns -32602 with empty request, and a request with more than 1,024 slots returns -38026 with too many slots (max 1024).

eth_getStorageValues code examples

The examples read slots 0 and 3 of the Binance-Peg BSC-USD (USDT) contract and slot 0 of the CAKE token contract in one call.

Use case

One use case for eth_getStorageValues is reading a consistent snapshot of several contracts’ internal state. All slots come from the same block in one round trip, so a monitoring service that tracks owners, balances, or configuration slots across many contracts avoids both the request overhead of separate eth_getStorageAt calls and the risk of reading different slots at different blocks.

Body

application/json
method
string
default:eth_getStorageValues
params
(Slots by contract · object | string)[]

An object that maps each contract address to an array of 32-byte storage slot keys. Up to 1,024 slots in total per request.

id
integer
default:1
jsonrpc
string
default:2.0

Response

200 - application/json

The storage values for each requested contract, in the order of the requested slots.

jsonrpc
string
id
integer
result
object

An object that maps each contract address (lowercase) to an array of 32-byte storage values, in the order of the requested slots.

Last modified on November 12, 2026