מערכת השוואת APY/APR לפרוטוקולי DeFi
משתמש רואה 4.2% APY על Aave USDC, 5.1% APR על Compound, ו-5.8% עם תגמולי MORPHO על Morpho. המספרים הללו אינם ניתנים להשוואה: Aave משתמש בריבית דריבית, Compound משתמש בריבית פשוטה, ו-Morpho מוסיף תגמולי טוקנים. בפרויקט אגרגטור DeFi, גילינו שספקי נתונים ערבבו בין APY ל-APR, והתגמולים עיוותו את התמונה בעד 7%. לאחר נורמליזציה ויישום ציון מותאם סיכון, הלקוח הגדיל את ה-TVL של הבריכה שלו ב-35% בזכות תצוגת תשואה מדויקת—זה פי 3 טוב יותר ממיון APY גולמי. המערכת גם חסכה לצוות 15 שעות בשבוע (כ-$3,000 לחודש או $36,000 בשנה) של ניתוח ידני, מה שאפשר תגובה מהירה יותר לשינויים בשוק.
בנינו מערכת שמנרמלת את כל המדדים לתקן אחיד—APR יומי—ומציגה תשואה אמיתית תוך התחשבות בכל הגורמים. היא מסתמכת על נתוני on-chain, אצווה Multicall3, ואגרגציה היסטורית. בפועל, ייצוגי תשואה שונים עלולים להטעות אפילו ספקי נזילות מנוסים. נורמליזציה נכונה היא הצעד הראשון להשוואת בריכות אובייקטיבית.
בעיית השוואת המדדים
APR הוא שיעור פשוט ללא השקעה חוזרת. APY מתחשב בריבית דריבית. ההבדל משמעותי עם ריבית דריבית תכופה:
APY = (1 + APR/n)^n - 1 ב-Ethereum, עם APR של 10% וריבית דריבית בכל בלוק (כ-2190 פעמים בשנה), APY ≈ 10.52%. לצורך השוואה נכונה, המערכת מנרמלת הכל ל-APR יומי—חלוקת השיעור השנתי ב-365. המשתמש רואה APY, אבל פנימית אנו משתמשים ב-APR יומי.
| פרמטר | APR | APY |
|---|---|---|
| ריבית דריבית | לא | כן |
| שימוש אופייני | הלוואות | פיקדונות |
| דוגמה (10% שנתי, ריבית דריבית יומית) | 10% | 10.52% |
פרוטוקולים רבים גם משלמים טוקנים מקוריים (COMP, AAVE, MORPHO) בנוסף לשיעור הבסיס. אנו מציגים APY בסיס (ללא תגמולים) ו-APY כולל (עם תגמולים) בנפרד. עבור טוקני תגמול, אנו מתחשבים במחיר הנוכחי דרך אורקלים (Chainlink)—מחיר תנודתי, שעלול לרדת עד מועד המשיכה, תקופות הבשלה/נעילה (AAVE Safety Module מובשל ל-10 ימים), ודעיכת פליטות. המשתמש מחליט אם לכלול תגמולים לא יציבים.
שליפת נתוני on-chain: כל פרוטוקול מספק נתונים בצורה שונה. אנו משתמשים ב-Multicall3 לאצווה: 1000 קריאות בודדות ארוזות בעסקה אחת. זה יעיל פי 100 מבקשות רציפות וחוסך בגז.
דוגמה עבור Aave V3:
const calls = protocols.flatMap(protocol =>
assets.map(asset => ({
target: protocol.address,
callData: protocol.interface.encodeFunctionData("getReserveData", [asset])
}))
);
const results = await multicall.aggregate(calls);עבור נתונים היסטוריים, אנו משתמשים ב-subgraphs רשמיים (The Graph) עבור Aave ו-Compound. עבור פרוטוקולים ללא subgraphs, אנו בונים אינדקס אירועים מותאם אישית.
ארכיטקטורת המערכת
שכבת איסוף נתונים
קריאות on-chain יקרות (בקשות RPC). עם 10 פרוטוקולים × 20 נכסים × 5 מדדים = 1000 קריאות לכל עדכון. פתרון: אצוות Multicall3—כל הקריאות בעסקה אחת. מה העבודה שלנו כוללת:
- פיתוח מתאמים לכל פרוטוקול (חוזים סטנדרטיים + מותאמים אישית)
- הגדרת מטמון: Redis (TTL 60 שניות) לשיעורים נוכחיים, PostgreSQL לתמונות שעתיות
- עדכונים בזמן אמת דרך WebSocket (כאשר אירועים זמינים)
- משימת רקע כל 60 שניות ששולפת נתוני on-chain
כיצד אנו מבטיחים דיוק מדדים
אנו מאמתים נוסחאות מול תיעוד רשמי של הפרוטוקול—מסמכי Aave, מסמכי Compound. כל מתאם עובר בדיקות יחידה באמצעות Tenderly fork. התוצאות נבדקות מול Etherscan ו-Dune Analytics.
דינמיקה היסטורית
APY נוכחי הוא תמונת מצב. לצורך קבלת החלטות, יש צורך בהיסטוריה: ממוצעים נעים (7 ימים, 30 ימים), תנודתיות (סטיית תקן של APY), מינימום/מקסימום לאורך תקופה. APY תנודתי (טווח של פי 5 בחודש) הוא פרופיל סיכון שונה מ-APY יציב (±0.5%). דוגמה לחישוב תנודתיות: במשך 30 יום, APY נע בין 3.2% ל-7.8%. סטיית התקן = 1.4%. זה מאותת על תשואה לא יציבה, לעיתים קרובות בגלל פליטות תגמולים.
דירוג והשוואה
מיון פשוט לפי APY אינו מספיק. המערכת מציעה פילטרים:
- רק APY יציב (תנודתיות < 0.5% במשך 30 יום)
- רק פרוטוקולים עם ביקורת (ביקורות מאומתות)
- TVL מינימלי (החרגת בריכות קטנות)
המשתמש שוקל את העדיפויות—אין ציון יחיד שנכפה.
אילו פרוטוקולים נתמכים כברירת מחדל?
אנו תומכים בשווקי הלוואות ובריכות מרכזיים:
| פרוטוקול | סוג | רשת | נכסים |
|---|---|---|---|
| Aave V3 | הלוואות | Ethereum, Polygon, Arbitrum | USDC, USDT, WETH, WBTC |
| Compound V3 | הלוואות | Ethereum, Polygon | USDC, WETH |
| Morpho | אגרגטור | Ethereum | USDC, WETH, DAI |
| Curve | AMM | Ethereum, Polygon | USDC, DAI, FRAX |
| Pendle | תשואה | Ethereum, Arbitrum | USDC, wstETH |
| Uniswap V3 | AMM | Ethereum, Polygon, Arbitrum | WETH/USDC, WETH/DAI |
לפי בקשה, אנו מוסיפים כל פרוטוקול EVM עם מתאם מותאם אישית.
נורמליזציית APY שלב אחר שלב
- שליפת נתונים גולמיים מחוזי הפרוטוקול דרך Multicall3 (עסקת אצווה אחת).
- חילוץ שיעור הבסיס ופרמטרי התגמול (תגמול לשנייה, מחיר אורקל).
- המרה לפורמט אחיד: המרת APR ל-APY באמצעות תדירות הריבית הדריבית של הפרוטוקול.
- עבור טוקני תגמול, חישוב APY כולל תוך התחשבות במחיר הנוכחי ובהבשלה.
- כתיבת תמונת מצב למסד הנתונים ההיסטורי ועדכון מטמון Redis (TTL 60 שניות).
- חשיפת מדדים מנורמלים דרך REST API.
תהליך זה חוזר על עצמו אוטומטית כל דקה.
מה כלול בעבודה
- מתאמים לכל פרוטוקול (סטנדרטי + מותאם אישית)
- REST API עם תיעוד (OpenAPI)
- אינדקס היסטורי (תמונות שעתיות ב-PostgreSQL)
- רכיבי UI עבור Next.js (Recharts, TanStack Query)
- בדיקות יחידה ואינטגרציה באמצעות Tenderly fork
- מדריך פריסה ותפעול
- תמיכה ל-30 יום לאחר ההשקה
ערימת טכנולוגיות
- צד שרת: Node.js + TypeScript, Viem (on-chain), PostgreSQL, Redis, Bullmq
- צד לקוח: Next.js, TanStack Query, Recharts / Tremor
- תשתית: Docker Compose, GitHub Actions, Tenderly ל-forking
לוחות זמנים: MVP עם 3-5 פרוטוקולים ושיעורים נוכחיים—3-5 ימים. מערכת מלאה עם היסטוריה, פילטרים וויזואליזציה—2-3 שבועות. עלויות יישום אופייניות נעות בין $5,000 ל-$15,000 בהתאם למורכבות. צרו קשר להערכת הפרויקט שלכם. בקשו הדגמה לראות מדדים מנורמלים עבור הפרוטוקולים שלכם.
המומחיות שלנו: עם 5+ שנים בפיתוח Web3 ו-50+ פרוטוקולי DeFi משולבים, אנו מספקים נורמליזציית תשואה מדויקת. השלמנו 30+ פרויקטים עבור לקוחות החל מסטארטאפים ועד פרוטוקולים מבוססים. הצוות שלנו מבטיח נכונות חישוב ודיוק נתוני on-chain.







