API Reference

eth_getStorageAt - Base

Returns the value from a storage position at a given address, or in other words, returns the state of the contract's storage, which may not be exposed via the contract's methods.

Parameters

  • DATA, 20 Bytes - Address of the storage.
  • QUANTITY - Integer of the position in the storage.
  • QUANTITY|TAG - Integer block number, or the string "latest", "earliest" or "pending", see the default block parameter.

Returns

  • DATA - The value at this storage position.

Example

Request

curl --request POST \ --url https://base-testnet.unifra.io/v1/{your-api-key} \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "jsonrpc": "2.0", "method": "eth_getStorageAt", "params": [ "0x9c482da80bcb146d588ae0f13650b2e84d5f709e", "0x0", "latest" ], "id": 1 } '

Result

{ "jsonrpc": "2.0", "id": 1, "result": "0x0000000000000000000000002547aaa4e6a4e67131b5b58dc08b1bedc5bcf642" }

Retrieving an element of the map is harder. The position of an element in the map is calculated with:

keccack(LeftPad32(key, 0), LeftPad32(map position, 0))

This means to retrieve the storage on pos1[“0x391694e7e0b0cce554cb130d723a9d27458f9298”] we need to calculate the position with:

keccak( decodeHex( "000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001" ) );

The geth console which comes with the web3 library can be used to make the calculation:

> var key = "000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001" undefined > web3.sha3(key, {"encoding": "hex"}) "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9"

Now to fetch the storage:

Request

curl https://base-testnet.unifra.io/v1/{your-api-key} \ -X POST \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9", "latest"], "id": 1}'

Result

{ "jsonrpc": "2.0", "id": 1, "result": "0x000000000000000000000000000000000000000000000000000000000000162e" }
Path Params
string
required
Body Params
string
Defaults to 2.0
string
Defaults to eth_getStorageAt
array of strings
Defaults to 0x9c482da80bcb146d588ae0f13650b2e84d5f709e,0x0,latest
params
int32
Defaults to 1
Responses

Language
Click Try It! to start a request and see the response here! Or choose an example:
application/json