> ## 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.

<Note>
  On Global Nodes, this method returns a proof for the latest block only. A block number behind the tip returns `-32602` `distance to target block exceeds maximum proof window`. See [EVM eth\_getProof history limits](/docs/limits#evm-eth_getproof-history-limits).
</Note>

## 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);

  // USDC token address
  const USDC = "0x3600000000000000000000000000000000000000";

  const getProof = async () => {
      // Get proof for storage slot 0 (often totalSupply)
      const proof = await provider.send("eth_getProof", [
        USDC,
        ["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))

  # USDC token address
  USDC = "0x3600000000000000000000000000000000000000"

  result = web3.provider.make_request("eth_getProof", [
      USDC,
      ["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": [
        "0x3600000000000000000000000000000000000000",
        ["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:
                    - '0x3600000000000000000000000000000000000000'
                    - []
                    - 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: '0x3600000000000000000000000000000000000000'
                  balance: '0xa3f4a5c7c9a8a0000'
                  codeHash: >-
                    0xc9987bd3af6b26a030951faa7eacc017b68343aeedf3ce5fe68f821c4b93939d
                  nonce: '0x1'
                  storageHash: >-
                    0xaf70229a7b28b8585feb66178f9427124de8d5d49d50a50cabb751cd1c4a5227
                  accountProof:
                    - >-
                      0xf90211a049100b8307d0f817b630af39002c7a927e6676c7037ca273c205609adc9a79b0a0d67605f92e44dd690f79818db366cccb75203588628b7df827e75c0f549aeacda0da71c8b1fbf33d51e8233eb9e041f2224c3f73e96de902b6c988bdaef783d76ca04c2c2a0709f91a2d0a07552774bc3f9e75c03c9d17a4a136848e36b5299d41a2a02c2dc1ac8dca48feceb622b555fad7b25a65db3ec2dcc19180b2ab94f8ea4e67a0dd424d6a7aa37b1c05cb2c53fafa5bd300a4bd6ab89ad0eba6b01a22b0a95202a0d609e801bdd070e2d6030cae10a977cd6d6a3fc94340fb2622f6720fb0ca119da0762552191ff617b08ca0e17eb57694a53c30a9c750fbad920eeab7193cf2d4c8a07a09f9b0ea94806ef35ed02d8e6be7f048b9244aa0ca895cb8252c548a2c6cf8a088ec6d86e4e9099432afbdfe72ee50616efb903d2d5a527b9045d55a8938101ba0ca8ddf31f92ae69972b7ef693da8ecf8cfe5154546f77311bdb8d72c7be5d34fa03649277ac922e22328315c4d27794a7c454a4dba8ac4d37e7e325462a46c1e03a0225955e6dfe95ec25d014bdd163da334e41774e0b439e3b31dd4cde9fb70f561a0d1fb637d3d8081ecd467db31849afb1aaf012a6ab91f3e243b34e415b2d17634a0769bca519b7b37be8bcd321b535bf1d8c96d1d24f9eaa6f989f1526ccec0afa0a03414c703496fb667301ffd4ec71e46dd225477c8d71b9dc609d231261f56954580
                    - >-
                      0xf90211a0d71a5c08818c2035f456c8ad7019bac62ac62bc56f186d9a1a22f6b62567c7d4a0d24e1e4eb19b9873c74dc0915a1efb22851ed6921c8db31209bedd9a28eca4afa0811920cd57ed02c23d258f3d6cde313c2b716157df17bdce762535d6dabeee68a068ddc53d080fa4d7a4735a8ad1bbd054eb94005e861502cadd937d5bac085a8ea0ffc9b9d0daa341275fa08fb4c39f0ec53cac18c5d99ff0e3353759e872e91d9da0769d74831c216c96a3307822a3192342b9e43576c395a9b4fa4361b3976fad25a060e775b9955ad5772228b234b8d9a522bc3a99f7f72a6091f5e88c7a59d090b4a07762d5c31bc4e33671914a652882e1845a142e75c76e663dd32e532e7f04aa76a0bec8c9dbe7155976b1571ee95176c19a1b6bd9f8c186d4ef39224099dfddd6eea09a893bd076399d6b7887cfaee327c942b385769f080391ffdb657ddc1732c0d9a0977893687c1ad0a82b145d67e1f3e164f28cf62862e4a0ed60cf3257508dc7fda0d1648a0b021156b96dbb18baf515f02530dc3e6305d1f5803333d288a19eb6d2a0abd4e91ec0714fd10844967ee0bd671e99d84456ff5768b611eec4ba2151a490a0a465a3b59b52c72074afd8574ad7c26ff949afb898b4aa22894d8de254ac5274a08eda1f9a46904ae99913d9e7140da1b732c316a6b7c04ef2865dfe440aa37490a04deb40a9e81283668bd4df5e8ea613ce25e08edaaa1247466cf8713d2cc4433c80
                    - >-
                      0xf90211a05251e940efd6243bf72ee31220acfb8eda3202930a19dbe943122da5e3bdafbea0f13d460bdc51a5d6d8bdfdd313cd4eb4d8c50ee46a9d07a28a76069fa7452319a0acc35e7ef36b97a223f927b6a02480f901e45986f291333457c5b4032dcdcc91a0cd0f452450bacdc1c017f2774d1eba86039871ce42c674c94ab5eab9dededd76a0b82d613963e88a09b83cb228664c8344029e9354b8f451568b07b5e382a278fda0b8c808758cc58e1bc7d4edf3addb073d3331368234e45603ee23f514f0993fc7a03861e711bb8c410349dc1d097790faf2b2c4026de9ece4159f60e5ad3c2808b7a051bc0582ca650d65b295b3555ce8f765041f933ae444ff119106bf97ad1db8cca06389eb8d0249f2f2b1d71644386cf43e457345de06412af22ed67a64517225b3a0255d5fb3361f2e701288a46391179a8bf5ce2f9eec9cef087ffc4f17fe1e1fb6a0f4f28ac10f63001fd2057c9b65312040681ba1abc5b65f50107077ba088f2a7ba0523fbc6ecd2dfc482f204bb8141a1d39663ad586a9556c0dbd4d041335f80878a077dd575da0aa732dfa6e09273d38694579cf56de20bba97a3344bcc925dc0bf6a0a62182a85c9aa646fae74d590b4a35aae8db148c63b5c2d344956be2eeaaa3f1a0af1788ffd9842e493697ffce6af92e18678ef1752f556d53e8a53e9560225f9ea037fffce8cc2fe2a584d5cc8d54005457a574e18124e407d0babf77e5be2f193780
                    - >-
                      0xf90211a083327005640cfd09a094721404245832e0deb3da92a11c623ea74e617e3d78aaa0f44807d550044b5a6d46a463e1ba4c25f198373eee9cc2947836d922a4b00aeea0eebdeb1dc6f23d74a670bf30c756877044359ebfa3200916fec760460545c3b7a02b42b0d71863ec4de960cf67dc67dde195ed348c988194b219849db8a6edd21ba0d0758c267d37ff6aab596d37d2e7f080d6117b9722fa79c57134df65755fe2eaa053642b7f1bca8a0649c236eaf13cd65772f216dafdf4c3f19b3b09a158bb6703a0e292399db228c83c92ac4f7479253e4a3312549aaf2fef8db1836669ec790f13a01554ee452e0d1f550a8174d43ee2ab05ee9d69174553980e7c202524d60b7848a07e2121e825dcf2736786b7ff567cb59fb7ae1e07c3a654cd666d8195d9cd0b55a021ffa95a7592f101850e4d0230ca81d2b4d4b62c2a5634b9b785f4a8eaa3de51a0c55185e5c825dabaa001725572a4753d5cc945092bf9c2e440e2d32591e4dfc8a0b37cd2caf269beefc0697630ac2423d83e6acd8ece9abba1cd80e9fe25a97edfa0a6ddf972bb967ee583a11d7cf948deab61888dfd6baff860d4aa000ed1ff1af6a0a405ff306f7621dc036aeed0faec4d5204d133036a84ed9f664538834e3f9406a03961d91c511c4b6cc6ffff7792114ee82522f09d54f9f0dfc753ca5911af7a5ea05fea38bc5832495203cb53fb6f92ed3281a9704eff9a7c7fa1dde338291112c080
                    - >-
                      0xf90211a086950ecad36556bbb7e6f79abc736fa64adb20bec7cd9113439368f566fcc384a027b3a9c0d77c090049647aa8cac5086c80a480244c749fdc46a19c764077f3e6a00257168ba48b43e89999c298e32013456e47c2ea012de14f193d4365e72097f9a07f5f86f453116a1fe8b4b011e35deead3be5f5c564882376eb360dcd1b3c8251a0a8d6a8593d6a76b30071e49684ff8cce8769d5faf282928f8ddb1bb1602eb627a02c9ecc604264cd34c4ac4e297f70afd6a2a914eff515cba8c7421a8e95f020b0a004c16ffedee9f1a52d2facb355e402201b6078a8a33954143d4adf00da6c16f2a0b1990a3c08cc9f4e8dbbea1595abbcca856e158ed8bcc0a8bf3adc76c3540ceda0f3604b31e7e6940886aa6b530f480a052a6131e9d3b558c9c0c84fa325fc5394a05a0e91b3c1c4defb840d6396e4ee0c7afaf4549da2ed3223de9e77d451c6609ca01e9a6a5efc1718643709952e2b08df7fad33a62c634f8568cb64b6570770b4f4a05cc632eb2e398f86a9da3133bd3ff35d1754c0a46a57fe7d500c1272827b9aa8a044df41db286a73a7daf46f250e104a8468def81f33a014997ac172c546c0a910a00c86f3e6209f6435a9f87f222c0bf31288dcd289a0eefcecdd04a3d06e45980aa02796d95e5add19c4e9dda8f432102b37030bac60487f65a5c4f7a6cee5596f50a02db23d1d5594c516954a7ad1c6c67c2234c62a1d246ad5094cef1b75d81bcc6b80
                    - >-
                      0xf90211a04291c0adfa4976bdf96e78d88495546f2f28eecfc05fc0b96755592b6d5e1eb6a0b58b25111df1d2cc77de58c989bf18e7075538fc733aafa825019fff8d4bf6f4a0a9da0bfdd487d371f117b00e6fa8601a68f6d231846155e842f7dc7e7e7d82afa084823c354e5e2b8debceb6b4927e614fbaa5a07ceef2a4c043679496d5f27220a0d76e7edc04424890e571182eb91954db548504c742a5c58523b409951a38439ca0faf6cff9f98bebefde4bcf72a100d9eeced4aa521a1974a79baba49611e4a8aea0fc2a48d5c2f5c6a6c76d2e9a9bf84aea5993a506281f887edf6b9ed6c30d26cfa0fb5a86084698328d5c0a7fc6c075d452460bb4bf90c44fe1d261fdef6ce87ad3a0e1559e31b0618368acf3b496eee53dac808109abd9f11178ed55eec1baf1bfa2a095dafd8ec63be86d3fe0ea4911c34ac048fb1fb2d7664abbe686cf21d256ca6fa07b075a86a76c3b8ab78215edfc2b57d2c7ec705de6b1accf35ba74d8432c94f0a00cd63a9f4e6a9230a6f6a3091acd76ecd12fb11b8d2c5920a05cddd1b375e1bda0273b1f333abeae38de59276b671b0a56c2e359eae31787e8b7af70e32894cc35a027ecbe92a3f65bc236fe4ca5af437cf52042e575bae26b2a567a6dc3b2e4387ca044031d98bab3edf7ffc96c62e27bdd47200192149759e236b93e4aacc12e78fca06f64aa6a1335612d98034abbcc224fcbfbcda26d79151b916be8411272ff9d9180
                    - >-
                      0xf89180a090e66a316f2aa57e339e07c22c290f5d4eafc219bde7ad3b7340869aafddad0e8080808080a00408a4c53aabb67c09a90bd6357e6ffb678912f587e8a5b89c4ac3b432bb0924808080a0fa807aa7e359d2c0840d31fbe91d426d69647d6937f62b360f53f6cbb0848b6aa033e6b552221ecdb849b430499acf6886cde33c18b52110dcccc00c4828b261a780808080
                    - >-
                      0xf86f9d39d406adc073c7af41f98ee55e2b04b3b44d971d6009f97e498f86ab8ab84ff84d01890a3f4a5c7c9a8a0000a0af70229a7b28b8585feb66178f9427124de8d5d49d50a50cabb751cd1c4a5227a0c9987bd3af6b26a030951faa7eacc017b68343aeedf3ce5fe68f821c4b93939d
                  storageProof: []

````