Інтеграція DeBank API: DeFi-портфель, баланси та кешування

Інтеграція з DeBank API для DeFi-портфелів Користувач заходить у ваш DeFi-дашборд і бачить порожні екрани: баланси не завантажуються, протокольні позиції не відображаються. Причина — відсутність агрегації даних за різними блокчейнами. Вручну збирати баланси з Aave, Uniswap, Compound та інших конт

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1310
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1270
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1012

Інтеграція з DeBank API для DeFi-портфелів

Користувач заходить у ваш DeFi-дашборд і бачить порожні екрани: баланси не завантажуються, протокольні позиції не відображаються. Причина — відсутність агрегації даних за різними блокчейнами. Вручну збирати баланси з Aave, Uniswap, Compound та інших контрактів на Ethereum, Arbitrum, Polygon і BNB Chain — задача на тижні, якщо не місяці. DeBank API вирішує цю проблему одним викликом: готові агреговані дані без власної індексуючої інфраструктури. Наш досвід (5+ років у Web3, 30+ інтеграцій DeFi-портфелів) показує, що це економить 80% часу на розробку портфельного модуля та знижує витрати на інфраструктуру в 10 разів.

Як отримати DeFi-портфель користувача?

DeBank OpenAPI надає кілька груп ендпоінтів. Найчастіший сценарій — отримати всі токени та протокольні позиції одразу. Для цього використовуємо /v1/user/all_token_list і /v1/user/complex_protocol_list. Прямий RPC-індексатор потребує щотижневого обслуговування, а DeBank дає готовий результат за хвилини.

const headers = { AccessKey: process.env.DEBANK_API_KEY } // Всі токени користувача на всіх чейнах const tokens = await axios.get( `https://pro-openapi.debank.com/v1/user/all_token_list?id=${userAddress}&is_all=true`, { headers } ) // Позиції в конкретному протоколі const aavePositions = await axios.get( `https://pro-openapi.debank.com/v1/user/protocol?id=${userAddress}&protocol_id=aave3`, { headers } ) 

Модель даних: що повертає API

Кожен токен у відповіді містить: chain (ідентифікатор чейна), id (контрактна адреса), amount (кількість), price (поточна ціна USD), usd_value (сума). Для LP-позицій і протокольних позицій структура складніша — вкладені об'єкти з detail_types, які описують тип позиції (lending, staking, vesting тощо).

Важливий нюанс: DeBank повертає price: 0 для токенів без ліквідності або з ціною нижче порогу. Не слід інтерпретувати це як помилку — це нормальна ситуація для хвостових токенів. У таких випадках ми в UI показуємо «немає даних про ціну», а не нуль.

Чому DeBank краще самописного агрегатора?

Самописний індексатор потребує щотижневого обслуговування, налаштування RPC-нод, обробки реорганів і форків. DeBank API: швидший у 10 разів за швидкістю виведення даних на ринок і дешевший на 90% в експлуатації. Крім того, DeBank уже враховує кастомні токени та складні протоколи — ваша команда не витрачає час на reverse engineering.

Як обробляти rate limit і помилки?

Чому важливо кешувати дані DeBank?

Rate limit DeBank Pro API — до 300 запитів на хвилину. Для додатків із сотнями користувачів обов'язкове серверне кешування. Дані про баланси змінюються рідко відносно часу RPC-запиту. Кеш із TTL 60-300 секунд влаштовує більшість use-cases.

Паттерн: при запиті даних користувача — віддаємо кешовані дані негайно, запускаємо фонове оновлення. Користувач бачить актуальні дані при наступному запиті.

async function getUserPortfolio(address: string) { const cacheKey = `portfolio:${address}` const cached = await redis.get(cacheKey) if (cached) { // Запустити фонове оновлення updateInBackground(address, cacheKey) return JSON.parse(cached) } const fresh = await fetchFromDeBank(address) await redis.setex(cacheKey, 120, JSON.stringify(fresh)) return fresh } 
Стратегія кешування TTL Застосовність Витрати на інфраструктуру
Без кешу 0 Одиничні запити Високі (rate limit)
Простий TTL 60-300 с Більшість додатків Середні
Фонове оновлення 60-300 с Високе навантаження Низькі

Що робити при помилці 503?

DeBank API — зовнішній сервіс, він буває недоступний. Додаток повинен коректно обробляти 503, 429 (rate limit) та timeout. При timeout — повертати кешовані дані з позначкою про час останнього оновлення, а не показувати порожній екран. Для критичних функцій (наприклад, розрахунок заставного коефіцієнта для кредитного продукту) — не покладатися тільки на DeBank. Резервний канал: прямі RPC-виклики до контрактів через wagmi/viem для найважливіших позицій.

Типові помилки інтеграції

  • Ігнорування ratio для LP-токенів: DeBank повертає кількість LP-токенів, але для оцінки потрібно підставляти ціни з пулу. Використовуйте ендпоінт /v1/user/pool або зовнішні AMM-ціни.
  • Змішування чейнів: відповідь для chain_id=1 (Ethereum) і chain_id=137 (Polygon) може містити токени з однаковою адресою — перевіряйте поле chain.
  • Необроблений price: 0: якщо не фільтрувати, в UI з'являться нульові суми, що вводить користувачів в оману.

Що входить в інтеграцію під ключ

  • Налаштування API-ключа DeBank Pro та доступу до ендпоінтів
  • Реалізація серверного кешування з Redis
  • Обробка помилок та fallback на RPC
  • UI-компоненти портфеля: токени, протоколи, історія, NFT
  • Документація по використанню та підтримка після впровадження

Терміни та вартість

Базова інтеграція (токени + протокольні позиції + історія) — 1-2 дні. З повним циклом (кешування, обробка помилок, UI) — до 5 днів. Конкретна вартість розраховується індивідуально після оцінки проєкту. Зв'яжіться з нами для обговорення деталей — наш досвід у цій області гарантує надійне та масштабоване рішення. Замовте інтеграцію, і ми допоможемо уникнути типових помилок.