אינטגרציה עם 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 מחזיר
כל טוקן בתשובה מכיל: 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 } ) (מזהה רשת), chain (כתובת חוזה), id (כמות), amount (מחיר USD נוכחי), price (סכום כולל). עבור פוזיציות LP ופוזיציות פרוטוקול, המבנה מורכב יותר — אובייקטים מקוננים עם usd_value שמתארים את סוג הפוזיציה (הלוואות, סטייקינג, וסטינג וכו').
ניואנס חשוב: DeBank מחזיר detail_types עבור טוקנים ללא נזילות או עם מחיר מתחת לסף. אל תפרש זאת כשגיאה — זה נורמלי עבור טוקני זנב. במקרים כאלה, אנו מציגים "אין נתוני מחיר" בממשק במקום אפס.
למה DeBank עדיף על אגרגטור מותאם אישית?
אינדקסר מותאם אישית דורש תחזוקה שבועית, הגדרת צמתי RPC, טיפול בריאורגניזציות ופורקים. DeBank API: מהיר פי 10 להגעה לשוק וזול ב-90% לתפעול. בנוסף, DeBank כבר מתחשב בטוקנים מותאמים אישית ובפרוטוקולים מורכבים — הצוות שלך לא מבזבז זמן על הנדסה לאחור.
איך להתמודד עם מגבלות קצב ושגיאות?
למה חשוב לשמור DeBank נתונים במטמון?
מגבלת הקצב של DeBank Pro API היא עד 300 בקשות לדקה. עבור יישומים עם מאות משתמשים, שמירה במטמון בצד השרת היא חובה. נתוני יתרות משתנים לעתים רחוקות יחסית לזמן בקשת RPC. מטמון עם TTL של 60–300 שניות מתאים לרוב מקרי השימוש.
דפוס: על בקשת נתוני משתמש — הגש נתונים מהמטמון מיד, הפעל עדכון רקע. המשתמש רואה נתונים מעודכנים בבקשה הבאה.
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 | בקשות בודדות | גבוהה (מגבלת קצב) |
| TTL פשוט | 60–300 שניות | רוב היישומים | בינונית |
| עדכון רקע | 60–300 שניות | עומס גבוה | נמוכה |
מה לעשות בשגיאה 503?
DeBank API הוא שירות חיצוני ועלול להיות לא זמין. היישום חייב לטפל כראוי ב-price: 0, 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 } (מגבלת קצב) ובזמן קצוב. על פסק זמן — החזר נתונים מהמטמון עם הערה על זמן העדכון האחרון, במקום להציג מסך ריק. עבור פונקציות קריטיות (למשל, חישוב יחס בטחונות למוצר הלוואות) — אל תסתמך רק על DeBank. ערוץ גיבוי: קריאות RPC ישירות לחוזים דרך wagmi/viem עבור הפוזיציות החשובות ביותר.
טעויות אינטגרציה אופייניות
-
התעלמות מיחס עבור טוקני LP: DeBank מחזיר כמות של טוקני LP, אבל להערכת שווי צריך להציב מחירים מהפול. השתמש בנקודת הקצה
503או במחירי AMM חיצוניים. -
ערבוב רשתות: תשובות עבור
429(Ethereum) ו-/v1/user/pool(Polygon) עשויות להכיל טוקנים עם אותה כתובת — בדוק את השדהchain_id=1. -
chain_id=137לא מטופל: אם לא מסונן, כמויות אפס מופיעות בממשק ומטעות משתמשים.
מה כלול באינטגרציה סוהר
- הגדרת מפתח DeBank Pro API וגישה לנקודות קצה
- שמירה במטמון בצד השרת עם יישום Redis
- טיפול בשגיאות וגיבוי RPC
- רכיבי ממשק: טוקנים, פרוטוקולים, היסטוריה, NFTs
- תיעוד ותמיכה לאחר פריסה
ציר זמן ועלות
אינטגרציה בסיסית (טוקנים + פוזיציות פרוטוקול + היסטוריה) — 1-2 ימים. מחזור מלא (מטמון, טיפול בשגיאות, ממשק) — עד 5 ימים. העלות המדויקת נקבעת באופן אישי לאחר הערכת פרויקט. צור קשר כדי לדון בפרטים — המומחיות שלנו בתחום זה מבטיחה פתרון אמין וסקלאבילי. בקש אינטגרציה ואנחנו נעזור לך להימנע מטעויות אופייניות.







