Реализация кросс-чейн моста (Bridge) в мобильном криптокошельке
Самый частый сценарий в мобильном криптокошельке: пользователь отправляет USDC из Ethereum в Polygon, а средства застряли в процессе финализации. Без корректного отслеживания — паника и негатив в поддержку. Мы решаем эту задачу интеграцией агрегаторов кросс-чейн мостов с полноценным мониторингом статуса. За 5 лет работы мы реализовали bridge-функционал для 15+ криптокошельков, обработали сотни тысяч кросс-чейн переводов. Наш опыт позволяет предвидеть типовые проблемы: нехватка ликвидности в мосте, ошибки конфигурации destination-сети, задержки из-за форков. Каждый такой кейс мы решали и документировали, чтобы пользователь никогда не потерял средства.
Как работают агрегаторы мостов?
Агрегаторы — это middleware, которые объединяют несколько bridge-протоколов в единый API. Приложение отправляет запрос на перевод, агрегатор просчитывает лучший маршрут по скорости, комиссии и финальной сумме. Мы используем проверенные решения: Li.Fi, Squid Router, Stargate Finance. Каждый имеет свои сильные стороны. Сравним их:
| Агрегатор | Покрытие сетей | Время перевода | Комиссия | Особенности |
|---|---|---|---|---|
| Li.Fi | 20+ EVM, Cosmos (через Squid) | 1-20 мин | 0.1-0.5% + фиксир. | Встроенное восстановление |
| Squid Router | EVM, Cosmos, Polkadot | 2-15 мин | 0.3-0.8% | Маршрутизация через Axelar |
| Stargate (LayerZero) | Основные EVM | 3-10 мин | ~$2 фиксир. | Только стабильные монеты |
Li.Fi — самый гибкий, поддерживает recoverTx для зависших переводов. Squid лучше для Cosmos. Stargate — простой и быстрый для USDC/USDT.
Как выбрать подходящий бридж для вашего кошелька?
Важно учитывать: какие сети нужны пользователям? Какие токены? Если только EVM и стейблы — Stargate достаточно. Если нужны Cosmos или Polkadot — подключаем Squid через Li.Fi. В любом случае интеграция через агрегатор — один API для десятков мостов.
// iOS — маршруты через Li.Fi SDK import LiFi let lifi = LIFI() let routesRequest = RoutesRequest( fromChainId: 1, // Ethereum toChainId: 137, // Polygon fromTokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC toTokenAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", fromAmount: "100000000" // 100 USDC (6 decimals) ) let routes = try await lifi.getRoutes(request: routesRequest) Подробное описание API можно найти в документации Li.Fi.
Маршрутизация и выбор бриджа
Li.Fi возвращает несколько маршрутов с разными параметрами. Показывать пользователю:
| Маршрут | Время | Комиссия | Получите |
|---|---|---|---|
| Stargate | ~5 мин | $2.50 | 97.5 USDC |
| Hop Protocol | ~20 мин | $1.80 | 98.2 USDC |
| Across | ~3 мин | $3.10 | 96.9 USDC |
Сортировка по умолчанию — максимальный output. Дать переключатель «быстрее» / «дешевле».
Как реализовать фоновое отслеживание перевода?
После отправки транзакции в сети A пользователь получает txHash в source chain. Средства появятся в destination chain через время, зависящее от механизма финализации.
Li.Fi предоставляет status API: GET /v1/status?txHash={hash}&fromChain={chainId}&toChain={chainId}&bridge={bridgeName}. Статусы: PENDING → DONE / FAILED.
// Android — polling статуса бриджа suspend fun pollBridgeStatus(txHash: String, fromChain: Int, toChain: Int): BridgeStatus { repeat(180) { // 30 минут * 10 сек delay(10_000) val status = lifiBridgeApi.getStatus(txHash, fromChain, toChain) if (status.status == "DONE" || status.status == "FAILED") return status } return BridgeStatus(status = "TIMEOUT") } Polling в фоне — через WorkManager (Android) или BackgroundTasks (iOS), чтобы пользователь получил push-уведомление по завершении, даже если закрыл приложение.
Обработка зависших переводов
Некоторые бриджи не имеют автоматического возврата при ошибке. Li.Fi предоставляет recoverTx API для части случаев. Нужно хранить всю историю bridge-транзакций локально с возможностью повторной проверки и ссылкой на support бриджа. Мы гарантируем, что ни одна транзакция не останется без внимания — все статусы логируются и доступны в интерфейсе. Если средство не пришло в течение 30 минут, пользователь может инициировать повторную проверку. В редких случаях требуется ручное восстановление через API агрегатора — наши инженеры помогают с этим в рамках поддержки.
Процесс работы над интеграцией
- Анализ требований: поддержка сетей, токенов, сценариев использования.
- Выбор агрегатора и архитектуры интеграции.
- Реализация API вызова и обработки ответов.
- Фоновое отслеживание с push-уведомлениями.
- Тестирование на тестовых сетях (Rinkeby, Goerli, Mumbai) с реальными транзакциями.
- Деплой в продакшен и мониторинг.
Что входит в работу
При заказе интеграции мы предоставляем:
- Документацию по интеграции агрегатора и архитектуре.
- Доступ к API и SDK с примерами кода для iOS и Android.
- Обучение команды заказчика работе с bridge-функционалом.
- Сопровождение на этапе тестирования и деплоя.
- Гарантийная поддержка после запуска.
Сроки
Интеграция через агрегатор с одним поддерживаемым маршрутом — 1–2 недели. Мультиагрегаторная система с выбором маршрутов, отслеживанием в фоне и историей — 3–6 недель. Свяжитесь с нами — оценим ваш проект за один рабочий день. Мы готовы реализовать кросс-чейн функционал в вашем кошельке — получите консультацию инженера с 10-летним опытом в мобильной разработке под ключ.







