state_getKeysPaged
Description
Paginates through storage keys for a given prefix. Always prefer this method over state_getKeys
for large maps such as staking ledgers or collator session keys.
Parameters
Position | Type | Description |
---|---|---|
0 | string | Storage key prefix |
1 | number | Page size |
2 | string | Start key (exclusive). Use the last key from the previous page or omit for the first page. |
3 (optional) | string | Block hash |
Request Example
Continue scanning collator session keys with a page size of 5.
{
"jsonrpc": "2.0",
"method": "state_getKeysPaged",
"params": [
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3",
5,
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30165c612f75544f29a2b2224d8a6944df8f70196c856ae141ecf1aeb3de10d54461317f2fdeae21b"
],
"id": 8
}
Response Example
{
"jsonrpc": "2.0",
"id": 8,
"result": [
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb302a1a4c9e333badf063b6446a3e6b0781d73ea137f9c74f59918312cb7938a1f234287ea08418633",
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb303359a213f1d06b52805458ace13df5818df36b9a96778476de1eda725937200e1defcdf07166a1e",
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30949a0616566e4101efd2d03e31b7a76a3654be7ae8459eb48b1cd56f9bbdac803b31da20d68683a",
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30a172837282ee2ef6696b90f522ae1da3035ec21acb543515e44ef859a69eaae46ad09f81c150d63",
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30cd63de7fd5c6aa33894c3ae8d4d93717792bb2948aa713ebad3d841edf89543c33b7ac2ab34702b"
]
}
Code Examples
JavaScript (polkadot.js)
const prefix = api.query.session.nextKeys.keyPrefix();
const firstPage = await api.rpc.state.getKeysPaged(prefix.toHex(), 5, null);
const nextPage = await api.rpc.state.getKeysPaged(prefix.toHex(), 5, firstPage[4]);
Python (py-substrate-interface)
substrate = SubstrateInterface(url="wss://api-astar.n.dwellir.com/YOUR_API_KEY", ss58_format=5)
prefix = substrate.generate_storage_hash('Session', 'NextKeys')
page = substrate.rpc_request('state_getKeysPaged', [prefix, 5, None])['result']
print(page)