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

# FastGate RPC methods

> The account-query methods FastGate answers behind the ThorEdge URL, how they differ from a validator, and their error codes.

FastGate answers the 14 methods below when you send them to the ThorEdge RPC URL. No separate endpoint or key exists. Every method has its own page with parameters, response fields, and a response captured from ThorEdge; this page collects the behavior they share.

| Method                                                                                           | Kind                                 |
| ------------------------------------------------------------------------------------------------ | ------------------------------------ |
| [`getAccountInfo`](/api-reference/fastgate/getaccountinfo)                                       | Standard Solana method               |
| [`getMultipleAccounts`](/api-reference/fastgate/getmultipleaccounts)                             | Standard Solana method               |
| [`getBalance`](/api-reference/fastgate/getbalance)                                               | Standard Solana method               |
| [`getTokenAccountBalance`](/api-reference/fastgate/gettokenaccountbalance)                       | Standard Solana method               |
| [`getTokenSupply`](/api-reference/fastgate/gettokensupply)                                       | Standard Solana method               |
| [`getLargestAccounts`](/api-reference/fastgate/getlargestaccounts)                               | Standard Solana method               |
| [`getMinimumBalanceForRentExemption`](/api-reference/fastgate/getminimumbalanceforrentexemption) | Standard Solana method               |
| [`getTokenLargestAccounts`](/api-reference/fastgate/gettokenlargestaccounts)                     | Standard Solana method               |
| [`getProgramAccounts`](/api-reference/fastgate/getprogramaccounts)                               | Standard Solana method               |
| [`getTokenAccountsByOwner`](/api-reference/fastgate/gettokenaccountsbyowner)                     | Standard Solana method               |
| [`getTokenAccountsByDelegate`](/api-reference/fastgate/gettokenaccountsbydelegate)               | Standard Solana method               |
| [`getProgramAccountsV2`](/api-reference/fastgate/getprogramaccountsv2)                           | ThorNode addition: cursor pagination |
| [`getTokenAccountsByOwnerV2`](/api-reference/fastgate/gettokenaccountsbyownerv2)                 | ThorNode addition: cursor pagination |
| [`getTokenAccountsByDelegateV2`](/api-reference/fastgate/gettokenaccountsbydelegatev2)           | ThorNode addition: cursor pagination |

## Shared behavior

**Slot.** Responses reflect FastGate's indexed state and report that slot as `context.slot`. `commitment` and `minContextSlot` are accepted and ignored. `context` has no `apiVersion` field.

**Config object.** The options parameter must be a JSON object or `null`. The legacy bare-string form `["<pubkey>", "base64"]` is rejected with `-32602 Invalid param: config must be an object`.

**Encodings.** `base64` (default), `base58`, `base64+zstd`, and `jsonParsed`. Any other value returns `-32602 unsupported encoding: <value>`. `jsonParsed` decodes SPL Token and Token-2022 token accounts and mints; every other account falls back to base64. `dataSlice` is ignored with `jsonParsed`.

**`dataSlice`.** `{ "offset": <int>, "length": <int> }`, both required. Out-of-range slices are clamped; `space` always reports the full account size.

**Account object.** `{ "lamports", "data", "owner", "executable", "rentEpoch", "space" }`. `rentEpoch` can be `18446744073709551615`, which exceeds JavaScript's safe integer range; parse it as a big integer if you use it.

**Result size.** `getProgramAccounts` returns at most 10,000 accounts; a larger result set returns `-32600` and asks you to switch to `getProgramAccountsV2`. Use the token V2 methods for owners or delegates with very large token-account sets so the query stays inside the read budget.

## Differences by method

| Method                                   | FastGate behavior                                                                                                                                                                |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `getBalance`                             | An account that does not exist returns `value: 0`, not `null`.                                                                                                                   |
| `getMultipleAccounts`                    | No cap on the number of pubkeys per request. Missing accounts are `null` in position.                                                                                            |
| `getTokenAccountBalance`                 | A non-token account returns `-32602 Invalid param: not a Token account`; a missing account returns `-32602 Invalid param: could not find account`.                               |
| `getTokenSupply`                         | A non-mint returns `-32602 Invalid param: not a Token mint`.                                                                                                                     |
| `getLargestAccounts`                     | Always the top 20 accounts by lamports. The `filter` option (`circulating` / `nonCirculating`) is not supported and is ignored.                                                  |
| `getTokenLargestAccounts`                | Always the top 20 holders, even for very large mints.                                                                                                                            |
| `getMinimumBalanceForRentExemption`      | Computed locally from the rent formula; result is a bare integer.                                                                                                                |
| `getProgramAccounts`                     | `filters` are optional. Accepts `changedSinceSlot` in addition to the standard options. `limit` and `paginationKey` are ignored; use `getProgramAccountsV2`.                     |
| `getTokenAccountsByOwner` / `ByDelegate` | The second parameter (`{ "mint" }` or `{ "programId" }`) is required and must contain exactly one key. SPL Token and Token-2022 accounts are returned separately by `programId`. |

## Errors

FastGate errors arrive as HTTP `200` with a JSON-RPC `error` object.

| Code     | Message                                                                                                    | Meaning                                                     | Retry                                              |
| -------- | ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | -------------------------------------------------- |
| `-32602` | `Invalid param: …` / `unsupported encoding: …`                                                             | A parameter failed validation; the message names the field. | Fix the request                                    |
| `-32600` | `Too many accounts requested (Large number of pubkeys), Please use getProgramAccountsV2 with pagination …` | The result exceeds 10,000 accounts.                         | Use the V2 method                                  |
| `-32003` | `Query exceeded the read budget; narrow the filters or use pagination`                                     | The query ran past its time budget.                         | Narrow filters, add `dataSlice`, page with `limit` |
| `-32601` | `Method not found: <method>`                                                                               | Method name is wrong.                                       | Fix the name                                       |
| `-32603` | `database error: …`                                                                                        | Internal failure.                                           | Yes, with backoff                                  |

## Next steps

* [Read one account with `getAccountInfo`](/api-reference/fastgate/getaccountinfo)
* [Page through program accounts with `getProgramAccountsV2`](/api-reference/fastgate/getprogramaccountsv2)
* [Read ThorEdge error codes and rate limits](/api-reference/overview)
