> ## 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.

# HTTP RPC API

> Взаимодействие с узлами Solana с использованием JSON-RPC 2.0

## Обзор

Узлы OrbitFlare RPC принимают HTTP-запросы в соответствии со спецификацией JSON-RPC 2.0. Этот API позволяет вам взаимодействовать с блокчейном Solana для запроса данных и отправки транзакций.

## Формат запроса

Чтобы выполнить JSON-RPC запрос, отправьте HTTP POST-запрос со следующими параметрами:

* Endpoint: `https://fra.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY`
* Заголовок: `Content-Type: application/json`
* Тело: JSON-объект со следующими полями:

| Поле      | Тип           | Описание                         |
| --------- | ------------- | -------------------------------- |
| `jsonrpc` | string        | Должно быть "2.0"                |
| `id`      | string/number | Уникальный идентификатор запроса |
| `method`  | string        | Имя RPC-метода                   |
| `params`  | array         | Массив параметров метода         |

### Пример запроса

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBalance",
  "params": [
    "83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
  ]
}'
```

### Формат ответа

Ответы представляют собой JSON-объекты, содержащие:

| Поле      | Тип           | Описание                             |
| --------- | ------------- | ------------------------------------ |
| `jsonrpc` | string        | Всегда "2.0"                         |
| `id`      | string/number | Соответствует идентификатору запроса |
| `result`  | varies        | Данные результата метода             |
| `error`   | object        | Детали ошибки (если применимо)       |

## Commitment

Многие методы принимают параметр `commitment`, указывающий степень подтверждения данных:

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

Пример с commitment:

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBalance",
  "params": [
    "83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
    {"commitment": "finalized"}
  ]
}'
```

## Пакетные запросы

Вы можете отправить несколько запросов в одном HTTP-вызове, передав массив объектов запросов:

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY -X POST -H "Content-Type: application/json" -d '[
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBalance",
    "params": ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"]
  },
  {
    "jsonrpc": "2.0",
    "id": 2,
    "method": "getBlockHeight",
    "params": []
  }
]'
```

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

| Тип       | Описание                                          |
| --------- | ------------------------------------------------- |
| Pubkey    | Строка публичного ключа, закодированная в base-58 |
| Hash      | Строка SHA-256 хеша, закодированная в base-58     |
| Signature | Подпись Ed25519, закодированная в base-58         |
| Slot      | Целочисленный номер высоты блока/слота            |

## Проверка работоспособности

Вы можете проверить работоспособность узла с помощью GET-запроса:

```bash theme={null}
curl "https://fra.rpc.orbitflare.com/health?api_key=YOUR_LICENSE_KEY"
```

Возможные ответы:

* `ok`: Узел работает исправно и актуален
* `behind { slots: number }`: Узел отстаёт на N слотов
* `error`: Узел неисправен

## Доступные методы

<CardGroup>
  <Card title="Аккаунт и программа" icon="user">
    * getAccountInfo
    * getMultipleAccounts
    * getProgramAccounts
    * getMinimumBalanceForRentExemption
  </Card>

  <Card title="Блоки и слоты" icon="cube">
    * getBlock
    * getBlocks
    * getBlockHeight
    * getSlot
    * getSlotLeader
  </Card>

  <Card title="Транзакции" icon="arrow-right-arrow-left">
    * getTransaction
    * getSignatureStatuses
    * getSignaturesForAddress
    * sendTransaction
    * simulateTransaction
  </Card>

  <Card title="Токены" icon="coins">
    * getTokenAccountBalance
    * getTokenAccountsByDelegate
    * getTokenAccountsByOwner
    * getTokenSupply
  </Card>
</CardGroup>

## Ограничения скорости

Ограничения скорости зависят от тарифного плана. Точные значения RPS и TPS для каждого плана см. на странице [Аутентификация и лимиты](/ru/authentication#rate-limits-by-plan).

## Лучшие практики

1. **Используйте подходящий уровень commitment**
   * Используйте `processed` для обновлений интерфейса
   * Используйте `confirmed` для большинства операций
   * Используйте `finalized` для критических операций

2. **Оптимизируйте запросы**
   * Используйте пакетные запросы там, где это возможно
   * Реализуйте корректное кэширование
   * Выбирайте подходящие интервалы опроса

3. **Обрабатывайте ошибки**
   * Реализуйте надлежащую обработку ошибок
   * Используйте экспоненциальную задержку при повторных попытках
   * Отслеживайте сбои запросов

## Смотрите также

<CardGroup cols={3}>
  <Card title="Аутентификация и лимиты" icon="key" href="/ru/authentication">
    Настройка API-ключа, форматы эндпоинтов, ограничения скорости и подключений.
  </Card>

  <Card title="Коды ошибок" icon="triangle-exclamation" href="/ru/rpc/error-codes">
    HTTP-коды состояния, ошибки JSON-RPC и способы их обработки.
  </Card>

  <Card title="WebSocket API" icon="plug" href="/ru/rpc/websocket">
    Подписки в реальном времени на аккаунты, слоты, логи и многое другое.
  </Card>
</CardGroup>

## Поддержка

По вопросам технической поддержки или вопросам о нашем RPC-сервисе:

* Присоединяйтесь к нашему [сообществу в Discord](https://discord.gg/orbitflare)
* Проверьте нашу [страницу статуса](https://status.orbitflare.com)
* Свяжитесь с нашей командой поддержки
