שילוב Alchemy Account Kit: חשבונות חכמים תוך שבועיים
הבעיה: משתמשים משלמים גז מהארנק שלהם—מחסום לאימוץ המוני
בכל פעם שמשתמש חדש רוצה להטביע NFT או להחליף טוקן ב-dApp שלך, חייבים להיות לו ETH בארנק עבור גז. זה מנתק עד 80% מהקהל שלא רוצה לטרוח לקנות טוקן מקורי. Alchemy Account Kit פותר זאת באמצעות Account Abstraction (ERC-4337): המשתמש יכול לשלם גז בטוקנים, או שאתה מממן גז דרך Paymaster.
שילבנו את Account Kit עבור מספר פרוטוקולי DeFi ומשחקים. בפרויקט DeFi אחד, צמצמנו את תהליך ההרשמה מ-5 קליקים ל-1, והגדלנו את שיעור ההמרה להרשמה ב-38%. להלן, אנו מפרקים כיצד אנו עושים זאת—עם קוד, השוואות ומלכודות טיפוסיות.
רכיבים של Alchemy Account Kit
Light Account — מימוש ERC-4337 מינימלי. זול יותר לפריסה ולשימוש מאשר Safe. תומך ב: בעלים יחיד, מפתחות סשן, EIP-1271.
Modular Account — חשבון ניתן להרחבה המבוסס על ERC-6900 (Modular Smart Account). מאפשר הוספת תוספים: multisig, מגבלות הוצאה, שחזור חברתי.
Gas Manager (Paymaster) — מימון גז עם מדיניות: לפי סכום, לפי מספר פעולות, לפי רשימת כתובות חוזה מורשות.
Alchemy Bundler — bundler מובנה עם SLA של 99.9% ותמיכה בכל רשתות ה-EVM המרכזיות.
Light Account לעומת Modular Account: מה לבחור?
| תכונה | Light Account | Modular Account |
|---|---|---|
| תקן | ERC-4337 בסיסי | ERC-6900 (מודולרי) |
| התאמה אישית | מינימלית, רק בעלים | תוספים: multisig, מגבלות הוצאה, שחזור חברתי |
| גז | זול יותר (חוזה יחיד) | יקר יותר אך גמיש |
| מתי להשתמש | MVP, אפליקציות פשוטות | לוגיקה מורכבת, ארגונים |
למה להשתמש ב-Alchemy Bundler המובנה?
ה-bundler הוא הרכיב הקריטי ביותר: הוא מאגד פעולות משתמש, חותם עליהן ומגיש אותן לרשת. Alchemy מריץ bundler משלו עם SLA של 99.9% ותמיכה בכל ה-L2 המרכזיים (Polygon, Arbitrum, Optimism, Base). לאחר ההתקנה, הסנכרון עם הרשת אורך דקות, לא ימים. לייצור, אנו ממליצים עליו—אתה מקבל ערבויות זמינות ותמיכה עדיפה.
כיצד להגדיר את ה-Gas Manager (Paymaster)?
ה-Gas Manager מממן גז באמצעות מדיניות. בלוח הבקרה של Alchemy, אתה יוצר מדיניות, מגדיר מגבלות ומקבל policyId. דוגמת הגדרה:
דוגמת הגדרה בקוד (לחץ להרחבה)
import { createModularAccountAlchemyClient } from "@alchemy/aa-alchemy";
import { LocalAccountSigner, sepolia } from "@alchemy/aa-core";
import { http } from "viem";
const client = await createModularAccountAlchemyClient({
apiKey: "YOUR_ALCHEMY_API_KEY",
chain: sepolia,
signer: LocalAccountSigner.privateKeyToAccountSigner(privateKey),
gasManagerConfig: {
policyId: "YOUR_GAS_POLICY_ID",
},
});
// Отправка user operation без ETH на кошельке
const { hash } = await client.sendUserOperation({
uo: {
target: contractAddress,
data: encodeFunctionData({
abi,
functionName: "mint",
args: [],
}),
value: 0n,
},
});
await client.waitForUserOperationTransaction({ hash });
לאחר השילוב, המשתמש לא שם לב שהעסקה משולמת—הכל מכוסה על ידי ה-dApp. הלקוחות שלנו חוסכים עד 40% על גז בזכות מדיניות אופטימלית.
React Hooks
Account Kit מספק import { createModularAccountAlchemyClient } from "@alchemy/aa-alchemy"; import { LocalAccountSigner, sepolia } from "@alchemy/aa-core"; import { http } from "viem"; const client = await createModularAccountAlchemyClient({ apiKey: "YOUR_ALCHEMY_API_KEY", chain: sepolia, signer: LocalAccountSigner.privateKeyToAccountSigner(privateKey), gasManagerConfig: { policyId: "YOUR_GAS_POLICY_ID", }, }); // Отправка user operation без ETH на кошельке const { hash } = await client.sendUserOperation({ uo: { target: contractAddress, data: encodeFunctionData({ abi, functionName: "mint", args: [] }), value: 0n, }, }); await client.waitForUserOperationTransaction({ hash }); עם hooks מוכנים לשימוש:
import {
AlchemyAccountProvider,
useSmartAccountClient,
useSendUserOperation,
} from "@alchemy/aa-alchemy/react";
function MintButton() {
const { client } = useSmartAccountClient({ type: "ModularAccount" });
const { sendUserOperation, isSendingUserOperation } = useSendUserOperation({
client,
waitForTxn: true,
});
return (
<button
onClick={() =>
sendUserOperation({
uo: {
target: NFT_ADDRESS,
data: mintCalldata,
value: 0n,
},
})
}
disabled={isSendingUserOperation}
>
{isSendingUserOperation ? "Minting..." : "Mint NFT"}
</button>
);
}
מפתחות סשן
Account Kit תומך במפתחות סשן—מפתחות זמניים עם הרשאות מוגבלות. המשתמש מאשר את מפתח הסשן פעם אחת, ואז האפליקציה יכולה לבצע עסקאות ללא בקשת חתימה בכל פעם:
const sessionKey = await client.createSessionKey({
expirationTime: Math.floor(Date.now() / 1000) + 3600, // 1 час
permissions: [
{
type: "contract",
address: GAME_CONTRACT,
functionSelectors: [MOVE_SELECTOR, ATTACK_SELECTOR], // только конкретные функции
},
],
spendingLimit: parseEther("0.01"), // максимум 0.01 ETH за сессию
});זה חשוב במיוחד למשחקים ואפליקציות עם עסקאות קטנות תכופות.
כיצד אנו משלבים את Account Kit: תהליך שלב-אחר-שלב
| שלב | משך | תוצאה |
|---|---|---|
| אנליטיקה | 1-2 ימים | איסוף ארכיטקטורת dApp, זרימת אימות, תדירות עסקאות, תקציב גז |
| בחירת סוג חשבון | יום אחד | החלטה: Light או Modular Account. אם נדרשים מפתחות סשן, רק Modular |
| הגדרת Gas Manager | 2-3 ימים | מדיניות, תקציב, בדיקות על testnet |
| שילוב SDK | 3-4 ימים | חיבור @alchemy/aa-alchemy/react, הגדרת חותם (Web3Auth, Privy, או אימייל) |
| שיפוץ ממשק משתמש | יומיים | החלפת כפתור "שלח" ברכיב המשתמש ב-import { AlchemyAccountProvider, useSmartAccountClient, useSendUserOperation, } from "@alchemy/aa-alchemy/react"; function MintButton() { const { client } = useSmartAccountClient({ type: "ModularAccount" }); const { sendUserOperation, isSendingUserOperation } = useSendUserOperation({ client, waitForTxn: true, }); return ( <button onClick={() => sendUserOperation({ uo: { target: NFT_ADDRESS, data: mintCalldata, value: 0n }, }) } disabled={isSendingUserOperation} > {isSendingUserOperation ? "Minting..." : "Mint NFT"} </button> ); } |
| בדיקות | 2-3 ימים | בדיקת reorg, גז לא מספק, פעולות שנדחו עם Tenderly |
| פריסה | יום אחד | פרסום ל-mainnet, ניטור דרך לוח הבקרה של Alchemy |
המחזור כולו אורך 1–2 שבועות. אנו כוללים תיעוד עם דוגמאות קוד והדרכה לצוות.
מה כלול בשירות
- בחירה והתאמה אישית של חשבון חכם (Light או Modular) — turnkey
- הגדרת Gas Manager עם מדיניות מימון
- שילוב עם אימות קיים (אימייל, חברתי, Web3)
- התאמת ממשק React ל-hooks של Account Kit
- בדיקות על testnet ו-mainnet
- תיעוד ו-storybook של רכיבים
ביצענו עשרות שילובים עבור פרוטוקולי DeFi ושווקי NFT. Alchemy Account Kit הוא כלי בוגר אך דורש הבנה עמוקה של ERC-4337. קבל הערכה חינמית של הפרויקט שלך—צור קשר.
טעויות שילוב טיפוסיות
בעת השילוב, חשוב להימנע מ: שימוש ב-const sessionKey = await client.createSessionKey({ expirationTime: Math.floor(Date.now() / 1000) + 3600, // 1 час permissions: [ { type: "contract", address: GAME_CONTRACT, functionSelectors: [MOVE_SELECTOR, ATTACK_SELECTOR], // только конкретные функции }, ], spendingLimit: parseEther("0.01"), // максимум 0.01 ETH за сессию }); בייצור (לא בטוח—החלף ב-Web3Auth או WalletConnect); הזנחת ניהול nonce (שונה מ-EOA); אי בדיקת מדיניות Gas Manager כדי למנוע חריגות תקציב. אנו מתחשבים בנקודות אלה בכל פרויקט.
הזמן את השילוב שלך היום כדי להגדיל את שיעור ההמרה של ה-dApp שלך. צור קשר כדי לדון בפרטים.







