Skip to main content

Доступ

Apex находится в бета-версии и доступен только по приглашениям. Когда ваш аккаунт будет активирован, создайте API-ключи в панели управления OrbitFlare в разделе Dashboard > Apex. Чтобы запросить приглашение, свяжитесь с командой в Discord.
Нет. Эндпоинт Apex принимает отправку: sendTransaction, sendBundle и простые HTTP-маршруты отправки, а также getTipAccounts, getInflightBundleStatuses, getVersion и health. Для blockhash, чтения аккаунтов, симуляции и подтверждения продолжайте использовать свой обычный OrbitFlare RPC.
Apex обслуживает mainnet Solana.
Тот, у которого наименьшее время обмена от вашего отправителя. Измеряйте с помощью GET /ping. Каждый эндпоинт Apex сам направляет транзакции к следующим лидерам, поэтому ваш выбор влияет только на ваш собственный участок пути. См. Эндпоинты и регионы.

Чаевые и стоимость

Вы платите чаевые внутри каждой транзакции и только тогда, когда эта транзакция попала в блок. Минимум стандартного тарифа составляет 0.001 SOL (1,000,000 lamports). Отклонённая, просроченная или отброшенная транзакция ничего не стоит.
Нет. Одни чаевые Apex покрывают все три пути. Когда побеждает путь Jito, Apex ставит в Jito ваши чаевые за вычетом базовой комиссии 5,000 lamports в том же бандле, что и ваша транзакция.
Да. Apex доставляет вашу транзакцию лидеру, а лидер по-прежнему упорядочивает транзакции по приоритетной комиссии. Задавайте лимит и цену вычислительных единиц в каждой транзакции. См. Чаевые.
Чаевые должны быть переводом SystemProgram верхнего уровня на один из аккаунтов из getTipAccounts. Перевод, сделанный вашей программой через CPI, не считается, как и перевод на любой другой адрес. Также проверьте, что аккаунт для чаевых находится в статических ключах аккаунтов, а не загружен через address lookup table, и что плательщик чаевых подписывает транзакцию. См. ошибки чаевых.
Получайте их через getTipAccounts при запуске и время от времени обновляйте, а не зашивайте в код. Выбирайте один случайным образом для каждой транзакции.
Транзакция, которая завершилась ошибкой при исполнении, откатывается целиком, включая перевод чаевых. Вы платите только сетевую комиссию.

Отправка

Начните с JSON-RPC sendTransaction, поскольку он встраивается в существующий код. Переходите на POST /send-bin ради меньших накладных расходов по HTTP или на QUIC с клиентом на Rust ради самого быстрого пути. Маршрутизация и приоритет одинаковы на всех транспортах. См. Отправка транзакций.
Не обязательно. Подпись означает, что эндпоинт Apex принял транзакцию и отправляет её наперегонки. Подтвердите через getSignatureStatuses на Solana RPC. См. Подтверждайте каждую отправку.
Нет. Никто между вами и лидером не выполняет симуляцию и preflight-проверки. Если вам нужна симуляция, сначала вызовите simulateTransaction на своём обычном RPC.
Пока транзакция не попадёт в блок или пока не истечёт её blockhash. После этого соберите её заново со свежим blockhash и отправьте новую транзакцию.
Да. Сеть исполняет конкретную подпись один раз, поэтому отправлять одну и ту же подписанную транзакцию наперегонки через несколько сервисов безопасно. Ваши чаевые Apex выплачиваются, только если транзакция попала в блок, какой бы сервис её ни доставил.
CORS включён в каждом HTTP-ответе, поэтому браузерный код может вызывать маршруты напрямую. Помните, что ключ, переданный на публичную страницу, виден посетителям, и что эндпоинты Apex обслуживаются по обычному HTTP, поэтому страница, загруженная по HTTPS, подпадает под правила о смешанном содержимом. См. Аутентификация.
По HTTP да, в виде заголовка x-api-key или параметра запроса api-key. По QUIC нет: клиент предъявляет сертификат, производный от ключа, а сам ключ никогда не покидает вашу машину. В любом случае ключ не может тратить средства, потому что каждая транзакция подписывается вашей собственной ключевой парой.

Бандлы и транзакции v1

Только когда вам нужно, чтобы несколько транзакций исполнились по порядку и по принципу «всё или ничего». Бандлы идут только по пути block engine Jito, поэтому они попадают в блок только у лидеров с поддержкой Jito. Одиночная транзакция попадает в блок быстрее при обычной отправке, которая использует все три пути. См. Бандлы.
Ровно одна транзакция в бандле содержит чаевые Apex не ниже минимума вашего тарифа.
Да, в виде транзакции v1 (SIMD-0385), до 4096 байт через sendTransaction, /send, /send-bin, /send-batch и QUIC. Для транзакций legacy и v0 остаётся предел 1232 байта, как и для участников бандла.

Ограничения и поддержка

Лимиты запросов действуют на каждый API-ключ и задаются тарифом ключа. При превышении лимита возвращается JSON-RPC -32029, HTTP 429 или код допуска QUIC 2. См. Ошибки и лимиты запросов.
Официальным клиентом является крейт Rust apex-sender-client. Любой другой язык может использовать JSON-RPC и простые HTTP-маршруты вообще без библиотеки, а протокол QUIC задокументирован для всех, кто хочет его реализовать. См. QUIC из других языков.
Свяжитесь с командой в Discord, Telegram или по электронной почте support@orbitflare.com.