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

# OrbitFlare CLI

> Полнофункциональный командный интерфейс OrbitFlare: стриминг, запросы, шаблоны, управление аккаунтом и встроенный TUI-дашборд — всё из терминала.

OrbitFlare CLI — единая точка входа для разработчика: стриминг ончейн-данных по gRPC, запросы к блокчейну, развёртывание проектов из шаблонов и управление аккаунтом через интерактивный дашборд.

<Tip>
  CLI хранит учётные данные в связке ключей ОС и поддерживает несколько профилей аутентификации — можно мгновенно переключаться между аккаунтами или сетями.
</Tip>

## Установка

<Tabs>
  <Tab title="Cargo (рекомендуется)">
    ```bash theme={null}
    cargo install orbitflare
    ```
  </Tab>

  <Tab title="Из исходников">
    ```bash theme={null}
    git clone https://github.com/orbitflare/orbit-cli.git
    cd orbit-cli
    cargo install --path .
    ```
  </Tab>
</Tabs>

Требуется **Rust 1.85+**. Проверка установки:

```bash theme={null}
orbitflare --version
```

## Быстрый старт: у кого уже есть аккаунт

Если у вас уже есть аккаунт OrbitFlare и API-ключ из [дашборда](https://orbitflare.com/dashboard):

```bash theme={null}
# Authenticate with your API key
orbitflare auth login --x-orbit-key YOUR_API_KEY

# Point the CLI to your RPC endpoint (from your dashboard)
orbitflare config set rpc.url ORBITFLARE_RPC_URL

# Verify everything works
orbitflare ping
orbitflare rpc slot
```

<Note>
  После чистой установки конфиг пустой. После входа задайте как минимум `rpc.url`, чтобы команды вроде `ping` и `rpc` знали, куда подключаться. URL эндпоинтов — в разделе **Services** вашего [дашборда](https://orbitflare.com/dashboard).
</Note>

URL эндпоинтов следуют формату:

| Protocol           | Format                                     | Example                               |
| ------------------ | ------------------------------------------ | ------------------------------------- |
| RPC                | `http://{region}.rpc.orbitflare.com`       | `http://ams.rpc.orbitflare.com`       |
| WS                 | `ws://{region}.rpc.orbitflare.com`         | `ws://ams.rpc.orbitflare.com`         |
| gRPC (Yellowstone) | `http://{region}.rpc.orbitflare.com:10000` | `http://ams.rpc.orbitflare.com:10000` |
| Jetstream          | `http://{region}.jetstream.orbitflare.com` | `http://ams.jetstream.orbitflare.com` |

## Быстрый старт: новые пользователи

<Steps>
  <Step title="Создайте аккаунт">
    Зарегистрируйтесь на [orbitflare.com](https://orbitflare.com) и выберите тариф.
  </Step>

  <Step title="Аутентификация">
    CLI поддерживает три способа входа — выберите подходящий:

    ```bash theme={null}
    # API key (from orbitflare.com/dashboard)
    orbitflare auth login --x-orbit-key YOUR_API_KEY

    # Solana wallet keypair
    orbitflare auth login --wallet ~/.config/solana/id.json

    # Device flow (opens browser)
    orbitflare auth login
    ```

    При входе CLI загружает и сохраняет RPC license key автоматически. Задать его вручную:

    ```bash theme={null}
    orbitflare auth set-license-key YOUR_LICENSE_KEY
    ```

    <Warning>
      Храните API-ключ и license key в секрете. Не коммитьте их в репозиторий и не показывайте в клиентском коде.
    </Warning>
  </Step>

  <Step title="Настройте эндпоинты">
    После чистой установки конфиг пустой. Укажите эндпоинты OrbitFlare:

    URL есть в разделе **Services** [дашборда](https://orbitflare.com/dashboard), формат `http://{region}.rpc.orbitflare.com`.

    ```bash theme={null}
    # Set your RPC endpoint
    orbitflare config set rpc.url ORBITFLARE_RPC_URL

    # (Optional) Set streaming endpoints
    orbitflare config set grpc.url ORBITFLARE_GRPC_URL
    orbitflare config set jetstream.url ORBITFLARE_JETSTREAM_URL

    # Verify connectivity
    orbitflare ping
    ```

    Список региональных эндпоинтов — в разделе [Authentication & Limits](/ru/authentication).
  </Step>

  <Step title="Начните разработку">
    ```bash theme={null}
    # Query your SOL balance
    orbitflare rpc balance YOUR_WALLET_ADDRESS

    # Get current slot
    orbitflare rpc slot

    # Scaffold a project
    orbitflare template --list
    orbitflare template --install solana-copy-trader

    # Launch the TUI dashboard
    orbitflare dashboard
    ```
  </Step>
</Steps>

## Аутентификация

Учётные данные хранятся в связке ключей ОС. Поддерживаются именованные профили для разных аккаунтов или окружений.

```bash theme={null}
# Check current auth status
orbitflare auth status

# Switch profile
orbitflare auth switch --profile work

# Log out
orbitflare auth logout
```

### Способы входа

<Tabs>
  <Tab title="API Key">
    Вход по API-ключу из [дашборда](https://orbitflare.com/dashboard). Ключ передаётся в Customer API заголовком `X-ORBIT-KEY`.

    ```bash theme={null}
    orbitflare auth login --x-orbit-key YOUR_API_KEY
    ```
  </Tab>

  <Tab title="Wallet">
    Вход через подпись challenge вашим Solana keypair. Если кошелёк не привязан к аккаунту, CLI проведёт через регистрацию.

    ```bash theme={null}
    orbitflare auth login --wallet ~/.config/solana/id.json
    ```
  </Tab>

  <Tab title="Device Flow">
    Открывает браузер для аутентификации в стиле OAuth. Удобно для интерактивной работы.

    ```bash theme={null}
    orbitflare auth login
    ```

    CLI показывает URL верификации и код, опрашивает завершение и сохраняет session token автоматически.
  </Tab>
</Tabs>

### Порядок разрешения ключей

1. `--x-orbit-key` в командной строке (высший приоритет)
2. `--profile` для выбора сохранённого профиля
3. Профиль по умолчанию в `~/.orbitflare/config.yml`

## Справочник команд

CLI покрывает аутентификацию, конфигурацию, запросы к блокчейну, стриминг в реальном времени, шаблоны и управление аккаунтом.

### Основные команды

| Command                        | Description                                          |
| ------------------------------ | ---------------------------------------------------- |
| `auth login`                   | Authenticate (API key, wallet, or device flow)       |
| `auth logout`                  | Remove stored credentials                            |
| `auth status`                  | Show current authentication status                   |
| `auth switch --profile <NAME>` | Switch to a different auth profile                   |
| `auth set-license-key <KEY>`   | Store RPC license key for current profile            |
| `config show`                  | Display all configuration values                     |
| `config set <KEY> <VALUE>`     | Set a configuration value                            |
| `config remove <KEY> <VALUE>`  | Remove a value from a list config                    |
| `config reset`                 | Reset config to defaults (preserves auth)            |
| `ping`                         | Check connectivity to all configured services        |
| `ping --service <SVC>`         | Ping a specific service (`rpc`, `jetstream`, `grpc`) |
| `docs [TOPIC...]`              | Open documentation in your browser                   |
| `plan list`                    | List available RPC plans                             |
| `plan view <SLUG>`             | View plan details                                    |
| `plan compare --all`           | Compare all plans side by side                       |
| `pay check-balance`            | Check account balance                                |
| `pay topup <AMOUNT>`           | Top up balance with USDC (on-chain)                  |
| `pay history`                  | Top-up / credit history                              |
| `pay purchase <SLUG> <PERIOD>` | Purchase a plan from balance                         |
| `pay order --history`          | List orders                                          |
| `pay order <REF>`              | View order details                                   |
| `pay invoice --list`           | List invoices                                        |
| `pay invoice <REF>`            | View invoice details                                 |
| `pay renew <INVOICE>`          | Pay invoice from balance (renewal)                   |

### Команды RPC

Запросы к блокчейну Solana напрямую из терминала.

```bash theme={null}
orbitflare rpc account <ADDRESS>
orbitflare rpc tokens <WALLET>
orbitflare rpc balance <ADDRESS>
orbitflare rpc tx <SIGNATURE>
orbitflare rpc history <WALLET> --limit 20
orbitflare rpc program-accounts <PROGRAM_ID> --limit 10
orbitflare rpc slot
orbitflare rpc epoch
orbitflare rpc blockhash
orbitflare rpc stats
orbitflare rpc priority-fees --account <ADDRESS>
orbitflare rpc raw '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[]}'
```

### Команды WebSocket

Подписка на live Solana pubsub по WebSocket. Подписка работает до `Ctrl+C`, события печатаются по мере прихода (`--json` — машиночитаемый вывод).

```bash theme={null}
# Live slot updates
orbitflare ws slot

# Account changes for a specific address
orbitflare ws account <ADDRESS>

# Transaction logs mentioning one or more addresses (omit --mentions for all)
orbitflare ws logs --mentions <ADDRESS> --mentions <ANOTHER>

# Confirmation of a single transaction signature
orbitflare ws signature <SIGNATURE>
```

Эндпоинт выводится из `rpc.url`: `http://` → `ws://`, `https://` → `wss://`. Для другого хоста на одну команду используйте `--ws-url`:

```bash theme={null}
orbitflare ws slot --ws-url ws://ams.rpc.orbitflare.com
```

### Команды стриминга

Поток данных Solana в реальном времени по gRPC. Обе команды принимают YAML с фильтрами и политикой переподключения.

<Tabs>
  <Tab title="Jetstream">
    ```bash theme={null}
    orbitflare jet --config stream.yml
    ```

    Jetstream даёт транзакции и аккаунты с ультранизкой задержкой.

    ```yaml stream.yml theme={null}
    transactions:
      pump_trades:
        account_include:
          - "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"

    accounts:
      my_wallet:
        account:
          - "YOUR_WALLET_ADDRESS"

    reconnect:
      initial_delay_ms: 100
      max_delay_ms: 30000
      multiplier: 2.0
      max_retries: 0    # 0 = unlimited
    ```
  </Tab>

  <Tab title="Yellowstone gRPC">
    ```bash theme={null}
    orbitflare grpc --config grpc-stream.yml
    ```

    Yellowstone — полный поток данных плагина Geyser, включая слоты и метаданные блоков.

    ```yaml grpc-stream.yml theme={null}
    transactions:
      jupiter_swaps:
        account_include:
          - "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"
        vote: false
        failed: false

    slots:
      all_slots:
        filter_by_commitment: true

    commitment: confirmed

    reconnect:
      initial_delay_ms: 100
      max_delay_ms: 30000
      multiplier: 2.0
      max_retries: 0
    ```
  </Tab>
</Tabs>

Обе команды стриминга поддерживают автоматический failover эндпоинтов и экспоненциальный backoff при переподключении. В конфигах можно использовать переменные окружения синтаксисом `${VAR}`.

### Команды шаблонов

Развёртывание проектов из готовых стартовых шаблонов.

```bash theme={null}
# List all templates
orbitflare template --list

# Filter by language
orbitflare template --list --filter rust

# View template details
orbitflare template --view solana-copy-trader

# Install a template
orbitflare template --install solana-copy-trader --dir ./my-bot
```

Шаблоны загружаются из репозитория [orbitflare/templates](https://github.com/orbitflare/templates) и кешируются локально для офлайна.

### Команды планов

Просмотр и сравнение доступных RPC-планов. Данные планов кешируются локально на 6 часов.

```bash theme={null}
# List all plans (sorted by price)
orbitflare plan list

# View plan details
orbitflare plan view <SLUG>

# Compare all plans side by side
orbitflare plan compare --all

# Compare specific plans
orbitflare plan compare dev growth
```

### Команды оплаты

Баланс, покупка планов и счета. Только для `topup` нужен кошелёк Solana — остальное списывается с баланса аккаунта.

```bash theme={null}
# Check account balance
orbitflare pay check-balance

# Top up balance with USDC (on-chain)
orbitflare pay topup <AMOUNT> --wallet ~/.config/solana/id.json

# Top-up / credit history
orbitflare pay history

# Purchase a plan from balance
orbitflare pay purchase <SLUG> <PERIOD> --coupon <CODE>

# View orders
orbitflare pay order --history
orbitflare pay order <REFERENCE>

# View invoices
orbitflare pay invoice --list
orbitflare pay invoice <REFERENCE>

# Pay an invoice from balance (renewal)
orbitflare pay renew <INVOICE_REF>
```

По умолчанию для keypair кошелька в `topup` используется `~/.config/solana/id.json`. Другой путь — через `--wallet`. Периоды биллинга: `monthly`, `quarterly`, `semi-annual`, `annual`.

<Note>
  Команда `purchase` сначала выполняет сухой прогон с разбивкой цены и проверкой, хватает ли баланса, прежде чем вы подтверждаете покупку.
</Note>

### Дашборд

Интерактивный TUI для управления аккаунтом OrbitFlare без выхода из терминала.

```bash theme={null}
orbitflare dashboard
```

Полное управление с клавиатуры: профиль, сервисы, API-ключи, счета.

<AccordionGroup>
  <Accordion title="Навигация: горячие клавиши">
    | Key         | Action                   |
    | ----------- | ------------------------ |
    | `q`         | Quit                     |
    | `Esc`       | Back                     |
    | `Tab`       | Switch tab / focus       |
    | `↑↓` / `jk` | Navigate                 |
    | `Enter`     | Select / expand / toggle |
    | `t` / `T`   | Cycle theme              |
    | `[`         | Toggle sidebar           |
    | `R`         | Refresh data             |
  </Accordion>

  <Accordion title="Сервисы: горячие клавиши">
    | Key | Tab           | Action                          |
    | --- | ------------- | ------------------------------- |
    | `m` | Details       | Toggle auth mode (IP / API Key) |
    | `w` | Details       | Toggle auto-renewal             |
    | `r` | Details       | Regenerate license key          |
    | `n` | IPs / Domains | Switch Mainnet / Devnet         |
    | `a` | IPs / Domains | Add IP or domain                |
    | `d` | IPs / Domains | Remove IP or domain             |
  </Accordion>

  <Accordion title="API-ключи: горячие клавиши">
    | Key | Action                    |
    | --- | ------------------------- |
    | `c` | Create new API key        |
    | `e` | Toggle enabled / disabled |
    | `r` | Regenerate key            |
    | `x` | Delete key                |
    | `a` | Add IP (when expanded)    |
    | `d` | Remove IP (when expanded) |
  </Accordion>

  <Accordion title="Счета и профиль: горячие клавиши">
    | Key | Section  | Action                       |
    | --- | -------- | ---------------------------- |
    | `p` | Invoices | Pay with account balance     |
    | `e` | Profile  | Edit name and payment wallet |
  </Accordion>
</AccordionGroup>

## Вывод JSON

У всех команд есть `--json` для машиночитаемого вывода — удобно подключать CLI к скриптам и пайплайнам.

```bash theme={null}
orbitflare rpc slot --json
orbitflare rpc balance Gh9ZwEm... --json
orbitflare auth status --json
```

Пример:

```json theme={null}
{
  "confirmed": 312849571,
  "finalized": 312849539
}
```

## Конфигурация

Конфиг хранится в `~/.orbitflare/config.yml`. Управление через команду `config`:

```bash theme={null}
# View current config
orbitflare config show

# Set network
orbitflare config set network devnet

# Set RPC endpoint
orbitflare config set rpc.url http://ams.rpc.orbitflare.com

# Set gRPC and Jetstream endpoints
orbitflare config set grpc.url http://ams.rpc.orbitflare.com:10000
orbitflare config set jetstream.url http://ams.jetstream.orbitflare.com

# Set commitment level
orbitflare config set commitment finalized

# Change TUI theme
orbitflare config set theme dracula

# Set template repository
orbitflare config set templates.repo https://github.com/your-org/templates

# Reset to defaults
orbitflare config reset
```

Эндпоинты Devnet преднастроены по умолчанию:

* **RPC:** `http://devnet.rpc.orbitflare.com` (fallback: `https://api.devnet.solana.com`)
* **gRPC:** `http://devnet.rpc.orbitflare.com:10000`

Переключение на лету: `--network devnet`.

### Расположение файлов

```bash theme={null}
~/.orbitflare/
├── config.yml                  # Main configuration
├── templates_cache.json        # Template registry cache
└── cache/
    └── rpc-plans.json          # Plans cache (6-hour TTL)
```

API-ключи, токены и license keys хранятся в **связке ключей ОС**, не на диске в открытом виде для этого сценария.

## Глобальные флаги

Работают с любой командой и переопределяют значение конфига на один вызов.

| Flag                   | Description                                                   |
| ---------------------- | ------------------------------------------------------------- |
| `--json`               | Output raw JSON                                               |
| `--raw`                | Minimal output, no formatting                                 |
| `--network <NET>`      | Override network (`mainnet` / `devnet` / `testnet`)           |
| `--commitment <C>`     | Override commitment (`processed` / `confirmed` / `finalized`) |
| `--rpc-url <URL>`      | Override RPC endpoint                                         |
| `--grpc-url <URL>`     | Override gRPC endpoint                                        |
| `--ws-url <URL>`       | Override WebSocket endpoint (default: derived from RPC URL)   |
| `--fallback-url <URL>` | Fallback URLs (repeatable)                                    |
| `--profile <NAME>`     | Use a specific auth profile                                   |
| `--quiet`              | Suppress non-essential output                                 |
| `--no-color`           | Disable colored output                                        |

## Полный пример сценария

От установки до запросов:

```bash theme={null}
# 1. Install the CLI
cargo install orbitflare

# 2. Authenticate
orbitflare auth login --x-orbit-key YOUR_API_KEY

# 3. Configure endpoints (from your dashboard)
orbitflare config set rpc.url ORBITFLARE_RPC_URL
orbitflare config set grpc.url ORBITFLARE_GRPC_URL

# 4. Verify connectivity
orbitflare ping

# 5. Query the blockchain
orbitflare rpc slot
orbitflare rpc balance YOUR_WALLET_ADDRESS

# 6. Scaffold a project
orbitflare template --install solana-copy-trader --dir ./my-bot

# 7. Stream real-time data
orbitflare jet --config stream.yml
```

## Что дальше?

<CardGroup cols={2}>
  <Card title="Методы RPC" icon="server" href="/ru/rpc/http">
    Полный справочник методов Solana RPC.
  </Card>

  <Card title="Стриминг Jetstream" icon="bolt" href="/ru/data-streaming/jetstream">
    gRPC-стриминг данных в реальном времени.
  </Card>

  <Card title="Yellowstone gRPC" icon="satellite-dish" href="/ru/data-streaming/yellowstone">
    Полный поток Geyser через Yellowstone.
  </Card>

  <Card title="Стартовые шаблоны" icon="rectangle-terminal" href="https://github.com/orbitflare/templates">
    Готовые production-шаблоны проектов.
  </Card>
</CardGroup>

## Поддержка

<CardGroup cols={2}>
  <Card title="Discord" icon="discord" href="https://discord.gg/orbitflare">
    Сообщество: вопросы и обсуждения.
  </Card>

  <Card title="GitHub" icon="github" href="https://github.com/orbitflare/orbit-cli">
    Сообщения об ошибках и контрибуция в CLI.
  </Card>
</CardGroup>
