Arbitrum One
Ready to call this in production?
Free tier covers personal projects. Pay-as-you-go scales without a card.
Arbitrum One
Free tier covers personal projects. Pay-as-you-go scales without a card.
eth_getProof returns an account's core fields — balance in ETH wei, nonce, codeHash, storageHash — together with Merkle-Patricia trie proofs for the account and for any storage slots you list, all on Arbitrum One. Because Arbitrum One (chain ID 42161) is an Optimistic Rollup whose state settles to Ethereum L1, these proofs are the building block for trustless cross-domain verification. Call it at https://arbitrum.therpc.io/YOUR_API_KEY with an address, an array of storage keys, and a block tag, and it returns the account fields plus the accountProof and storageProof trie-node arrays needed to verify them against the block's state root.
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | address | string (hex) | Yes | The account to generate proofs for. |
| 2 | storageKeys | array of string (hex) | Yes | Storage slots to include in the storage proof. |
| 3 | blockTag | string | No | Block at which to generate the proof.Default: latest |
| Type | Description |
|---|---|
| object | Object containing: address, balance (hex wei), codeHash (hex), nonce (hex), storageHash (hex), accountProof (array of hex-encoded RLP trie nodes), storageProof (array of {key, value, proof} objects). |
Try it live in the Arbitrum One playground.
| Code | Message | Cause |
|---|---|---|
-32602 | Invalid params | Address malformed or a storage key is not 32 bytes. |
-32000 | Missing trie node | Block is too old and the node has pruned state (non-archive node). |
eth_getStorageAt are far simpler.stateRoot from that block's header — fetch the header (e.g. via eth_getBlockByNumber) and verify the accountProof resolves to it.Parameters
0x-prefixed 20-byte address
array of 32-byte hex slot indices, may be empty []
hex block number or "latest"/"earliest"/"pending"/"safe"/"finalized"