> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chainstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# eth_getProof | Arc

> Arc API method that returns the Merkle proof for an account and optionally some storage keys. Available on Arc via Chainstack.

Arc API method that returns the Merkle proof for an account and optionally some storage keys. This is useful for verifying account state without trusting the node.

## Parameters

* `address` — the address to get the proof for
* `storageKeys` — array of storage positions to prove (hex strings)
* `blockParameter` — the block number (hex) or tag (`latest`, `earliest`, `pending`)

## Response

* `result` — the proof object:
  * `address` — the account address
  * `accountProof` — array of RLP-encoded Merkle Patricia trie nodes from state root to account
  * `balance` — the account balance
  * `codeHash` — the hash of the account code
  * `nonce` — the account nonce
  * `storageHash` — the hash of the storage trie root
  * `storageProof` — array of storage proofs, one per requested key:
    * `key` — the storage key
    * `value` — the storage value
    * `proof` — array of RLP-encoded trie nodes from storage root to value

## `eth_getProof` code examples

<CodeGroup>
  ```javascript ethers.js theme={"system"}
  const ethers = require('ethers');
  const NODE_URL = "CHAINSTACK_NODE_URL";
  const provider = new ethers.JsonRpcProvider(NODE_URL);

  // pathUSD token address
  const PATHUSD = "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f";

  const getProof = async () => {
      // Get proof for storage slot 0 (often totalSupply)
      const proof = await provider.send("eth_getProof", [
        PATHUSD,
        ["0x0", "0x1"],
        "latest"
      ]);

      console.log(`Account: ${proof.address}`);
      console.log(`Balance: ${proof.balance}`);
      console.log(`Nonce: ${parseInt(proof.nonce, 16)}`);
      console.log(`Code Hash: ${proof.codeHash}`);
      console.log(`Storage Hash: ${proof.storageHash}`);

      console.log(`\nAccount Proof nodes: ${proof.accountProof.length}`);

      for (const sp of proof.storageProof) {
        console.log(`\nStorage Key: ${sp.key}`);
        console.log(`  Value: ${sp.value}`);
        console.log(`  Proof nodes: ${sp.proof.length}`);
      }
    };

  getProof();
  ```

  ```python web3.py theme={"system"}
  from web3 import Web3

  node_url = "CHAINSTACK_NODE_URL"
  web3 = Web3(Web3.HTTPProvider(node_url))

  # pathUSD token address
  PATHUSD = "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f"

  result = web3.provider.make_request("eth_getProof", [
      PATHUSD,
      ["0x0", "0x1"],
      "latest"
  ])

  proof = result['result']
  print(f"Account: {proof['address']}")
  print(f"Balance: {proof['balance']}")
  print(f"Nonce: {int(proof['nonce'], 16)}")
  print(f"Code Hash: {proof['codeHash']}")
  print(f"Storage Hash: {proof['storageHash']}")

  print(f"\nAccount Proof nodes: {len(proof['accountProof'])}")

  for sp in proof['storageProof']:
      print(f"\nStorage Key: {sp['key']}")
      print(f"  Value: {sp['value']}")
      print(f"  Proof nodes: {len(sp['proof'])}")
  ```

  ```bash cURL theme={"system"}
  curl -X POST "CHAINSTACK_NODE_URL" \
    -H "Content-Type: application/json" \
    -d '{
      "jsonrpc": "2.0",
      "method": "eth_getProof",
      "params": [
        "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f",
        ["0x0", "0x1"],
        "latest"
      ],
      "id": 1
    }'
  ```
</CodeGroup>


## OpenAPI

````yaml openapi/arc_node_api/accounts_info/eth_getProof.json POST /
openapi: 3.0.0
info:
  title: Chainstack Node API
  version: 1.0.0
  description: This is an API for interacting with a Chainstack node.
servers:
  - url: https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c
security: []
paths:
  /:
    post:
      tags:
        - upload
      summary: eth_getProof
      operationId: eth_getProof
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_getProof
                params:
                  type: array
                  default:
                    - '0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f'
                    - []
                    - latest
      responses:
        '200':
          description: Returns the result of eth_getProof.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
                    properties:
                      address:
                        type: string
                      balance:
                        type: string
                      codeHash:
                        type: string
                      nonce:
                        type: string
                      storageHash:
                        type: string
                      accountProof:
                        type: array
                        items:
                          type: string
                      storageProof:
                        type: array
                        items:
                          type: object
              example:
                jsonrpc: '2.0'
                id: 1
                result:
                  address: '0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f'
                  balance: '0x61869834abff6a'
                  codeHash: >-
                    0x22bcbefe2dacbb6289d731af9eabb98fdfb6480f4c59c9b2f45f574f008ef68f
                  nonce: '0x1'
                  storageHash: >-
                    0x4efabc865a8e5e15c76df7d2b448237b3f2502b1deb19a3ffaef54bdd4c89034
                  accountProof:
                    - >-
                      0xf90211a09d309a9154545dea04384fb972e15c9701e0d051d056de3918060be663465eb2a0c84911403b5b7852981cb4c3d4ae7599908c45793e95702cd758a94c6eaf5c8ca0a70ce4d0971ccd1aca11a51d1f8fab0b4a4d2b4f703811632120a09037587544a0b450edd3829c37eb8c5b7a6cabe6a2b305f1089c45e3343f86004f518f78bab9a04dca02c9126c77a615f09be644c869a4906e57b2e45c91c1d73b63c68df98e8fa060c29fca7f26ad3f4f461a540f772da308af48d2640b732481255f7ea5ea7af5a04dc48cf78971cf3d47ad786f6eeb30e3f4d006273196b78b44c6d7a8a9ba3e76a0c755c57aac3977e216ef61307d350f2103fadc20668f89b27787ad1fbd9df146a0b6b55e0684ac34aa6da03e5928d86523c29705f2b7b2c907e33cbd8a4dceb051a0ced31f93806bef7e782aff3cc0e2f096c85da74cdc3ea7f8c2c9e1124301e097a0c35febc3bc86ca301feaca60bb5a2c620c94df0ec13bbd3d3dc48834ec0a96a5a063cefcc721708af8e8f2776e7426161820b59f4f4b3693f49334d2609e146031a0a05b5fcab413f8ac990abad0c7f46d23dc9467fab9efbebed2163b070f1fd046a0e1544f9d7a1d36d72e9829684f6e21308432748ae8fc51425012325ec2c38a8fa0d927101426bdebd7b3d73224e7c44fcb998f43b8c7cfb968391e116abe9db6aea09aad537d221ab5bce44a992980da549b528eca812164666c1a72cc7dc4c0c26980
                    - >-
                      0xf90211a074a177ac2c48afdf7a3bca6c4f98a95f35fa2279cfaa1a7c592d1c748aae5d45a077575351397402ab5f78c1e7577a0c92481cb2d26240561c93f038399ce3e7cba0e24a6595ad40c1279b21447dc3fb87318034321f39c2a68010faef9bac2a2feca0045596f3d5bc450bd1d95a95da80aaf74cfd3a365c6845f8f943e24d0615de0ba0aeaf0262e7aa6ba504efba916788bfb8b8691e076ac70b05e760c0f194bbab1aa01e0d63eedccdca3dddccae6fdaa13140799b7ea08ff80902385f71b91bd12bbba0fb63aa089484777ca90f38be541dcf8603e6549f6336c971ffa4ffd997b619f3a02b3e65363e6424e8f8848f34d2527fa606fe356a538ab0150912c70abeebb3f6a0874ac6c15b75a2502d09c4519d0ef8e6e57212a379b64cc757755622207776f9a06e859a18612a2fdaf5403d60a376dd78ec6001e08547069c9e167f29bc598f43a03bec4460c7ddbd1ef23e4ea53c0b0bad14ff8793338ab622828768a54d914f4fa086c63ef666f04709862f7ee778096357a2652938fa9e62e6eff2257fe25a4ec2a0c3ea08e9689b78fd0b701a8d50725243b81ded3d040adcf7c858f0144307c303a0e94092c85b042e528bd225beb8ca09ba6fefdc172087a2c4919b4d187183869ca055834ac54bfd6810d587dadd5496ee5c69942e016ff45e8f913033d2c732b5f3a06914eab8cda79520258c6887d742c248c420672b4da91e0ca7445b9845096e9e80
                    - >-
                      0xf90211a0836df6d2fe4a08d4c505f3c9fcaf99c6054c441bd07b2d14dbacd274f452a9faa080ba571e9c3bc07f8d1150bcf5cfadfdfea5f03e332fc46688114bde606d59eea0f70303b25732f0d83f98e0713c1581c7f79f6df1de442ace9a9be8f3aef284cca0e261660abb8f0e55f12cbcbf3d5d69f910f030c8aa063d78af292254db32f462a0a507c5c6e94380c40f11235c04a6d63583e26fcaf198ded3a2398ebb99bc7660a0cf5c5691fdbfb2959c27d3542fc0cfdbcc3c65f9a02d02cbe3a9a064013b3fd6a0b810e0b9aaef8447409f0eebaa47a72c217865f0e9adb1eae68b57570df81978a0484b7e2f3437c2e7e6da705b948e486b65fbdcc6c2a1836efe69523414b77d20a09b5b038cff017fe755cb961fd3f8fd229bfa6fd783389d7c1490291e96864df9a0e82ae1a3640a330f91ab954e0c2a8197ec4c4ac3a46624c6f7d3ec4b1ec4cb1ba07a00642c30e3948b3865396de1b88f46324f42d84fa9ec050f0f0bee71646734a03f231a3ecfabfca1de6e37f8bb81909b4207fb6f4e3f5b72d15f619caaf38074a06db6fbc415329c64b0f6db63b23b9e0bfad5532727a909a8d5227b74c73c13c0a0da5c6392dcd1f0b8350bee04476bad1b2b1e5202843b01cfd5e443d4f5a1094ba073636c92aa78b1619b26841d93689b548eca246b7b469b9a56e927a9a3134a9aa09f60d16ba873a56721d4d145bf852d6b74b5c10b61646d9cd2cbd7ee46e3f6c180
                    - >-
                      0xf90211a08a315242a5f19e16c7179064573fc4d97e68c547d37af40bc8fa8a45ca95d500a0609a3587057cd1d84bda99c07cc273dde726fb3f2be53fdb7e2d953fa74a8815a0ba7f8cdd259a3395dfbce91ef3df767671a5320fb049472a4262410752a59845a018c0d318cdb5715e90ee795036775670cdbc9a51c891de76fad0a1cba1b9007ea0701d54421d556d988cb5aba1abd3945321fe496b73ea11a02e9228943192edfea026538047d29b7249c6db0ef2aa5663f0973451922bf85b2077626cc5d6f0737fa0fdd86e52344ac3a58765f0f05543197394d6a16ac4a0861dc999582d7a0b9084a051b10f257e6a142b9188912dbeafe2c78627c73146540b21ff20e2a892fa3f36a0e15c5914ff7f10898a9e32f84fc60da3b285f8520f879225210f5f97de4e19cba0d4b3475dd395998c91eece33dc7205d2b9353472e31a6aeae88b0efc7647bdd0a0090aa68d81a03c0820613d49d3c98d552bff60626ae6131ad3de8865e66c53b3a01bd9da11ab260eeac694f979668e53cfa2f47b7cdb16c2559000a19959b8eee2a00c9f8cca52e67b3e19e5f66a0198bf2a2e508ae8734f8cd05d9bd078912015fea0afaf6d8c34afcb6273c3096199c43fb13a839c57fb54e762a7c8162c1246389fa0124a31a03d80c486b51577d0de271faeca329bcf10fa8d273b95697c0ffe1f3ca0cfc767d7b9fc91ee77eff83b7db3b14f186cf9e4c2d7c744fea00250d2415ad480
                    - >-
                      0xf90211a0a0b96fdc5c23891d895f97692bd58369a1d494af5fdd0ac1ced3106b380da1d6a0ff8b200af11d98b316edb53d77d62716f570c5bd39439fbce73ad66f707fb6bca058c745872b3fe9bd5392173f6a1380217f1937f968b18ff51482469cc68a928da04f13ed5e2eadd22df7d8d698ee67c894e2b47b28d6c7d6a7a26a00328be02a29a0c4ed683858d795a60ea880b72dd5f4e6616d218048007d53839c42c94d16a4c0a0ec1d69ed00252a8d832ffc9d57a29eb7b4d315a9a4707643bf51d21a624e02aca0a50a2f4ce8f8937df69ae454f323db36617683204bb94ea9c9ff60b4fc8f3e03a071d19f11c5907fc0115275c3f0b7f5e2775bc9d2301ceb6b9276460719e3d012a0ed5bf1fdbcfbadeecdbac5ac99b94fc34c8be421d65178a6442b0bb03afce8f3a0fd33fbdb63f2f8c711c2ea1bf852147bde065aa43df1d7adf979ca81dbd51716a0f547a4f39fb173cf9566f254c5b070289129d96c7f1d49065fbdcd6db3452424a09d9ca75e710cbe47c4890a342e9aba8bf06a4109c79756c31d12968a4be27aaaa0b909604adbbdcc0aa48b78e9243817149c9f4b38404565458f9011a3cefda011a0e356fcbba8a0276e8ad5eed11e66fec6d957dcd9d232a4e8f4f40c66f5c78feba0b6daa6be49150ec9ee01b2b725010877539d9841dc7d681c26ba0472024103f6a0ef4d5f09ffb9fe8dcc40e7f9ef5bd3bf416085990ec9698e44f451987629ca1480
                    - >-
                      0xf901f1a072c90c85b7e8bf06bd7e315f7a436307498c9895af57ef9afd9f82cecbb05df1a0329dc9f6014a2490c0524c2d69d1a35d7804a568e4478d8a7fb48f4506954638a093702e82c4dce34b04994de4ff8c3600ba4c5c61aec79e9fc11ec2b4781f06c2a015b41c39a428bca50b388ee99754723e658677a0416f3167961fc8ed357b2cfaa02fa177dc0b921847d3d920389708a7c28d3ff534333c597e17f7bc3afdb506c5a08a276a4dde566177c29e17a0075a2d785e4481ff1a802744761502985c12bf76a0d879aeb8118249302d5bbcf8b414ab324277ed81ce9d1c1c45715d0d379191fda0f211b5df8465013413717247d4d3943aed47d67836c5d6f01afff6f7e3d9e705a0c19b12400fe9c1e46df9d989b39d3e62d814d093161a33e82026cf59e16ed6e3a08c4117a49b13cec25bbe327c5b74bbe732bcba2b42a77178f383178f6299b865a0c31c3eafb792e38d58a097491cf48a2737b330ccac9aa5e15f0764b824d1fd46a09be7e64057f45b872b17f01f55c4a17f60013d125c80c81879c556fb81d62500a046a0aaafc10228d7e2d315d7135997f6b2569948ebef175c85abf6ffc0e8e5f8a04ddd085fec81884f7b3ec0a761b8b47470c7ab96f03e1469aa7aef8c2c76df2ea04eac4407b3473e23280b4ac40eb8fdcaa46889a96b397d1a46ef7b6f481235bf8080
                    - >-
                      0xf8d180a043e6860aeb2d3e4ddd4b63a702798470105905472cf510f3d87f3fdfb88461ca80a0319aaf62172100727463502525bcc5c3701aee3cb98ed839a0413ab2cb75790e8080a063e6aa07f945c34e9ba5089e050e166eabeb20a1ceb8d7a2993e489f928b6e75a0800ffaaf1baa86f993c83191fc8a71760e0f95dea3b9ff48df51c33d1a3af062a098623011f631eb069fdb0e505d4f66a2a23bf01c02f17fef452c513250473323808080808080a09de3b71a73edede8cda04e4325d85c3b5552e074a0d889ed92d05fd4d49551b080
                    - >-
                      0xf86d9d35e2220390b07a25c54222039c4fe32abfc4851128cba0d7adb3753b23b84df84b018761869834abff6aa04efabc865a8e5e15c76df7d2b448237b3f2502b1deb19a3ffaef54bdd4c89034a022bcbefe2dacbb6289d731af9eabb98fdfb6480f4c59c9b2f45f574f008ef68f
                  storageProof: []

````