getProgramAccountsV2

POSTAccountsBlade Runner+

Page through a program's accounts in fixed-size chunks using a cursor, instead of one unbounded response.

Try itSends a real request from your browser to the selected region.
POST
/

getProgramAccountsV2 takes the same filters as getProgramAccounts and adds limit, paginationKey and changedSinceSlot, paging through the account set instead of returning it all at once. Pages hold up to 10,000 accounts, 1,000 by default.

This constant-k method is modeled on Helius' getProgramAccountsV2 and is available on Blade Runner and Nexus. The first call omits paginationKey; each subsequent call passes back the previous page's paginationKey, until the response returns null.

Plans & rate limitsBlade Runner and above
FreeNot included
OperatorNot included
Blade Runner25/s
Nexus75/s

Parameters

params is a JSON array, with values in this order: programId, config.

1programIdstringrequired

Base58-encoded public key of the program whose accounts to list.

2configobject

Filtering, encoding, and pagination settings.

Show propertiesProperties
encodingstringdefault: "base58"

Format for each account's data. jsonParsed falls back to base64 when no program-specific parser is available.

Allowed values:base58base64base64+zstdjsonParsed
commitmentstringdefault: "finalized"

How settled the account/transaction state must be before the node acts on it. processed is fastest and can roll back; finalized is slowest and never rolls back.

Allowed values:processedconfirmedfinalized
minContextSlotinteger

Minimum slot the node must have reached before evaluating the request.

Minimum: 0
withContextbooleandefault: false

Wrap the result as {context: {slot, apiVersion}, value: {accounts, paginationKey}} instead of returning {accounts, paginationKey} directly.

dataSliceobject

Return only a byte range of each account's data instead of the whole thing. Not compatible with jsonParsed.

Show propertiesProperties
offsetintegerrequired

Byte offset.

Minimum: 0
lengthintegerrequired

Number of bytes.

Minimum: 0
filtersobject[]

Server-side filters; an account must match all of them to be included. Same shape as getProgramAccounts.

Show one ofOne of
Option 1object
Show propertiesProperties
dataSizeintegerrequired

Required exact size of the account's data, in bytes.

Minimum: 0
Option 2object
Show propertiesProperties
memcmpobjectrequired

Compare bytes at a fixed offset within the account's data.

Show propertiesProperties
offsetintegerrequired

Byte offset.

Minimum: 0
bytesstringrequired

Encoded bytes to compare against.

encodingstringdefault: "base58"

Encoding used for bytes (base58 by default).

Allowed values:base58base64
limitintegerdefault: 1000

Maximum accounts to return in this page, from 1 to 10,000. Optional: leave it out and the page holds up to 1,000 accounts.

Minimum: 1Maximum: 10000
paginationKeystring | null

Cursor for the next page: the base58 account public key returned as paginationKey by the previous call. Omit it on the first call; stop paginating once the response's paginationKey is null.

changedSinceSlotinteger

Return only accounts modified at or after this slot. Use it to poll for changes instead of re-reading the whole account set.

Minimum: 0

Result

resultobject

A page of matching accounts plus the cursor for the next page (or null on the last page).

Show one ofOne of
Option 1object

Default shape, used when withContext is false or omitted.

Show propertiesProperties
accountsobject[]required

The page of matching accounts.

Show each itemEach item
pubkeystring

Base58 public key of the account.

accountobject

The account's on-chain state.

Show propertiesProperties
lamportsinteger

Account balance, in lamports.

ownerstring

Base58 address of the program (or, for a token account, the wallet) that owns this account.

dataany

Account data.

executableboolean

Whether this account is a program.

rentEpochinteger

Legacy rent-exemption epoch; not meaningful for accounts created after rent-exempt minimums became mandatory.

spaceinteger

Size of the account's data, in bytes.

paginationKeystring | nullrequired

Base58 public key of the last account in this page. Passing it back as paginationKey fetches the next page; it is null on the last page, the only end-of-results signal.

Option 2object

Shape used when withContext is true.

Show propertiesProperties
contextobjectrequired

Response context, including the slot the data was read at.

Show propertiesProperties
slotinteger

Slot number this applies to.

apiVersionstring

RPC node software version that produced this response.

valueobjectrequired

The requested data; see the fields below.

Show propertiesProperties
accountsarray

The page of matching accounts.

paginationKeystring | null

Cursor for the next page; null once there are no more pages.

Notes

  • Available on Blade Runner at 25 requests per second and on Nexus at 75 per second. Free and Operator keys get HTTP 403 with getProgramAccountsV2 requires higher tier.
  • A page can come back with fewer accounts than limit, or zero, without that meaning the end; only a null paginationKey signals the end, which the last page always carries.
  • Program scans follow getProgramAccounts rules: at least one selective filter (memcmp or dataSize), token-program scans owner-scoped via dataSize: 165 plus a memcmp of the 32-byte owner at offset 32.
  • Twelve hot programs are answered from a purpose-built in-memory index rather than an account scan: a fraction of a second, no scan-results cap, and no filter required. Every other program is scanned on disk, where the filter requirement and scan limits above apply.
ProgramProgram ID
Address Lookup TableAddressLookupTab1e1111111111111111111111111
Raydium AMM V4675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8
Raydium CPMMCPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C
Raydium CLMMCAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK
Orca WhirlpoolwhirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc
Meteora DLMMLBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo
Meteora DAMM V2cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG
Meteora DBCdbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN
Pump.fun6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
PumpSwappAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA
Serum V39xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin
Drift V2dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH