Technical reference
eth_getProof: check the state, then check the root you trusted
Account and storage proofs can make an RPC answer verifiable, but they do not choose the canonical chain for you.
Research articles and reference entries are published in English. Navigation is available in seven languages.
In this article
What the response contains
EIP-1186 describes eth_getProof, an RPC method for requesting an account proof and proofs for selected storage keys at a chosen block. The response includes account fields and the encoded trie nodes needed for verification. The proposal is marked Stagnant; check method and historical-state support with the client or provider you actually use.
A verifier checks the account proof against the block’s state root. The proven account contains a storage root; the selected storage proofs are then checked against that root. Merely displaying the returned balance or a field named proof is not verification.
The root is the trust boundary
Ethereum’s state trie commits to account state. Each account’s storage has its own trie. Changing a committed value changes the relevant hashes, which lets a verifier detect a mismatch against a known root.
But a consistent proof can be built against the wrong history. If an untrusted endpoint supplies both the proof and the only block header you accept, you have not independently established that the header belongs to the canonical chain. Root verification and chain verification are separate steps. A correctly proven value can also be old.
Make the finding reproducible
Preserve the chain identifier, block number and hash, header, state root, account address, requested slots and raw proof. Document how the header was obtained and why that block was accepted. If using a moving tag such as latest, resolve and record the concrete block rather than leaving a future reader to guess.
Storage also needs interpretation. A slot is a location, not a field name. Mappings, packed fields and proxy storage require the correct layout. A proof of one storage value cannot establish every liability, withdrawal condition or asset controlled outside that contract. Keep the conclusion as narrow as the verified claim.
