הגדרה
קידוד ABI הוא מנגנון שממיר חתימות פונקציות קריאות לבני אדם ונתונים מובנים לייצוג בינארי ברמה נמוכה, כפי שמוגדר על ידי Application Binary Interface (ABI). הוא מגדיר בדיוק איך ארגומנטים, ערכי החזרה וסוגי נתונים מורכבים מסודרים בבייטים, כך ש-smart contracts וקוראים חיצוניים יפרשו אותם באופן עקבי. על ידי הקפדה על כללי ה-ABI, כלים שונים, ארנקים (wallets), ואפליקציות יכולים לתקשר עם אותו contract בלי חוסר בהירות לגבי אופן פורמט הנתונים.
קידוד זה הוא מרכיב מרכזי בקריאות ל-contracts, ביומני אירועים (event logs) ובפורמטי אחסון נתונים בפלטפורמות רבות של smart contracts. הוא מבטיח שכאשר פונקציה מופעלת, ה-contract מקבל את הפרמטרים שלו בסדר ובגודל צפויים, וכי ערכי ההחזרה מפוענחים כראוי. ללא קידוד ABI, הרכיבים שעל השרשרת (on-chain) ומחוץ לשרשרת (off-chain) היו חסרים שפה משותפת להחלפת נתונים מובְנים עם smart contracts.
הקשר ושימושים
קידוד ABI מוגדר בדרך כלל לצד מפרט ABI, שמפרט את הפונקציות, האירועים וסוגי הנתונים ש-smart contract חושף. כאשר טרנזאקציה מכוונת לפונקציה ב-contract, שדה ה-call data נבנה באמצעות קידוד ABI, כך שה-contract יוכל לזהות את הפונקציה ולנתח את הקלטים שלה. אותם כללים חלים גם בעת פענוח יומני אירועים (event logs) או פירוש נתונים שמוחזרים מביצוע contract.
בפועל, קידוד ABI משמש כגשר (bridge) בין שפות תכנות ברמה גבוהה לבין ה-virtual machine ברמה נמוכה שמריץ smart contracts. הוא מאפשר ללוגיקה שעל השרשרת ולאפליקציות מחוץ לשרשרת לשתף פורמט נתונים משותף ודטרמיניסטי, וכך להפחית שגיאות שנגרמות מסוגי נתונים או סדר שדות לא תואמים. המונח קשור קשר הדוק ל-ABI עצמו, שמגדיר את הסכימה שעל פיה מנגנון הקידוד חייב לפעול.