> ## Documentation Index
> Fetch the complete documentation index at: https://goldrush.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# getProgramAccounts on Solana

> getProgramAccounts returns all accounts owned by a program on Solana, via GoldRush JSON-RPC.

> [card] 0.05 credits per call

`getProgramAccounts` on **Solana**: Returns all accounts owned by a program.

## Endpoint

```
https://rpc.goldrushdata.com/v1/solana-mainnet
```

Authenticate with `Authorization: Bearer <GOLDRUSH_API_KEY>`. See [authentication](https://goldrush.dev/docs/goldrush-json-rpc/authentication.md).

## Parameters

| Name | Type | Required | Description | Example |
| - | - | - | - | - |
| `programId` | `string` | yes | Base-58 encoded program pubkey. | `"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"` |
| `config` | `object` | no | `{commitment?, encoding?, dataSlice?, filters?: array, withContext?, minContextSlot?}`. `filters` accepts `{dataSize}` and `{memcmp: {offset, bytes}}`. | `{"encoding":"jsonParsed","filters":[{"dataSize":165}]}` |

## Returns

`array<object> | object`: Array of `{pubkey, account}` objects (or a `{context, value}` envelope when `withContext` is set).

```json theme={null}
[{"pubkey":"28bf...","account":{"lamports":2039280,"owner":"Tokenkeg...","data":["","base64"],"executable":false,"rentEpoch":361}}]
```

## Examples

```bash curl theme={null}
curl https://rpc.goldrushdata.com/v1/solana-mainnet \
  -H "Authorization: Bearer $GOLDRUSH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getProgramAccounts",
    "params": ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", {"encoding":"jsonParsed","filters":[{"dataSize":165}]}]
  }'
```

```typescript @solana/kit theme={null}
import {
  createDefaultRpcTransport,
  createSolanaRpcFromTransport,
} from "@solana/kit";

const transport = createDefaultRpcTransport({
  url: "https://rpc.goldrushdata.com/v1/solana-mainnet",
  headers: { Authorization: `Bearer ${process.env.GOLDRUSH_API_KEY}` },
});
const rpc = createSolanaRpcFromTransport(transport);

const result = await rpc.getProgramAccounts("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", {"encoding":"jsonParsed","filters":[{"dataSize":165}]}).send();
console.log(result);
```

```python python theme={null}
import os
import requests

resp = requests.post(
    "https://rpc.goldrushdata.com/v1/solana-mainnet",
    headers={
        "Authorization": f"Bearer {os.environ['GOLDRUSH_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={"jsonrpc": "2.0", "id": 1, "method": "getProgramAccounts", "params": ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", {"encoding":"jsonParsed","filters":[{"dataSize":165}]}]},
)
print(resp.json()["result"])
```

## Errors

| Code | Message |
| - | - |
| `-32602` | Filter parameters are invalid. |

Plus standard JSON-RPC errors: `-32600` invalid request, `-32601` method not found, `-32602` invalid params.

## Related Account info methods on Solana

* [`getAccountInfo` on Solana](https://goldrush.dev/docs/api-reference/json-rpc/solana/getaccountinfo)
* [`getBalance` on Solana](https://goldrush.dev/docs/api-reference/json-rpc/solana/getbalance)
* [`getMultipleAccounts` on Solana](https://goldrush.dev/docs/api-reference/json-rpc/solana/getmultipleaccounts)
* [`getLargestAccounts` on Solana](https://goldrush.dev/docs/api-reference/json-rpc/solana/getlargestaccounts)
* [`getVoteAccounts` on Solana](https://goldrush.dev/docs/api-reference/json-rpc/solana/getvoteaccounts)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.