Інтеграція з 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 декодовані дані для популярних протоколів.

Аутентифікація та 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 клієнт) типізований, автоматично обробляє пагінацію, має retry логіку. Краще використовувати його, ніж raw fetch.

Основні endpoint групи

Balances API — поточні та історичні баланси ERC-20, ERC-721, ERC-1155. Включає USD-стоимість за поточною або історичною ціною. Параметр historic_balance_interval дозволяє отримати часовий ряд баланса без обходу тисяч блоків самостійно.

Transactions API — повна історія транзакцій з декодованими 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.