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

# getAccountInfo

> Возвращает всю информацию, связанную с аккаунтом

Возвращает всю информацию, связанную с аккаунтом предоставленного публичного ключа.

## Параметры

<ParamField query="account" type="string" required>
  Публичный ключ аккаунта для запроса (строка, закодированная в base-58)
</ParamField>

<ParamField query="config" type="object" optional>
  Объект конфигурации, содержащий следующие необязательные поля:

  <Expandable title="поля config">
    <ParamField query="commitment" type="string" optional>
      Уровень commitment для запроса к сети:

      * `processed`: Последний блок (неподтверждённый)
      * `confirmed`: Подтверждён супербольшинством
      * `finalized`: Финализирован супербольшинством
    </ParamField>

    <ParamField query="encoding" type="string" optional default="base64">
      Формат кодирования данных аккаунта:

      * `base58`
      * `base64`
      * `base64+zstd`
      * `jsonParsed` (ограничено определёнными типами аккаунтов)
    </ParamField>

    <ParamField query="dataSlice" type="object" optional>
      Запросить срез данных аккаунта:

      * `offset`: number - Начальная позиция (в байтах)
      * `length`: number - Количество байт для возврата
    </ParamField>

    <ParamField query="minContextSlot" type="number" optional>
      Минимальный слот, при котором может быть выполнен запрос
    </ParamField>
  </Expandable>
</ParamField>

## Ответ

<ResponseField name="result" type="object | null">
  Если запрашиваемый аккаунт не существует, возвращает `null`. В противном случае возвращает объект, содержащий:

  <Expandable title="поля result">
    <ResponseField name="context" type="object">
      <ResponseField name="slot" type="number">
        Слот, при котором был обработан запрос
      </ResponseField>
    </ResponseField>

    <ResponseField name="value" type="object">
      <ResponseField name="lamports" type="number">
        Количество lamports, назначенных аккаунту
      </ResponseField>

      <ResponseField name="owner" type="string">
        Публичный ключ программы-владельца этого аккаунта, закодированный в base-58
      </ResponseField>

      <ResponseField name="executable" type="boolean">
        Содержит ли этот аккаунт программу
      </ResponseField>

      <ResponseField name="rentEpoch" type="number">
        Epoch, при котором этот аккаунт должен будет в следующий раз заплатить аренду
      </ResponseField>

      <ResponseField name="data" type="[string, string] | object">
        Данные аккаунта. Формат зависит от параметра encoding:

        * Кортеж `[string, encoding]` при кодировании в base58/base64
        * Разобранный JSON-объект при encoding "jsonParsed"
      </ResponseField>

      <ResponseField name="space" type="number">
        Пространство, используемое данными аккаунта
      </ResponseField>
    </ResponseField>
  </Expandable>
</ResponseField>

## Примеры кода

### Базовый запрос

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getAccountInfo",
  "params": [
    "vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
    {
      "encoding": "base58"
    }
  ]
}'
```

### Ответ

```json theme={null}
{
  "jsonrpc": "2.0",
  "result": {
    "context": {
      "slot": 430
    },
    "value": {
      "data": ["", "base58"],
      "executable": false,
      "lamports": 5000000000,
      "owner": "11111111111111111111111111111111",
      "rentEpoch": 18446744073709551615,
      "space": 0
    }
  },
  "id": 1
}
```

### Запрос со срезом данных

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getAccountInfo",
  "params": [
    "vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
    {
      "encoding": "base64",
      "dataSlice": {
        "offset": 0,
        "length": 64
      }
    }
  ]
}'
```

### Использование web3.js

```typescript theme={null}
import { Connection, PublicKey } from '@solana/web3.js';

const connection = new Connection('https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY');
const publicKey = new PublicKey('vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg');

const accountInfo = await connection.getAccountInfo(
  publicKey,
  'confirmed'
);
```

## Примечания

1. Кодирование `jsonParsed` доступно только для определённых типов аккаунтов:
   * Стейк-аккаунт
   * Токен-аккаунт
   * Минт токена
   * Метаданные токена

2. При использовании `dataSlice` поле данных будет ограничено только запрошенным срезом.

3. Данные аккаунта могут быть закодированы по-разному в зависимости от программы, которой принадлежит аккаунт.

## Распространённые ошибки

| Код    | Сообщение                                | Решение                                            |
| ------ | ---------------------------------------- | -------------------------------------------------- |
| -32602 | Invalid param: WrongSize                 | Убедитесь, что публичный ключ действителен         |
| -32602 | Invalid param: not base58 encoded string | Убедитесь, что публичный ключ закодирован в base58 |
| -32007 | Account not found                        | Запрашиваемый аккаунт не существует                |
