משתמש לוחץ על 'Mint' ב-dApp שלך — ורואה בקשה מ-MetaMask על 0.003 ETH עבור גז. אין לו ETH, רק NFTs ו-USDC. ההמרה צונחת. זה לא תרחיש היפותטי: זה בדיוק מה שהורג את תהליך ההטמעה ברוב יישומי Web3 עבור קהלים המוניים. Biconomy פותרת זאת באמצעות Account Abstraction. במדריך זה, אנו מכסים את האינטגרציה של Biconomy עבור עסקאות ללא גז ו-Account Abstraction. אנו משלבים את Biconomy SDK בפרויקט שלך בצורה מלאה, כך שמשתמשים שוכחים מגז.
כיצד Account Abstraction מבטל עמלות גז
Biconomy היא הטמעה של ERC-4337 (Account Abstraction) עם תשתית משלה: bundler, Paymaster, וחוזי Smart Account. המשתמש אינו חותם על עסקת Ethereum — הוא חותם על UserOperation (אובייקט מובנה), ה-bundler אורז מספר UserOperations לעסקה אחת ושולח אותה ל-mempool. ה-Paymaster משלם עבור הגז.
עבור המפתח, זה אומר: הקצה האחורי או חוזה ה-Paymaster משלם גז במקום המשתמש; המשתמש חותם רק על כוונה. ההמרה עולה ב-30–50% — מספרים אמיתיים מהפרויקטים שלנו תיעוד Biconomy. אינטגרציית Biconomy מהירה פי 5 מבנייה מאפס (1-3 ימים לעומת 2-4 שבועות).
שלושת רכיבי האינטגרציה המרכזיים
Smart Account
Smart Account הוא חוזה חכם שמתפקד כארנק של המשתמש. בניגוד ל-EOA, הוא יכול:
- לשלב קריאות מרובות לעסקה אחת (batch)
- לתמוך במפתחות סשן (המשתמש חותם פעם אחת, N העסקאות הבאות ללא חתימה)
- לכלול לוגיקת שחזור חשבון
- לאמת חתימות באמצעות לוגיקה מותאמת אישית (WebAuthn, passkey)
Biconomy מספקת Modular Smart Account (v3), תואם לתקן ERC-7579 (חשבונות מודולריים). פריסת Smart Account עבור משתמש חדש מתרחשת אוטומטית בשימוש ראשון באמצעות פריסה counterfactual — החוזה נפרס רק בעסקה הראשונה, והכתובת מחושבת דטרמיניסטית מראש.
Paymaster
Paymaster הוא חוזה שמכסה עמלות גז. Biconomy מספקת Sponsorship Paymaster (עסקאות ממומנות) ו-Token Paymaster (המשתמש משלם עם טוקנים במקום ETH).
עבור Sponsorship Paymaster אתה צריך:
- לרשום פרויקט ב-Biconomy Dashboard
- להטעין יתרת MATIC/ETH לכיסוי גז (חיסכון ממוצע בגז למשתמש: $0.50 לעסקה)
- להגדיר רשימת היתרים של חוזים ופונקציות למימון
Token Paymaster מאפשר למשתמשים לשלם ב-USDC, DAI, או כל ERC-20 שנתמך על ידי ה-Paymaster. ההמרה לטוקן מקומי לתשלום גז מתרחשת בתוך ה-UserOperation.
Bundler
Bundler הוא צומת שמקבל UserOperations ממשתמשים, מאמת אותם, אורז אותם לקבוצה, ושולח לרשת. Biconomy מספקת bundler מתארח דרך API עם זמינות של 99.9%. עבור סביבת production, בחר bundler על בסיס:
- חביון (זמן מ-UserOperation ועד הכללה בעסקה) — בדרך כלל מתחת ל-200ms
- רשתות נתמכות
- מגבלות קצב ואמינות
כיצד לשלב את Biconomy ב-5 שלבים
- התקן את ה-SDK:
tx.origin == msg.sender - צור Smart Account: השתמש ב-
@biconomy/sdkעם החותם של המשתמש. - הגדר Paymaster: הגדר Sponsorship או Token Paymaster ב-Biconomy Dashboard.
- שלח UserOperation: השתמש ב-
viemעם מצבwagmi. - בדוק ופרוס: אמת תחילה ב-Testnet, ולאחר מכן ב-Mainnet.
import { createSmartAccountClient } from "@biconomy/sdk";
import { createWalletClient, custom } from "viem";
import { polygon } from "viem/chains";
// Создаём Smart Account для пользователя
const walletClient = createWalletClient({
chain: polygon,
transport: custom(window.ethereum),
});
const smartAccount = await createSmartAccountClient({
signer: walletClient,
bundlerUrl: "https://bundler.biconomy.io/api/v2/137/nJPK7B3ru...",
paymasterUrl: "https://paymaster.biconomy.io/api/v1/137/Tpk8nuCU...",
paymasterTokens: [
{ address: USDC_ADDRESS, decimal: 6, symbol: "USDC" },
],
});
// Batch транзакция: approve + deposit за одну подпись
const txs = [
{ to: TOKEN_ADDRESS, data: approveCalldata },
{ to: PROTOCOL_ADDRESS, data: depositCalldata },
];
const userOpResponse = await smartAccount.sendTransaction(txs, {
paymasterServiceData: {
mode: PaymasterMode.SPONSORED,
},
});
const { transactionHash } = await userOpResponse.waitForTxHash();
מפתחות סשן
מפתחות סשן הם אחת התכונות החזקות ביותר של Smart Account. המשתמש חותם על מדיניות פעם אחת: "אפשר לכתובת X לקרוא לפונקציה Y של חוזה Z עם סכום שלא יעלה על N טוקנים תוך 24 שעות". לאחר מכן, מפתח הסשן מבצע עסקאות ללא אינטראקציה של המשתמש — אידיאלי למשחקים, אסטרטגיות אוטומטיות, ומנויים.
const sessionModule = await createSessionKeyManagerModule({
moduleAddress: SESSION_KEY_MANAGER_MODULE_ADDRESS,
smartAccountAddress: smartAccount.accountAddress,
});
// Создаём сессию с ограничениями
const sessionData = await createSession(
smartAccount,
[
{
sessionValidationModule: ERC20_SESSION_VALIDATION_MODULE,
sessionKeyData,
},
],
null, // хранение в памяти или IPFS
{
paymasterServiceData: {
mode: PaymasterMode.SPONSORED,
},
}
);
רשתות נתמכות
| רשת | Bundler | Paymaster | טוקן גז |
|---|---|---|---|
| Ethereum Mainnet | כן | כן | ETH, ERC-20 |
| Polygon | כן | כן | MATIC, USDC |
| Arbitrum One | כן | כן | ETH |
| Optimism | כן | כן | ETH |
| Base | כן | כן | ETH |
| BSC | כן | כן | BNB |
| Avalanche | כן | כן | AVAX |
בעיות אינטגרציה נפוצות
UserOperation חוזר ללא שגיאה ברורה. ה-bundler של Biconomy מאמת את ה-UserOperation לפני השליחה, אך שגיאות מה-calladata (למשל, revert בחוזה היעד) מוחזרות בהקס ללא פענוח. אנו משתמשים ב-import { createSmartAccountClient } from "@biconomy/sdk"; import { createWalletClient, custom } from "viem"; import { polygon } from "viem/chains"; // Создаём Smart Account для пользователя const walletClient = createWalletClient({ chain: polygon, transport: custom(window.ethereum), }); const smartAccount = await createSmartAccountClient({ signer: walletClient, bundlerUrl: "https://bundler.biconomy.io/api/v2/137/nJPK7B3ru...", paymasterUrl: "https://paymaster.biconomy.io/api/v1/137/Tpk8nuCU...", paymasterTokens: [{ address: USDC_ADDRESS, decimal: 6, symbol: "USDC" }], }); // Batch транзакция: approve + deposit за одну подпись const txs = [ { to: TOKEN_ADDRESS, data: approveCalldata }, { to: PROTOCOL_ADDRESS, data: depositCalldata }, ]; const userOpResponse = await smartAccount.sendTransaction(txs, { paymasterServiceData: { mode: PaymasterMode.SPONSORED }, }); const { transactionHash } = await userOpResponse.waitForTxHash(); או ב-cast כדי לפענח את סיבת ה-revert.
אי-תאימות של החוזה עם Smart Account. חלק מהחוזים בודקים את const sessionModule = await createSessionKeyManagerModule({ moduleAddress: SESSION_KEY_MANAGER_MODULE_ADDRESS, smartAccountAddress: smartAccount.accountAddress, }); // Создаём сессию с ограничениями const sessionData = await createSession( smartAccount, [{ sessionValidationModule: ERC20_SESSION_VALIDATION_MODULE, sessionKeyData }], null, // хранение в памяти или IPFS { paymasterServiceData: { mode: PaymasterMode.SPONSORED } } ); כדי להגן מפני קריאות מחוזות. Smart Account הוא חוזה, ולכן ethers.utils.parseError() תמיד. בדיקות כאלה חוסמות עסקאות ללא גז. יש להסיר את הבדיקה מהחוזה, או להשתמש ב-EntryPoint כ-forwarder מהימן.
הכתובת ה-counterfactual אינה תואמת לצפוי. כתובת Smart Account תלויה בגרסת ה-factory, ב-salt, וב-signerAddress. בעת שינוי רשת או גרסת SDK, הכתובת עשויה להשתנות. השתמש תמיד ב-msg.sender == tx.origin כמקור האמת היחיד.
מה כלול באינטגרציית Biconomy
- ביקורת של חוזים קיימים לתאימות ERC-4337
- הגדרת Paymaster (Sponsorship ו/או Token)
- פיתוח שכבת UserOperation בחזית (SDK + viem)
- הטמעת מפתחות סשן, אם נדרש
- בדיקות ב-Testnet וב-Mainnet (כולל fuzzing)
- תיעוד תפעולי ותמיכה ל-30 יום
אנו עובדים עם Biconomy מאז 2022 — 5+ אינטגרציות מוצלחות בפרויקטי DeFi ו-NFT. לצוות שלנו ניסיון של למעלה מ-5 שנים ב-Web3, 50+ פרויקטי בלוקצ'יין, ו-5+ אינטגרציות Biconomy. המהנדסים שלנו מעודכנים בעדכוני ה-SDK והתקנים העדכניים ביותר.
השוואה: Biconomy לעומת ERC-4337 בהטמעה עצמית
| פרמטר | Biconomy | הטמעה עצמית |
|---|---|---|
| זמן הגדרה | 1-3 ימים | 2-4 שבועות |
| תמיכה ברשתות | 7+ רשתות | רק אחת |
| ניטור | Dashboard | בנוי בהתאמה אישית |
| אבטחה | קוד מבוקר | ביקורת עצמית |
אינטגרציית Biconomy מהירה פי 5 ותומכת בפי 7 יותר רשתות מהקופסה.
מוכן להעריך את הפרויקט שלך? צור קשר — ננתח את המקרה שלך תוך יום אחד ונעריך לוחות זמנים. אינטגרציה בסיסית אורכת 1 עד 3 ימי עסקים, עם מפתחות סשן עד 5 ימים. העלות מתחילה מ-$2,000 עבור אינטגרציה בסיסית. אל תאבד המרות בגלל גז — הטמע עסקאות ללא גז עכשיו.







