Data API
GET /v1/programs/{programId}/accounts
Enumerate a whitelisted program's accounts with dataSize + memcmp filters — the getProgramAccounts equivalent, served from the on-disk mirror.
Endpoint
GET https://solindex.infinityblocks.io/v1/programs/{programId}/accounts
Authentication
Send your key in the x-api-key header (or ?api-key=). See Authentication.
Path parameters
| Param | Description |
|---|---|
programId | Base-58 program id (must be whitelisted/indexed). |
Query parameters
| Param | Type | Default | Allowed / range |
|---|---|---|---|
dataSize | int | — | Match accounts whose raw data is exactly this many bytes |
memcmp | string | — | Repeatable: <code>offset,base58bytes</code> — match raw data at byte offset (e.g. a discriminator or a pool/owner field) |
limit | int | 1000 | 1–10000 (page size) |
offset | int | 0 | Rows to skip |
Request
curl -s "https://solindex.infinityblocks.io/v1/programs/{programId}/accounts?memcmp=0,2sJ…&memcmp=40,EXgLJxbcAH6…" \
-H "x-api-key: <API_KEY>"
const r = await fetch("https://solindex.infinityblocks.io/v1/programs/{programId}/accounts?memcmp=0,2sJ…&memcmp=40,EXgLJxbcAH6…", {
headers: { "x-api-key": "<API_KEY>" },
});
const { data } = await r.json();
Response
{ "data": [
{ "pubkey": "25bDgFkq…", "lamports": 2039280, "data": "<base64>", "dataLen": 89, "slot": 423870739 },
… ],
"page": { "limit": 1000, "offset": 0, "total": 62, "returned": 62, "hasMore": false, "nextOffset": null } }
The
Whitelist a program yourself (add-only):
getProgramAccounts equivalent, RAM-free: a program's accounts are mirrored to disk via the account stream, so enumeration is a query — no validator account index. memcmp is repeatable and matches raw bytes at an offset exactly like JSON-RPC (e.g. an 8-byte Anchor discriminator at offset 0 plus a 32-byte pubkey field). data is returned as base64 — decode client-side as you would a getProgramAccounts response. Only whitelisted programs are queryable.Whitelist a program yourself (add-only):
POST /v1/programs/{programId}/whitelist with your API key. It goes live within seconds — no node restart — enabling both this endpoint and getProgramAccounts for that program. Guards: the program must be a deployed, executable program (not a token mint or a shared/system program like the SPL Token program). Removal is operator-only. Example: curl -X POST -H "x-api-key: <KEY>" https://solindex.infinityblocks.io/v1/programs/<PROGRAM>/whitelistTry it
Run GET /v1/programs/{programId}/accountslive · GET
Your key is stored only in this browser (localStorage).
—