Документация API Velocity
TypeScript/Rust SDK, Data API, SWIFT-ордера и keeper-инфраструктура
Velocity унаследовал от Drift v2 зрелую инфраструктуру для алгоритмической торговли и пересобрал её под новое имя. Для разработчиков доступны TypeScript SDK, клиент на Rust, Data API с интерактивной песочницей, SWIFT-ордера с офчейн-подписью и полный набор инструментов для keeper-ботов. Весь код открыт в монорепозитории velocity-v1.
Безопасность API: главный приоритет
Ключи торгового API в модели Velocity — это ключи вашего Solana-кошелька: протокол некастодиален, и никакой сервер не хранит доступ к средствам. Практические правила: держать основную сумму на холодном кошельке, для ботов использовать отдельный кошелёк с минимальным балансом и делегированные субаккаунты, проверять домен перед подписью сообщений SWIFT и никогда не переиспользовать адреса, выведенные от остановленной программы Drift.
TypeScript SDK: @velocity-exchange/sdk
Пакет @velocity-exchange/sdk (версия 0.13.x) — переименованная ветка Drift SDK без обратной совместимости. Ключевые замены: DriftClient → VelocityClient, DRIFT_PROGRAM_ID → VELOCITY_PROGRAM_ID, DriftEnv → VelocityEnv, IDL-файл drift.json → velocity.json. Под капотом обновлён Anchor: @anchor-lang/[email protected] вместо @coral-xyz/[email protected].
Две ловушки миграции, которые не ловит компилятор: quote-минт на mainnet — USDT (читать из getConfig().QUOTE_MINT_ADDRESS, не хардкодить USDC), а дискриминанты MarketStatus сдвинулись — кастомные парсеры сырых байтов молча неверно классифицируют состояние рынков, если их не пересобрать.
Rust-клиент velocity-rs
Для системных интеграций и высокопроизводительных ботов в монорепе доступен клиент velocity-rs (source-only). Именно Rust-библиотека DLOB используется fillers и keeper-ботами; важное поведенческое изменение: resting trigger-ордер котируется по вычисленной post-trigger аукционной цене, а не по сырой триггерной — потребителям книги ордеров следует перестать считать эти значения равными.
Data API и песочница
Хост data.velocity.exchange отдаёт исторические и потоковые данные: сделки, фандинг, свечи, состояния рынков. В документации есть интерактивная Playground-песочница и глоссарий колонок. Таблицы времён Drift очищены от легаси-колонок (внешнее спот-исполнение, LP-доли vAMM) — полный список различий приведён в гайде миграции.
SWIFT: ордера с офчейн-подписью
SWIFT-путь — основной для маркет-мейкеров: ордер подписывается как сообщение, не расходуя газ и не попадая в очередь транзакций, а сеть исполнителей сопоставляет подписанные заявки с ончейн-расчётом. Для интеграций описан отдельный SWIFT API с индикативными котировками и паттернами ботов.
Keeper-боты: четыре роли
Децентрализованная книга ордеров живёт благодаря независимым ботам. Документация содержит пошаговые туториалы по каждой роли: order matching bot (сведение тейкеров с лимитными заявками), order trigger bot (исполнение триггерных ордеров против vAMM), liquidation bot (ликвидации с приоритетом старейших позиций) и JIT maker bot (участие в коротких аукционах исполнения). Вознаграждение fillers — меньшее из двух значений: 10% комиссии либо временная компонента, растущая со временем ожидания ордера.
Техническая тонкость для MM-кранов: запись нативного MM-оракула молча пропускается при интервале меньше 800 миллисекунд или нестрого возрастающем sequence id, а шаг цены свыше 1% клэмпится, а не отбрасывается — боты с агрессивной частотой обновлений получают тихие пропуски без ошибок.
Миграция с Drift: официальный гайд
Команда опубликовала два документа: человекочитаемый Migrate from Drift и AI Agent Guide — пошаговую процедуру, которую может исполнить кодинг-агент. Канонический справочник по раскладке аккаунтов и ABI — файл DRIFT-TO-VELOCITY.md в монорепе. Типовые пункты чек-листа: замена символов SDK, USDT-минт вместо USDC, пересборка сырых декодеров под новые дискриминанты, проверка батчей ордеров против начальной (не поддерживающей) маржи.
Общие основы подписания запросов и выбора транспорта разобраны в наших материалах: HMAC-SHA256 аутентификация и REST против WebSocket. Практические туториалы по keeper-ботам Velocity появятся в разделе extras этого обзора.
Часто задаваемые вопросы (FAQ) по Velocity API
Чем SDK Velocity отличается от @drift-labs/sdk?
Пакет @velocity-exchange/sdk — переименованная и переработанная ветка Drift SDK v2.163.0-beta.0 без обратной совместимости: класс DriftClient стал VelocityClient, DRIFT_PROGRAM_ID стал VELOCITY_PROGRAM_ID, а поле USDC_MINT_ADDRESS — QUOTE_MINT_ADDRESS. Импорты старых имён дают ошибки сборки, поэтому миграция сводится к систематической замене символов по официальному гайду Migrate from Drift.
Какой актив указывать в качестве quote-валюты при интеграции?
На mainnet-beta это USDT (минт Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB), на devnet — placeholder dUSDT. Самая дорогая ошибка интегратора — захардкодить USDC из привычек Drift: депозиты, выводы, деривация ATA и расчёты ссылаются на USDT-минт. Значение следует читать из конфигуратора getConfig().QUOTE_MINT_ADDRESS, а не задавать константой.
Что такое SWIFT-ордера в Velocity?
SWIFT — путь исполнения с офчейн-подписью: трейдер подписывает сообщение с параметрами ордера, не отправляя транзакцию в блокчейн, а специализированные исполнители сопоставляют подписанные ордера с высокой скоростью. Это основной инструмент для маркет-мейкеров и высокочастотных стратегий; ончейн-расчёты остаются неизменными.