Arbitrum API: платежи ERC-20 на Layer 2 Ethereum
Отправляйте ERC-20-токены в Arbitrum одним REST-вызовом. Безопасность уровня Ethereum по цене Layer-2, со встроенными вебхуками депозитов.
Arbitrum API от Chaingateway отправляет ERC-20-токены в Arbitrum — сети, которая исполняет транзакции Ethereum на роллапе: исполнение происходит на Layer 2, данные транзакции расчитываются в Ethereum, а бюджет безопасности остаётся ethereum-овским. Для платежей практический эффект — знакомая среда, те же адреса 0x и тот же стандарт токенов ERC-20, при небольшой доле комиссий mainnet за gas. Переводы, не имеющие экономического смысла в L1, здесь работают нормально.
Это важно для платёжных систем особым образом. Депозитные кошельки нужно сметать в горячий кошелёк, возвраты уходят небольшими суммами, а пакеты выплат состоят из множества отдельных переводов. В mainnet каждая из этих операций несёт комиссию, которая может превысить перемещаемую сумму. В Arbitrum те же операции остаются достаточно дешёвыми, чтобы выполнять их так часто, как того требует ваш учёт, а не так редко, как позволяет тарифная сетка комиссий.
API покрывает сеть примерно тридцатью эндпоинтами — адреса, балансы, блоки, цена gas, декодированные транзакции, NFT, вебхуки. Три из них несут платёжный поток: импорт адреса, отправка ERC-20-токена, чтение уведомлений вебхука. Аутентификация — Bearer-токен в заголовке Authorization к https://app.chaingateway.io; заголовок X-Network: testnet переключает любой вызов на тестовую сеть. Пробные аккаунты действуют 7 дней без KYC.
Как работает Arbitrum: роллап вкратце
Arbitrum — это оптимистичный роллап. Транзакции исполняются на собственной инфраструктуре Arbitrum, а сеть публикует сжатые данные транзакций в Ethereum, где любой может восстановить состояние L2 из того, что находится в сети. «Оптимистичный» описывает модель безопасности: обновления состояния считаются действительными в момент публикации, а затем следует окно оспаривания, в течение которого любой наблюдатель может отправить доказательство мошенничества против неверного обновления. Ethereum выступает арбитром в споре. Поскольку исходные данные лежат в Ethereum, обман невозможно скрыть, и L2 наследует безопасность L1 вместо того, чтобы выстраивать собственный набор валидаторов с нуля.
Эта конструкция также объясняет структуру комиссий. Комиссия Arbitrum оплачивает две вещи: исполнение на L2, которое дёшево, и долю транзакции в публикации пакетных данных в Ethereum. С марта 2024 года эти данные попадают в пространство blob, введённое EIP-4844, что снизило стоимость публикации примерно на 90% и удерживало типичные комиссии Arbitrum на уровне центов или ниже на протяжении 2025 и 2026 годов. Сотни переводов делят один пакет, поэтому каждый несёт лишь малую долю стоимости L1, а не полную комиссию транзакции L1.
Arbitrum One против Arbitrum Nova
Существуют две публичные сети Arbitrum, и их названия часто путают. Arbitrum One — это только что описанный роллап: все данные транзакций попадают в Ethereum, а допущения доверия сводятся к допущениям самого Ethereum. Arbitrum Nova вместо этого работает по протоколу AnyTrust. Её данные транзакций хранятся вне сети Комитетом доступности данных (Data Availability Committee), и система остаётся надёжной, пока хотя бы два члена комитета действуют честно; если комитет не сможет предоставить данные, сеть переходит в режим полного роллапа. Хранение данных вне Ethereum снова делает Nova дешевле, ценой этого дополнительного допущения доверия.
На практике разделение чёткое. Nova принимает игровые и социальные приложения, нагрузки с очень большим числом транзакций и низкой стоимостью каждой, где компромисс с комитетом приемлем. Arbitrum One держит DeFi-протоколы, ликвидность стейблкоинов и поддержку бирж. Когда платёжная интеграция, страница вывода средств биржи или эта статья говорят «Arbitrum» без уточнения, имеется в виду Arbitrum One. Это сеть, где на самом деле лежат USDC и USDT ваших пользователей.
Эндпоинты Arbitrum
| Эндпоинт | Что он делает |
|---|---|
POST /api/v2/arbitrum/addresses | Создать новый депозитный адрес |
POST /api/v2/arbitrum/addresses/import | Импортировать приватный ключ для существующего адреса |
POST /api/v2/arbitrum/transactions/erc20 | Отправить ERC-20-токен |
POST /api/v2/arbitrum/webhooks | Создать вебхук депозита для адреса |
GET /api/v2/arbitrum/webhooks/notifications | Получить список уведомлений вебхука для вашего аккаунта |
Этот набор покрывает депозиты и выплаты. Переводы нативного ETH, запросы баланса и блока, цена gas, декодированные транзакции и эндпоинты повторной отправки неудачных уведомлений заполняют остальную часть поверхности в документации, а данные уровня аккаунта приходят из GET /api/account. Если вы уже используете Chaingateway в Ethereum или другой сети EVM, вызовы Arbitrum покажутся знакомыми, поскольку они следуют той же схеме.
Отправка ERC-20-токена в Arbitrum
Вызов перевода принимает контракт токена, отправителя, получателя и сумму, плюс пароль, который вы задали при импорте ключа отправителя. Оценка gas, управление nonce и трансляция происходят на стороне API.
curl -X POST https://app.chaingateway.io/api/v2/arbitrum/transactions/erc20 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contractaddress": "0xYourTokenContract",
"from": "0xYourHotWallet",
"to": "0xRecipient",
"amount": 100,
"password": "YourWalletPassword"
}'Это полный запрос — создайте аккаунт и сначала попробуйте его в Arbitrum Sepolia.
Что стоят переводы рядом с Ethereum L1
Перевод ERC-20 в mainnet Ethereum обходился от одного до двадцати долларов на протяжении 2026 года в зависимости от загруженности. Тот же перевод в Arbitrum стоит примерно от двух до двадцати центов — примерно на два порядка меньше, поскольку большая часть комиссии покрывает дешёвое исполнение Layer 2 вместо gas Ethereum.
Обе сети ценообразуют динамически, поэтому абсолютные цифры движутся вместе с ценой ETH и загрузкой сети, но аукцион gas в mainnet заставляет комиссию резко расти именно тогда, когда активность на пике, — худшая возможная корреляция для платёжного бизнеса. Соотношение примерно в два порядка — это стабильная часть.
Для платёжного бэкенда соотношение важнее любого из абсолютных чисел, потому что платёжные операции умножают комиссии. Один депозит клиента — это один входящий перевод, одна выборка в горячий кошелёк и в конечном итоге одна исходящая выплата: три события комиссии на один платёж. По ценам mainnet команды реагируют пакетированием выборок и отсрочкой выплат, а отложенные средства проявляются как оборотный капитал, застрявший в разрозненных депозитных кошельках. По ценам Arbitrum вы делаете выборку по расписанию и выплачиваете по запросу, и строка комиссий растворяется в бухгалтерском шуме.
Небольшие платежи тоже возвращаются в игру. Перевод на десять долларов в L1 может потерять двузначный процент на gas в плохой день, поэтому никто не назначает цену в десять долларов в mainnet. В Arbitrum тот же перевод теряет доли процента. Биллинг по транзакциям, дозированное использование и небольшие возвраты переходят из категории экономически абсурдных в незаметные.
Почему ваш код Ethereum работает без изменений
Arbitrum полностью совместим с EVM, и для платежей эта фраза имеет точный смысл: тот же формат адреса 0x с той же контрольной суммой EIP-55, тот же интерфейс контракта ERC-20, та же схема подписи. Контракт токена, развёрнутый в Arbitrum, предоставляет ту же функцию transfer, что и его аналог в mainnet. Ничего в стандарте токенов не было изобретено заново для L2, поэтому кошельки, обозреватели и библиотеки, созданные для Ethereum, работают с Arbitrum, если поменять конечную точку RPC, и ничего больше.
Через API это сворачивается в сегмент пути. POST /api/v2/ethereum/transactions/erc20 и POST /api/v2/arbitrum/transactions/erc20 принимают идентичный payload: адрес контракта, from, to, amount. Ваша логика валидации, обработчик вебхука и схема базы данных переносятся как есть, потому что адреса и хэши транзакций имеют одинаковую форму в обеих сетях. Практический итог — одно преимущество, сформулированное прямо: тот же вызов API, другая сеть. Команды, уже работающие с Ethereum через Chaingateway, обычно добавляют Arbitrum за один вечер, превращая сеть в столбец конфигурационной таблицы вместо ветки в коде.
Одна вещь не переносится: балансы. Об этом — следующий раздел.
Активы сначала должны оказаться в Arbitrum
Баланс ERC-20 — это запись внутри контракта в одной конкретной сети. USDT в Ethereum и USDT в Arbitrum — это две разные записи контракта, и владение одной не даёт вам ничего от другой. Прежде чем ваш горячий кошелёк сможет отправлять токены в Arbitrum, эти токены должны существовать в Arbitrum. API не может перенести их через сети магическим образом; API никого не может.
Есть два обычных пути их туда доставить. Мост Arbitrum блокирует токены в Ethereum и минтит их представление на L2. Тот же механизм работает в обратную сторону для выводов обратно в L1, и это направление включает окно оспаривания, поэтому возврат стоимости в Ethereum через канонический мост занимает около недели, если только вы не платите стороннему быстрому мосту за предоставление ликвидности авансом. Более простой путь для большинства операторов: вывести средства с биржи, поддерживающей вывод в Arbitrum, что помещает токены на L2 за один шаг и полностью обходит механику моста.
Заложите бюджет и на gas. Комиссии в Arbitrum оплачиваются в ETH, поэтому горячему кошельку нужен небольшой баланс ETH на L2 наряду с его токенами. Суммы крошечные — центы за перевод, — но кошелёк с токенами и нулём ETH вообще не может двигаться, и этот сценарий сбоя заслуживает оповещения мониторинга раньше, чем разбора инцидента.
Вебхуки депозитов в сети с субсекундными блоками
Arbitrum производит блоки значительно быстрее секунды, поэтому депозит виден почти сразу после того, как пользователь его отправляет. Chaingateway пересылает это событие вашему бэкенду вместо того, чтобы заставлять вас опрашивать сеть. Задайте личный секрет в своём аккаунте, и каждая доставка вебхука будет нести заголовок X-Signature — base64-кодированный HMAC-SHA256 от поля txid payload, — чтобы вы могли убедиться, что она пришла от Chaingateway. Доставки, завершившиеся неудачей, хранятся в списке неудачных уведомлений и могут быть повторно отправлены через POST /api/v2/arbitrum/webhooks/notifications/{id}/retry.
GET /api/v2/arbitrum/webhooks/notifications возвращает историю доставок, что удобно для аудита или для повторного воспроизведения событий после простоя на вашей стороне. Руководство по вебхукам описывает настройку и проверку подписи.
Пошагово: приём депозитов в Arbitrum
Конкретный поток депозита, от начала до конца. Каждый клиент получает собственный депозитный адрес, что делает входящие платежи атрибутируемыми без полей-меток, которые пользователи забывают заполнять. Вы отслеживаете эти адреса через вебхуки, а отслеживание не требует ключей.
От депозита до зачисления
Клиент отправляет 200 USDC со своего биржевого аккаунта и выбирает Arbitrum в качестве сети вывода. Блоки приходят значительно быстрее секунды, поэтому перевод оказывается в сети почти мгновенно, и Chaingateway отправляет POST-событие на вашу конечную точку. Ваш обработчик проверяет HMAC-подпись, сверяет контракт токена со списком разрешённых и записывает депозит как ожидающий. Как только депозит удовлетворяет вашей собственной политике подтверждений, запись переключается на зачисленный. В такой быстрой сети клиент воспринимает всю последовательность как мгновенную, что чего-то стоит на кассе: разница между появлением «платёж получен» до или после того, как пользователь начинает сомневаться, сработало ли всё.
Выборка и выплаты
Далее — рутина, которую комиссии L1 раньше делали болезненной. По расписанию, или всякий раз, когда баланс пересекает порог, вы сметаете депозиты в горячий кошелёк через POST /api/v2/arbitrum/transactions/erc20, с депозитного адреса на горячий кошелёк. При стоимости в центы за выборку это можно делать ежечасно, а не еженедельно, удерживая средства сконцентрированными там, где их достанет процесс выплат, вместо того чтобы они были размазаны по сотням адресов. Выплаты — тот же вызов в обратную сторону, с горячего кошелька на адрес клиента. Ничто в этом потоке не специфично для Arbitrum, кроме сегмента пути и уровня комиссий, а уровень комиссий как раз и делает почасовое расписание доступным по цене.
Почему стоит строить платежи в Arbitrum
Полная совместимость с EVM означает, что знания Ethereum переносятся один к одному: контрольные суммы адресов, контракты токенов и подпись ведут себя точно так же, как в mainnet. Комиссии — доля от Ethereum L1, что превращает мелкие переводы из убытка в округление. Безопасность выводится из самого Ethereum, потому что данные транзакций публикуются в L1, и неверное состояние можно там оспорить. А экосистема — не ставка на будущее: крупные DeFi-протоколы уже работают в Arbitrum в продакшене сегодня, поэтому ликвидность, обозреватели и поддержка кошельков уже существуют.
Любой токен в Arbitrum, включая ваш собственный
Chaingateway поддерживает стандартные токены в Arbitrum — устоявшиеся стейблкоины, а также перенесённые через мост активы и собственные запуски. Интеграция одинакова для всех поддерживаемых сетей: постройте один раз, затем направьте тот же код на /api/v2/ethereum/, /api/v2/polygon/ или /api/v2/bsc/ при расширении. Обзор blockchain API перечисляет все семь сетей.
Построено для любого платёжного паттерна
Сценарии использования совпадают с другими сетями EVM: кассы, принимающие стейблкоины с расчётом за секунды, мониторинг депозитов для торговых платформ, обработка выплат из горячего кошелька, airdrop и выплаты по вестингу, регулярный биллинг для SaaS, трансграничные переводы. Там, где Arbitrum выделяется, — это случаи, которые цены mainnet делают неоправданными: микроплатежи, частые выборки и депозитные адреса для каждого пользователя, каждый из которых периодически требует обслуживающих транзакций.
Большинство команд не строят поддержку Arbitrum с нуля. Они добавляют её как вторую сеть к существующей интеграции с Chaingateway, повторно используют путь кода и переключают сети по запросу.
Testnet: тот же API против Arbitrum Sepolia
Добавьте X-Network: testnet к любому запросу, и он выполнится против тестовой сети; публичный testnet Arbitrum — это Arbitrum Sepolia, а тестовый ETH бесплатно раздают краны. Пути, payload и формы ответов не меняются, поэтому код, который вы репетируете, байт в байт совпадает с кодом, который вы поставляете.
Прогоните полный цикл депозита хотя бы раз до mainnet: входящий перевод, доставка вебхука, проверка подписи, выборка. Ошибки, которые стоит поймать, — обработчик, вычисляющий HMAC по неверному полю payload, или конечная точка, которую балансировщик нагрузки обрывает по таймауту, — ведут себя одинаково в testnet и продакшене. Разница только в том, во что они вам обойдутся. Переход в продакшен — это удаление заголовка.
Когда запросы завершаются неудачей
Ошибки клиента и ошибки сервера требуют противоположной обработки. 4xx означает, что сам запрос неверен — истёкший токен, некорректный адрес, сумма, которую кошелёк не может покрыть, — и повтор идентичного запроса повторяет отказ; логируйте его и исправляйте входные данные. 5xx или сетевой таймаут не несут никакого вердикта по вашим входным данным, поэтому повторяйте с экспоненциальной задержкой и ограничением.
Случай, для которого стоит спроектировать код, — это неоднозначный таймаут при отправке. Ваш HTTP-клиент сдался, но перевод, возможно, всё же ушёл, и слепая повторная отправка — вот как случаются дублирующиеся выплаты. Перед любым повтором перевода проверьте, что действительно ушло: GET /api/v2/arbitrum/transactions перечисляет переводы, созданные через API, и повторяйте отправку только тогда, когда первая попытка доказуемо не удалась. Встройте эту проверку в рабочий процесс выплат с первого дня. Это стоит одного дополнительного GET на каждый повтор и экономит гораздо более дорогой разговор, в котором вы просите клиента вернуть дублирующийся платёж.
Три шага до продакшена
Получите API-ключ. Зарегистрируйтесь, и ключ будет доступен немедленно; 7-дневный пробный период не требует KYC.
Выполните первый запрос. Быстрый старт проведёт вас через первый адрес и первый перевод.
Настройте вебхуки и запустите продакшен. Подпишите свой бэкенд на события депозита, как показано в руководстве по вебхукам, затем уберите заголовок X-Network: testnet. Тарифы и лимиты — на странице тарифов.
Что работает в какой сети
Arbitrum наследует схему запросов ERC-20 от Ethereum и, через роллап, безопасность Ethereum. Таблица ниже размещает её рядом с другими шестью сетями, которые покрывает API.
| Сеть | Адреса | Переводы токенов | Вебхуки депозитов |
|---|---|---|---|
| Bitcoin | POST /api/v2/bitcoin/wallets/{wallet}/addresses | — (нет стандарта токенов) | GET /api/v2/bitcoin/webhooks/notifications |
| Ethereum | POST /api/v2/ethereum/addresses/import | ERC-20: POST /api/v2/ethereum/transactions/erc20 | GET /api/v2/ethereum/webhooks/notifications |
| TRON | POST /api/v2/tron/addresses/import | TRC-20 и TRC-10: POST /api/v2/tron/transactions/trc20 и .../trc10 | GET /api/v2/tron/webhooks/notifications |
| Solana | POST /api/v2/solana/addresses | SPL: POST /api/v2/solana/transactions/SPL | — |
| BNB Smart Chain | POST /api/v2/bsc/addresses/import | BEP-20: POST /api/v2/bsc/transactions/bep20 | GET /api/v2/bsc/webhooks/notifications |
| Polygon | POST /api/v2/polygon/addresses/import | ERC-20: POST /api/v2/polygon/transactions/erc20 | GET /api/v2/polygon/webhooks/notifications |
| Arbitrum | POST /api/v2/arbitrum/addresses/import | ERC-20: POST /api/v2/arbitrum/transactions/erc20 | GET /api/v2/arbitrum/webhooks/notifications |
Две сноски для правильного прочтения таблицы. Во-первых: TRON — самая глубокая интеграция на платформе. Помимо перечисленных выше маршрутов, в справочнике описаны стейкинг (POST /api/v2/tron/freeze и /delegate), параметры сети и пара для самостоятельного подписания — /transactions/trc20/build для построения транзакции и /transactions/broadcast для отправки транзакции, подписанной локально. Если ваша служба комплаенса настаивает, что приватные ключи никогда не покидают ваши серверы, этот паттерн build-and-broadcast — ваш путь.
Во-вторых: прочерк означает, что текущий справочник не документирует маршрут v2 для этой ячейки, а не то, что сеть второсортна. У Bitcoin нет стандарта токенов, поэтому ячейка токенов пуста — нативный BTC работает через собственную модель кошелька: создайте зашифрованный паролем кошелёк через POST /api/v2/bitcoin/wallets, деривируйте депозитные адреса под ним и отправляйте через POST /api/v2/bitcoin/transactions. Справочник Solana охватывает создание адресов, переводы SOL и SPL, а также запросы баланса и блоков, но пока без вебхуков. Для всего, что не перечислено здесь, актуальное состояние — в справочнике API.
FAQ: Arbitrum API
Готовы интегрировать Arbitrum?
Создайте аккаунт на app.chaingateway.io/register, отправьте тестовый перевод ERC-20 и настройте первый вебхук. Справочник эндпоинтов — в документации, а тарифы и лимиты запросов — на отдельной странице.