post https://eth-mainnet.alchemyapi.io/v2/
Returns the account and storage values of the specified account including the Merkle-proof. This call can be used to verify that the data you are pulling from is not tampered with.
Parameters
DATA
, 20 Bytes - address of the account.ARRAY
, 32 Bytes - an array of storage-keys that should be proofed and included. Seeeth_getStorageAt
QUANTITY|TAG
- integer block number, or the string"latest"
or"earliest"
, see the default block parameter
Returns
Object
- A account object:
balance
:QUANTITY
- the balance of the account. Seeeth_getBalance
codeHash
:DATA
, 32 Bytes - hash of the code of the account. For a simple Account without code it will return"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"
nonce
:QUANTITY
, - nonce of the account. Seeeth_getTransactionCount
storageHash
:DATA
, 32 Bytes - SHA3 of the StorageRoot. All storage will deliver a MerkleProof starting with thisrootHash
.accountProof
:ARRAY
- Array of rlp-serialized MerkleTree-Nodes, starting with the stateRoot-Node, following the path of the SHA3 (address) as key.storageProof
:ARRAY
- Array of storage-entries as requested. Each entry is an object with these properties:key
:QUANTITY
- the requested storage keyvalue
:QUANTITY
- the storage valueproof
:ARRAY
- Array of rlp-serialized MerkleTree-Nodes, starting with the storageHash-Node, following the path of the SHA3 (key) as path.
Example
Request
// Installation instructions: https://github.com/alchemyplatform/alchemy-web3
async function main() {
// Import the AlchemyWeb3 library. Filepath to functions:
// /@alch/alchemy-web3/dist/alchemyWeb3.js
const { createAlchemyWeb3 } = require("@alch/alchemy-web3");
// Replace with your Alchemy API key:
const apiKey = "demo";
// Initialize an alchemy-web3 instance:
const web3 = createAlchemyWeb3(
`https://eth-mainnet.g.alchemy.com/v2/${apiKey}`);
// Query the blockchain (replace example parameters)
const account = await web3.eth.getProof({
address: '0x7e5814a',
keys: ["0x56e81f,0x283s34"],
tag: 'latest',
});
// Print the output to console
console.log(account);
}
main();
// Installation instructions: https://docs.ethers.io/v5/getting-started/#installing
async function main() {
const { ethers } = require("ethers");
// Replace with your Alchemy API key:
const apiKey = "demo";
// Initialize an ethers instance
const provider = new ethers.providers.AlchemyProvider("homestead", apiKey);
// Query the blockchain (replace example parameters)
const account = await provider.getProof({
address: '0x7e5814a',
keys: ["0x56e81f,0x283s34"],
tag: 'latest',
});
// Print the output to console
console.log(account);
}
main()
# Installation Instructions: https://web3py.readthedocs.io/en/latest/quickstart.html#installation
from web3 import Web3, HTTPProvider
#Replace with your Alchemy API key:
apiKey = "demo"
# Initialize a Web3.py instance
web3 = Web3(Web3.HTTPProvider('https://eth-mainnet.alchemyapi.io/v2/'+apiKey))
# Query the blockchain (replace example parameters)
account = web3.eth.get_proof({
account: "0x7e581", #can be a checksum address or ENS
positions: ['0']
block_identifier: '3391'
})
# Print the output to console
print(account)
curl https://eth-mainnet.alchemyapi.io/v2/your-api-key \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getProof","params":["0x7F0d15C7FAae65896648C8273B6d7E43f58Fa842",["0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"],"latest"],"id":1}'
URL: https://eth-mainnet.alchemyapi.io/v2/your-api-key
RequestType: POST
Body:
{
"jsonrpc":"2.0",
"method":"eth_getProof",
"params":["0x7F0d15C7FAae65896648C8273B6d7E43f58Fa842",["0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"],"latest"],
"id":1
}
Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"accountProof": [
"0xf90211a...0701bc80",
"0xf90211a...0d832380",
"0xf90211a...5fb20c80",
"0xf90211a...0675b80",
"0xf90151a0...ca08080"
],
"balance": "0x0",
"codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"nonce": "0x0",
"storageHash": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"storageProof": [
{
"key": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"proof": [
"0xf90211a...0701bc80",
"0xf90211a...0d832380"
],
"value": "0x1"
}
]
}
}
The below parameter inputs do not work, please reference the section above instead.