Інтеграція з 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 днів. Конкретна вартість розраховується індивідуально після оцінки проєкту. Зв'яжіться з нами для обговорення деталей — наш досвід у цій області гарантує надійне та масштабоване рішення. Замовте інтеграцію, і ми допоможемо уникнути типових помилок.







