For the complete documentation index, see llms.txt. This page is also available as Markdown.

zks_getProof - zkSync

Example code for the zks_getProof JSON-RPC method. Сomplete guide on how to use zks_getProof JSON-RPC in GetBlock.io Web3 documentation.

Generates Merkle proofs for one or more storage values associated with an account. Unlike Ethereum's two-level hexadecimal trie, zkSync Era uses a single-level full binary tree with 256-bit keys — proofs are batch-anchored rather than block-anchored, so the third parameter is an L1 batch number.

Parameters

Parameter
Type
Required
Description

address

string

Yes

20-byte account address to fetch storage values and proofs for

storageKeys

array of string

Yes

Array of 32-byte storage keys to prove

l1BatchNumber

integer

Yes

L1 batch number at which the proof is anchored

Request Example

curl --location --request POST 'https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/' \
--header 'Content-Type: application/json' \
--data-raw '{
    "jsonrpc": "2.0",
    "method": "zks_getProof",
    "params": [
        "0x0000000000000000000000000000000000008003",
        [
            "0x8b65c0cf1012ea9f393197eb24619fd814379b298b238285649e14f936a5eb12"
        ],
        354895
    ],
    "id": "getblock.io"
}'
import axios from 'axios';

const data = JSON.stringify({
    "jsonrpc": "2.0",
    "method": "zks_getProof",
    "params": [
        "0x0000000000000000000000000000000000008003",
        [
            "0x8b65c0cf1012ea9f393197eb24619fd814379b298b238285649e14f936a5eb12"
        ],
        354895
    ],
    "id": "getblock.io"
});

const config = {
    method: 'post',
    url: 'https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/',
    headers: {
        'Content-Type': 'application/json'
    },
    data: data
};

axios(config)
    .then(response => console.log(JSON.stringify(response.data, null, 2)))
    .catch(error => console.log(error));

Response Example

Response Parameters

Field
Type
Description

result.address

string

Account address (echoed)

result.storageProof

array

Array of storage proofs, one per requested key

result.storageProof[].key

string

Storage key (echoed)

result.storageProof[].value

string

Value at the key at the time of the specified L1 batch

result.storageProof[].index

integer

1-based index of the entry in the Merkle tree

result.storageProof[].proof

array of string

Merkle path from leaf to root (hashes only; root is published on L1)

Use Cases

  • Light client state verification against zkSync's binary tree

  • Cross-chain bridges proving zkSync state

  • Trust-minimized storage reads for audits and bridges

Error Handling

Status Code
Error Message
Cause

403

Forbidden

Missing or invalid <ACCESS-TOKEN>

-32602

Invalid params

Request parameters are missing or malformed

429

Too Many Requests

Rate limit exceeded for your plan

SDK Integration

Last updated

Was this helpful?