Skip to main content

Services documentation

Use high performance APIs provided by Infura to scale your dapp or Snap.

getProgramAccounts

Returns all accounts owned by the provided program public key.

Parameters

  • address: (string) [required] - The base-58 encoded public key of the program to query.
  • config: (object) [optional] - Configuration object with the following options:
    • commitment: (string) [optional] - The commitment level to use for the query. The default is finalized. Possible values are:
      • finalized - Queries the most recent block confirmed by a super majority of the cluster as having reached maximum lockout, meaning the cluster has recognized this block as finalized.
      • confirmed - Queries the most recent block that has been voted on by a super majority of the cluster.
      • processed - Queries its most recent block. The block may still be skipped by the cluster.
    • encoding: (string) [optional] - The encoding format to use. Can be one of base58, base64, base64+zstd, or jsonParsed
    • dataSlice: (object) [optional] - A slice of the account data to return. Only available for base58, base64, or base64+zstd encoding. This is an object with two properties:
      • offset - The starting byte offset of the slice.
      • length - The length of the slice in bytes.
    • minContextSlot: [optional] - The minimum slot to use for the query.
    • withContext: (boolean). Wraps the result in a JSON object.
    • filters - Filter results using an array of up to 4 filter objects.

Returns

result - An object with the following fields:

  • pubkey - The public key of the node encoded as base58 string.
  • account - An object with the following fields:
    • data - The account data, encoded in the specified format.
    • executable - A boolean indicating whether the account is executable.
    • lamports - The number of lamports assigned to the account.
    • owner - The public key of the program that owns the account.
    • rentEpoch - The epoch in which the account will next be due for rent.
    • space - The size of the account data in bytes.

Example

Replace <YOUR-API-KEY> with your API key.

Request

curl https://solana-mainnet.infura.io/v3/<YOUR-API-KEY> \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "getProgramAccounts", "params": ["4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T", {"filters": [{"dataSize": 17}, {"memcmp": {"offset": 4, "bytes": "3Mc6vR"}}]}]}'

Response

{
"jsonrpc": "2.0",
"result": [
{
"account": {
"data": "2R9jLfiAQ9bgdcw6h8s44439",
"executable": false,
"lamports": 15298080,
"owner": "4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T",
"rentEpoch": 28,
"space": 42
},
"pubkey": "CxELquR1gPP8wHe33gZ4QxqGB3sZ9RSwsJ2KshVewkFY"
}
],
"id": 1
}