← zkSync Era overview
zkSync Era · eth
eth_capabilities
Returns effective capabilities for routing decisions.
Returns information about the data available on this node, including the current head block and retention policies for each resource type. This is useful for RPC routers to determine which historical queries a node can serve.
Result
Capabilities
Schema
{
"type": "object",
"title": "Effective routing capabilities",
"description": "Describes the data available on the node. Each resource reports the oldest available block and the deletion strategy, allowing RPC routers to determine which historical queries a node can serve.",
"properties": {
"blocks": {
"type": "object",
"title": "Effective resource capability",
"description": "Block headers and bodies including transactions and uncles. Determines the available range for block retrieval. Affects: eth_getBlockByHash, eth_getBlockByNumber, eth_getBlockTransactionCountByHash, eth_getBlockTransactionCountByNumber, eth_getUncleCountByBlockHash, eth_getUncleCountByBlockNumber.",
"properties": {
"deleteStrategy": {
"title": "Delete strategy",
"oneOf": [
{
"type": "object",
"title": "Sliding window deletion",
"properties": {
"retentionBlocks": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
},
"type": {
"type": "string",
"enum": [
"window"
]
}
},
"required": [
"type",
"retentionBlocks"
]
}
]
},
"disabled": {
"type": "boolean"
},
"oldestBlock": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
}
},
"required": [
"disabled"
]
},
"head": {
"type": "object",
"title": "Current head block",
"description": "The latest block known to the node, useful for determining sync status.",
"properties": {
"hash": {
"type": "string",
"title": "Head block hash",
"pattern": "^0x[0-9a-f]{64}$"
},
"number": {
"type": "string",
"title": "Head block number",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
}
},
"required": [
"number",
"hash"
]
},
"logs": {
"type": "object",
"title": "Effective resource capability",
"description": "Event logs emitted by smart contracts. Determines the available block range for log queries and filters. Affects: eth_getLogs, eth_getFilterLogs, eth_getFilterChanges, eth_newFilter.",
"properties": {
"deleteStrategy": {
"title": "Delete strategy",
"oneOf": [
{
"type": "object",
"title": "Sliding window deletion",
"properties": {
"retentionBlocks": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
},
"type": {
"type": "string",
"enum": [
"window"
]
}
},
"required": [
"type",
"retentionBlocks"
]
}
]
},
"disabled": {
"type": "boolean"
},
"oldestBlock": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
}
},
"required": [
"disabled"
]
},
"receipts": {
"type": "object",
"title": "Effective resource capability",
"description": "Transaction execution receipts including status, gas used, and logs bloom. Determines the available range for receipt lookups. Affects: eth_getTransactionReceipt, eth_getBlockReceipts.",
"properties": {
"deleteStrategy": {
"title": "Delete strategy",
"oneOf": [
{
"type": "object",
"title": "Sliding window deletion",
"properties": {
"retentionBlocks": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
},
"type": {
"type": "string",
"enum": [
"window"
]
}
},
"required": [
"type",
"retentionBlocks"
]
}
]
},
"disabled": {
"type": "boolean"
},
"oldestBlock": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
}
},
"required": [
"disabled"
]
},
"state": {
"type": "object",
"title": "Effective resource capability",
"description": "Account and contract state including balances, nonces, code, and storage. Determines the available range for historical state queries. Affects: eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCount, eth_call, eth_estimateGas, eth_createAccessList.",
"properties": {
"deleteStrategy": {
"title": "Delete strategy",
"oneOf": [
{
"type": "object",
"title": "Sliding window deletion",
"properties": {
"retentionBlocks": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
},
"type": {
"type": "string",
"enum": [
"window"
]
}
},
"required": [
"type",
"retentionBlocks"
]
}
]
},
"disabled": {
"type": "boolean"
},
"oldestBlock": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
}
},
"required": [
"disabled"
]
},
"stateproofs": {
"type": "object",
"title": "Effective resource capability",
"description": "Merkle proofs for account and storage state. Determines the available range for proof generation. Affects: eth_getProof.",
"properties": {
"deleteStrategy": {
"title": "Delete strategy",
"oneOf": [
{
"type": "object",
"title": "Sliding window deletion",
"properties": {
"retentionBlocks": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
},
"type": {
"type": "string",
"enum": [
"window"
]
}
},
"required": [
"type",
"retentionBlocks"
]
}
]
},
"disabled": {
"type": "boolean"
},
"oldestBlock": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
}
},
"required": [
"disabled"
]
},
"tx": {
"type": "object",
"title": "Effective resource capability",
"description": "Transaction data and lookup indices. Determines the available range for transaction lookups by hash or block position. Affects: eth_getTransactionByHash, eth_getTransactionByBlockHashAndIndex, eth_getTransactionByBlockNumberAndIndex.",
"properties": {
"deleteStrategy": {
"title": "Delete strategy",
"oneOf": [
{
"type": "object",
"title": "Sliding window deletion",
"properties": {
"retentionBlocks": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
},
"type": {
"type": "string",
"enum": [
"window"
]
}
},
"required": [
"type",
"retentionBlocks"
]
}
]
},
"disabled": {
"type": "boolean"
},
"oldestBlock": {
"type": "string",
"title": "hex encoded unsigned integer",
"pattern": "^0x(0|[1-9a-f][0-9a-f]*)$"
}
},
"required": [
"disabled"
]
}
},
"required": [
"head",
"state",
"tx",
"logs",
"receipts",
"blocks",
"stateproofs"
]
}Example request
Endpoint: https://your-zksync-node.azxa.io
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_capabilities",
"params": []
}Example response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blocks": {
"disabled": false,
"oldestBlock": "0x0"
},
"head": {
"hash": "0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3",
"number": "0x13f8e3a"
},
"logs": {
"deleteStrategy": {
"retentionBlocks": "0x23dbb0",
"type": "window"
},
"disabled": false,
"oldestBlock": "0x11b340a"
},
"receipts": {
"deleteStrategy": {
"retentionBlocks": "0x23dbb0",
"type": "window"
},
"disabled": false,
"oldestBlock": "0x11b340a"
},
"state": {
"deleteStrategy": {
"retentionBlocks": "0x15f90",
"type": "window"
},
"disabled": false,
"oldestBlock": "0x13e022a"
},
"stateproofs": {
"deleteStrategy": {
"retentionBlocks": "0x15f90",
"type": "window"
},
"disabled": false,
"oldestBlock": "0x13e022a"
},
"tx": {
"deleteStrategy": {
"retentionBlocks": "0x23dbb0",
"type": "window"
},
"disabled": false,
"oldestBlock": "0x11b340a"
}
}
}Test fixture
Fixture: get-capabilities
Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_capabilities"
}Response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"head": {
"number": "0x36",
"hash": "0xd226371d0b1551adb03fb52b71f08e3e11247fe9b1af994768af8cdaa8e7dcd7"
},
"state": {
"disabled": false,
"oldestBlock": "0x0"
},
"tx": {
"disabled": false,
"oldestBlock": "0x0"
},
"logs": {
"disabled": false,
"oldestBlock": "0x0",
"deleteStrategy": {
"type": "window",
"retentionBlocks": "0x23dbb0"
}
},
"receipts": {
"disabled": false,
"oldestBlock": "0x0"
},
"blocks": {
"disabled": false,
"oldestBlock": "0x0"
},
"stateproofs": {
"disabled": false,
"oldestBlock": "0x0"
}
}
}cURL
curl -X POST https://your-zksync-node.azxa.io \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_capabilities","params":[]}'