Skip to main content

Получите API-ключ

Apex находится в бета-версии и доступен только по приглашениям. Когда ваш аккаунт будет активирован, откройте панель управления OrbitFlare и перейдите в раздел Dashboard > Apex, чтобы создать ключ. Каждый ключ относится к тарифу, а тариф задаёт ваш минимум чаевых и лимит запросов.
Обращайтесь с ключом как с паролем. Любой, у кого он есть, может отправлять транзакции в счёт вашего лимита запросов. Потратить ваши средства он не может: транзакции по-прежнему подписываются вашей собственной ключевой парой.

HTTP: заголовок или параметр запроса

По HTTP ключ передаётся с каждым запросом. Передать его можно двумя способами:
Те же два варианта работают на простых HTTP-маршрутах (/send, /send-bin, /send-batch, /send-bundle).
HTTP-маршруты не шифруются, как и у других отправителей Solana: ваш API-ключ и транзакции может прочитать любой, кто находится на сетевом пути. Предпочитайте QUIC, где ключ не покидает вашу машину, или отправляйте по HTTP только из доверенной сети. Если считаете, что ключ был раскрыт, перевыпустите его в панели управления.
getTipAccounts, getVersion, health и GET /ping не требуют ключа. Всё, что отправляет транзакцию, требует. При отсутствующем или недействительном ключе возвращается ошибка JSON-RPC -32001 или HTTP 401 на простых маршрутах. См. Ошибки и лимиты запросов.

QUIC: клиентский сертификат

В QUIC отдельные запросы не аутентифицируются, и ваш API-ключ никогда не передаётся по сети. Вместо этого:
  1. Ваш клиент выводит ключевую пару ed25519 из API-ключа.
  2. Он предъявляет этот публичный ключ в своём клиентском TLS-сертификате во время QUIC-рукопожатия.
  3. Эндпоинт Apex сопоставляет публичный ключ с вашим аккаунтом. С этого момента каждый поток в этом соединении принадлежит вам.
Крейт Rust apex-sender-client делает всё это за вас. Для других языков вывод ключа выглядит так:
Оберните публичный ключ в фиктивный сертификат X.509 Solana, в том же формате, который валидаторы используют для TPU QUIC (new_dummy_x509_certificate в крейте solana-tls-utils). Эндпоинт проверяет только ключ внутри сертификата. Остальные поля сертификата игнорируются. Тестовый вектор: из API-ключа test-api-key выводится публичный ключ ANPhYB8kmb2puLauuJKSX5orMk3rVT87gBWWy94F68hU. Если рукопожатие не удалось, эндпоинт закрывает соединение с кодом ошибки приложения:

Проверьте свой выведенный ключ

Панель управления показывает клиентский публичный ключ рядом с каждым API-ключом. Если ваше QUIC-соединение отклоняется, сравните эти два ключа. С помощью крейта Rust:
Несовпадение означает, что ключ был скопирован неправильно.

Браузеры

Каждый HTTP-ответ содержит Access-Control-Allow-Origin: *, а на предварительные запросы OPTIONS даётся ответ, поэтому вы можете обращаться к эндпоинту Apex из браузерного кода.
API-ключ, встроенный в публичную веб-страницу, виден каждому посетителю. Для публичных фронтендов отправляйте через собственный бэкенд или используйте ключ, который вы готовы заменить.
Эндпоинты Apex обслуживаются по обычному HTTP на порту 80. Страница, которая сама загружена по HTTPS, подпадает под правила браузера о смешанном содержимом, поэтому тестируйте в той среде, в которой планируете выпускать продукт.