Інтеграція з Alchemy Account Kit
Alchemy Account Kit — повний стек для Account Abstraction від Alchemy: смарт-рахунок реалізація (Light Account), bundler, paymaster та React хуки. Ціль: додати AA до існуючого dApp за годинн, а не тижні.
Компоненти Account Kit
Light Account — мінімалістична ERC-4337 сумісна реалізація смарт-рахунку. Дешевше у деплою та використанні, ніж Safe. Підтримує: single owner, session keys, EIP-1271 signature validation.
Modular Account — розширюваний рахунок на базі ERC-6900 (Modular Smart Account стандарт). Дозволяє додавати плагіни: multisig, spending limits, соціальне відновлення.
Gas Manager (Paymaster) — спонсирування газу з політиками: по сумі, по числу операцій, по whitelist адрес контрактів.
Alchemy Bundler — вбудований bundler в інфраструктуру Alchemy, з SLA та підтримкою всіх major EVM ланцюгів.
Інтеграція
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 });
React хуки
Account Kit надає @alchemy/aa-alchemy/react з готовими хуками:
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>
);
}
Session Keys
Account Kit підтримує session keys — тимчасові ключі з обмеженими правами. Користувач один раз підтверджує створення session key, потім застосунок може виконувати транзакції без кожен раз запитування підпису:
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 за сесію
});
Це особливо цінно для ігор та застосунків з частими малими транзакціями.
Інтеграція Alchemy Account Kit займає 1-2 тижні. Включає вибір типу рахунку (Light vs Modular), настройку Gas Manager політик, інтеграцію з існуючим auth флоу та тестування на testnets. Alchemy надає щедрий free tier — підходить для MVP без початкових витрат.







