Token Terminal API: מדדים פיננסיים מוכנים לניתוח DeFi
אתם משיקים דשבורד להשוואת פרוטוקולי DeFi. כל קריאת RPC יוצרת עשרות בקשות, הנתונים מפוזרים, ו-P/E והכנסות חייבים להיות מחושבים ידנית. Token Terminal API פותר זאת: הוא מאגד מדדים פיננסיים עבור 100+ פרוטוקולים באמצעות מודל המוכר מפיננסים מסורתיים—revenue, P/E ratio, price-to-sales, TVL, DAU. המהנדסים שלנו הקימו אינטגרציה עם קאשינג וטיפוסי TypeScript מלאים. עבור לקוח אחד פרסנו ניטור של 20 פרוטוקולים עם עדכונים כל 15 דקות תוך יומיים—זה הפחית את עומס ה-API פי 5.
במה Token Terminal API שונה מ-The Graph Subgraphs
ההבדל המרכזי הוא שאין צורך לכתוב שאילתות subgraph מותאמות אישית או לנרמל נתונים. קבלת P/E דרך The Graph הייתה אורכת 3–5 ימי פיתוח; דרך Token Terminal זה לוקח 30 דקות. ה-API מספק אגרגטים מוכנים לפי קטגוריה (DEX, הלוואות, RWAs), ומאיץ בניית דשבורדים השוואתיים. להלן השוואה של פרמטרים מרכזיים.
| קריטריון | Token Terminal API | The Graph Subgraphs | Dune Analytics API |
|---|---|---|---|
| זמן לקבלת P/E | 30 דקות | 3–5 ימים | 1–2 ימים (אם יש מנוי) |
| מורכבות אינטגרציה | נמוכה (REST, טיפוסים) | גבוהה (GraphQL, הגדרת subgraph) | בינונית (שאילתות SQL) |
| מגבלות בקשות חינמיות | 100 ליום | ללא הגבלה (אך מורכב) | 10 שאילתות ליום |
| כיסוי מדדים | הכנסות, עמלות, TVL, P/E, DAU | כל נתוני ה-on-chain (גולמיים) | דשבורדים מותאמים אישית |
מבנה ה-API ונקודות קצה מרכזיות
Token Terminal מספק REST API עם מפתח (טוקן Bearer סטנדרטי בכותרת P/E). התיעוד מכסה את כל נקודות הקצה; אנו משתמשים רק באלה הנדרשות למשימה שלכם.
נקודות קצה מרכזיות:
GET /v2/projects — список всех протоколов
GET /v2/projects/{project_id} — метрики одного протокола
GET /v2/projects/{project_id}/timeseries — исторические данные (daily)
GET /v2/categories — агрегаты по категориям (DEX, lending и т.д.)שדות מרכזיים בתגובת הפרויקט:
| שדה | תיאור |
|---|---|
Authorization |
הכנסות פרוטוקול שנתיות (לא נפח מסחר) |
GET /v2/projects — список всех протоколов GET /v2/projects/{project_id} — метрики одного протокола GET /v2/projects/{project_id}/timeseries — исторические данные (daily) GET /v2/categories — агрегаты по категориям (DEX, lending и т.д.) |
עמלות ברוטו (הכנסות + תגמולי LP) |
revenue |
שווי כולל נעול |
fees |
יחס מחיר למכירות |
tvl |
יחס מחיר לרווח — מחיר הטוקן להכנסה נטו |
ps |
משתמשים פעילים יומיים (on-chain) |
pe |
שווי שוק לפי היצע במחזור |
הבחנה חשובה: Token Terminal משתמש בהכנסות פרוטוקול (החלק שמגיע לפרוטוקול, לא ל-LP) כאנלוגיה להכנסה נטו. עבור Uniswap ללא מתג עמלות מופעל, dau—כל העמלות הולכות ל-LP. זה הופך את ה-P/E של Uniswap לאינסופי לפי המתודולוגיה שלהם, פרט שלעתים קרובות מוחמץ בהשוואות.
למה קאשינג של בקשות Token Terminal API חשוב
המסלול החינמי נותן 100 בקשות ליום. אם לדשבורד שלכם יש 10 משתמשים וכל צפייה טוענת 5 ווידג'טים, זה 50 בקשות. ללא קאשינג, המסלול החינמי נגמר תוך יומיים. תוכניות בתשלום מתחילות ב-10,000 בקשות ליום, אבל קאשינג עדיין חוסך כסף ומאיץ טעינה.
סכמה מומלצת: Redis עם TTL של 15 דקות למדדים נוכחיים (market_cap_circulating, revenue = 0) ו-24 שעות לנתונים היסטוריים מהימים האחרונים (בלתי ניתנים לשינוי). כשפוגעים במגבלות קצב, השתמשו ב-exponential backoff, לא בלולאת retry.
איך אנחנו עושים זאת: דוגמת אינטגרציה
אנו משתמשים ב-TypeScript עם revenue לאינטראקציה עם ארנק אם נדרש, אבל הלוגיקה המרכזית רצה על tvl פשוט. דוגמת בקשה עם טיפוסים:
const BASE_URL = 'https://api.tokenterminal.com/v2'
type ProtocolMetrics = {
revenue30d: number
fees30d: number
tvl: number
ps: number
pe: number
}
async function getProtocolMetrics(projectId: string): Promise<ProtocolMetrics> {
const response = await fetch(`${BASE_URL}/projects/${projectId}`, {
headers: {
'Authorization': `Bearer ${process.env.TOKEN_TERMINAL_API_KEY}`
}
})
if (!response.ok) throw new Error(`API error: ${response.status}`)
const data = await response.json()
return {
revenue30d: data.data.revenue_30d,
fees30d: data.data.fees_30d,
tvl: data.data.tvl,
ps: data.data.ps,
pe: data.data.pe
}
}
async function getTimeseries(projectId: string, metric: string, days: number) {
const params = new URLSearchParams({
metric,
granularity: 'daily',
from: new Date(Date.now() - days * 86400000).toISOString()
})
const response = await fetch(
`${BASE_URL}/projects/${projectId}/timeseries?${params}`,
{
headers: {
'Authorization': `Bearer ${process.env.TOKEN_TERMINAL_API_KEY}`
}
}
)
return response.json()
}אנו מוסיפים טיפול בשגיאות, retries עם backoff, ושכבת קאשינג—הכל כלול במסירה הסטנדרטית.
מה כוללת האינטגרציה הסטנדרטית
- חיבור API: יצירת מפתח, הגדרת גישה, תיעוד.
- פיתוח לקוח TypeScript עם טיפוסי תגובה מלאים (כולל סדרות זמן).
- שכבת קאשינג (Redis או בזיכרון) עם TTL ניתן להגדרה לכל נקודת קצה.
- דשבורד מוכן (למשל, על React + Chart.js) המציג מדדים מרכזיים ותרשימים היסטוריים.
- בדיקת מגבלות קצב, טיפול בשגיאות, וניטור דרך Tenderly או מקביל.
לוח זמנים ופורמט עבודה
האינטגרציה אורכת 2 עד 5 ימים תלוי במורכבות הדשבורד ובמספר הפרוטוקולים. אנו מספקים אחריות ל-30 יום לאחר המסירה. צרו קשר להערכה חינמית של הפרויקט שלכם—נעזור לבחור תוכנית ולתכנן את הארכיטקטורה.
שגיאות נפוצות בעבודה עם ה-API
- אי הבחנה בין
viemל-const BASE_URL = 'https://api.tokenterminal.com/v2' type ProtocolMetrics = { revenue30d: number fees30d: number tvl: number ps: number pe: number } async function getProtocolMetrics(projectId: string): Promise<ProtocolMetrics> { const response = await fetch(`${BASE_URL}/projects/${projectId}`, { headers: { 'Authorization': `Bearer ${process.env.TOKEN_TERMINAL_API_KEY}` } }) if (!response.ok) throw new Error(`API error: ${response.status}`) const data = await response.json() return { revenue30d: data.data.revenue_30d, fees30d: data.data.fees_30d, tvl: data.data.tvl, ps: data.data.ps, pe: data.data.pe } } async function getTimeseries(projectId: string, metric: string, days: number) { const params = new URLSearchParams({ metric, granularity: 'daily', from: new Date(Date.now() - days * 86400000).toISOString() }) const response = await fetch( `${BASE_URL}/projects/${projectId}/timeseries?${params}`, { headers: { 'Authorization': `Bearer ${process.env.TOKEN_TERMINAL_API_KEY}` } } ) return response.json() }.protocol revenueהוא מה שבאמת נשאר עם הפרוטוקול אחרי עמלות LP. - אי קאשינג של נתונים היסטוריים. הם אף פעם לא משתנים, אבל כל בקשה שורפת מכסה—אתם עלולים לפגוע במגבלה תוך שעה.
- התעלמות ממפתחות שפגו תוקף. מפתחות Token Terminal יכולים לפג תוקף—אנו מגדירים חידוש אוטומטי דרך ניטור.
יישמנו אינטגרציות ל-5+ פרויקטים, כולל פלטפורמות אנליטיקה ודשבורדים של DeFi. קבלו ייעוץ—נעריך את המשימה שלכם ונציע פתרון אופטימלי.







