Интеграция с Covalent API

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1306 услуг
Интеграция с Covalent API
Простой
от 1 дня до 3 дней
Часто задаваемые вопросы

Направления блокчейн-разработки

Этапы блокчейн-разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1309
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1222
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    922
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1151
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    614
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    887

Интеграция с Covalent API

Covalent — это unified API для получения on-chain данных с 200+ сетей без необходимости держать собственный архивный узел. Вместо того чтобы писать отдельные интеграции для Ethereum, Polygon, Arbitrum и Base, вы делаете один запрос к Covalent и получаете нормализованный ответ с декодированными транзакциями, балансами токенов и историей трансферов.

Что реально решает Covalent

Типичный сценарий: вам нужно показать пользователю портфолио токенов на 5 сетях, историю транзакций и NFT. Без Covalent это 5 разных RPC-узлов, самостоятельный парсинг ABI, запросы к CoinGecko для цен — и пара недель работы. С Covalent:

# Балансы всех 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 для популярных протоколов.

Аутентификация и rate limits

API ключ передаётся через Basic Auth header. Бесплатный tier: 4 запроса в секунду, 100k запросов в месяц. Для production — платные тарифы от $50/месяц.

const client = new CovalentClient(process.env.COVALENT_API_KEY);

const response = await client.BalanceService.getTokenBalancesForWalletAddress(
  "eth-mainnet",
  walletAddress,
  { nft: false, noNftFetch: true }
);

GoldRush SDK (официальный TypeScript клиент) типизирован, handles pagination автоматически, есть retry логика. Лучше использовать его, чем raw fetch.

Основные endpoint группы

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-формат — меньше путаницы при работе с тестнетами.

Ограничения, о которых стоит знать

Covalent индексирует исторические данные с задержкой для новых сетей — не рассчитывайте на данные с задержкой меньше одного блока. Для real-time данных (мониторинг pending транзакций, текущая цена на DEX) нужен прямой RPC.

Decoded data работает только для white-listed протоколов. Кастомные или малоизвестные контракты возвращают raw logs — ABI-декодирование придётся делать самостоятельно через ethers.Interface.