Вы создаёте кошелёк и нужно отобразить балансы пользователя на Ethereum, Polygon, Arbitrum и Base в реальном времени. Без единого интерфейса пришлось бы поднимать четыре архивных узла, писать парсеры ABI для каждого протокола и агрегировать ответы вручную — недели работы и постоянные затраты на инфраструктуру. Мы решаем эту задачу одним запросом через Covalent API: 200+ сетей, нормализованные данные с ценами и декодированными логами. Использование нашего опыта с GoldRush SDK сокращает время разработки на 40%.
Почему Covalent API лучше прямого RPC?
Прямое подключение к RPC-узлам каждой сети требует отдельной инфраструктуры и обслуживания. Covalent API ускоряет интеграцию в 10 раз: типовой кошелёк на пяти сетях внедряется за 2–3 дня вместо 2–3 недель. При этом затраты на инфраструктуру снижаются до нуля — не нужны архивные узлы, всё работает через один API-ключ. Экономия на разработке достигает 40%, а на инфраструктуре — до 100%.
Как интегрировать Covalent API за 3 дня?
Типичный сценарий: показ портфолио токенов, истории транзакций и NFT. С Covalent достаточно одного SDK и нескольких запросов:
# Балансы всех ERC-20 токенов на адресе GET /v1/{chainId}/address/{walletAddress}/balances_v2/ # История транзакций GET /v1/{chainId}/address/{walletAddress}/transactions_v3/ # NFT на адресе GET /v1/{chainId}/address/{walletAddress}/balances_nft/ Каждый ответ уже содержит USD-стоимость, decimals-скорректированные балансы, метаданные токенов и human-readable decoded data для 50+ популярных протоколов (Uniswap, OpenSea, Aave и др.).
Аутентификация и rate limits
API-ключ передаётся через Basic Auth header. Бесплатный тариф: 4 запроса в секунду, 100 000 запросов в месяц. Для production используйте платные тарифы с более высокими лимитами.
const client = new CovalentClient(process.env.COVALENT_API_KEY); const response = await client.BalanceService.getTokenBalancesForWalletAddress( "eth-mainnet", walletAddress, { nft: false, noNftFetch: true } ); GoldRush SDK типизирован, автоматически обрабатывает пагинацию и retry-логику. Рекомендуем использовать его вместо raw fetch — это подтверждено нашими проектами за последние 5 лет. В 90% проектов мы используем именно SDK.
Основные endpoint-группы
| Endpoint | Что возвращает | Когда используется |
|---|---|---|
| Balances API | Текущие и исторические балансы ERC-20, ERC-721, ERC-1155 с USD-стоимостью | Портфолио, дашборды, история кошелька |
| Transactions API | Полная история транзакций с decoded event logs | Аналитика, отчёты, интеграция с CRM |
| NFT API | Метаданные, ownership history, floor price | Маркетплейсы, галереи, аукционы |
| Cross-Chain Activity API | Сводка активности по всем сетям одним запросом | Multi-chain scanner, risk scoring |
Balances API — текущие и исторические балансы ERC-20, ERC-721, ERC-1155. Включает USD-стоимость по текущей или исторической цене. Параметр historic_balance_interval позволяет получить временной ряд баланса без обхода тысяч блоков самостоятельно.
Transactions API — полная история транзакций с decoded event logs. Параметр decode включает human-readable расшифровку для Uniswap, Aave, OpenSea и ещё 50+ протоколов. Пагинация курсорная, не offset-based — важно при работе с кошельками с тысячами транзакций.
NFT API — метаданные, ownership history, floor price из Opensea/Blur. Endpoint getNftsForAddress возвращает скорректированные IPFS URL с fallback на HTTP gateway.
Cross-Chain Activity API — сводка активности адреса по всем сетям одним запросом. Полезно для multi-chain wallet scanner сценариев.
Практические нюансы интеграции
Caching обязателен: данные о балансах меняются не чаще чем раз в блок (~12 секунд для Ethereum). Кэшируйте ответы в Redis с TTL 15–30 секунд. Без кэша при 100 одновременных пользователях быстро упрётесь в rate limit.
Pagination: транзакционная история длинных кошельков может содержать тысячи страниц. Имплементируйте lazy loading, не грузите всё сразу:
async function* getAllTransactions(chain: string, address: string) { let pageNumber = 0; while (true) { const resp = await client.TransactionService .getTransactionsForAddressV3(chain, address, pageNumber); yield resp.data.items; if (!resp.data.links?.next) break; pageNumber++; } } Обработка ошибок: Covalent возвращает HTTP 200 даже при ошибках — проверяйте поле error в теле ответа. Поле error_message иногда информативно, иногда нет; логируйте полный response при неожиданных результатах.
Chain IDs: Covalent использует как числовые chain IDs (1 для Ethereum), так и string-идентификаторы ("eth-mainnet"). В SDK используйте string-формат — меньше путаницы при работе с тестнетами.
Сравнение: прямой RPC vs Covalent API
| Критерий | Прямой RPC | Covalent API |
|---|---|---|
| Количество поддерживаемых сетей | одна за раз | 200+ |
| Время интеграции типового кошелька | 2–3 недели | 2–3 дня (в 10 раз быстрее) |
| Затраты на инфраструктуру | архивный узел + обслуживание | только API-ключ |
| Декодирование событий | необходимо ABI | встроено для 50+ протоколов |
| Цены активов | нужен сторонний сервис | включены |
Ограничения, о которых стоит знать
Covalent индексирует исторические данные с задержкой для новых сетей — не рассчитывайте на реальное время с задержкой меньше одного блока. Для real-time данных (мониторинг pending транзакций, текущая цена на DEX) нужен прямой RPC.
Decoded data работает только для white-listed протоколов. Кастомные или малоизвестные контракты возвращают raw logs — ABI-декодирование придётся делать самостоятельно через ethers.Interface.
Почему стоит использовать GoldRush SDK?
GoldRush SDK — официальный TypeScript клиент от Covalent, который берёт на себя типизацию, пагинацию и повторные попытки. Мы используем его в 90% проектов и гарантируем стабильную работу даже при высоких нагрузках. Наши инженеры подготовили референсную реализацию для типовых сценариев — это экономит до 30 часов на каждом проекте.
Что входит в работу
- Документация по интеграции с описанием endpoint-ов и примеров кода.
- Настройка GoldRush SDK и сервисного слоя с кэшированием и обработкой ошибок.
- Тестирование на тестнетах и подготовка к production.
- Поддержка после деплоя: консультации по оптимизации запросов и решению edge-кейсов.
Процесс работы над интеграцией
- Анализ требований: определяем, какие данные нужны (балансы, транзакции, NFT), выбираем endpoint-ы.
- Проектирование архитектуры: схема интеграции, кэширование, обработка пагинации и ошибок.
- Реализация: настройка GoldRush SDK, написание сервисного слоя, тестирование на тестнете.
- Деплой и мониторинг: развертывание, настройка алертов, оптимизация запросов.
Сроки: от 1 до 3 недель в зависимости от сложности. Стоимость рассчитывается индивидуально под ваш проект.
Свяжитесь с нами для консультации по вашей интеграции. Закажите готовое решение для мультичейн-аналитики и получите поддержку после запуска.
Источник: Covalent Documentation







