⚠️Blast API (blastapi.io) ends Oct 31. Migrate to Dwellir and skip Alchemy's expensive compute units.
Switch Today →
Skip to main content

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

PositionTypeDescription
0stringStorage key prefix
1numberPage size
2stringStart key (exclusive). Use the last key from the previous page or omit for the first page.
3 (optional)stringBlock 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)