Интеграция с Alchemy Account Kit
Alchemy Account Kit — полный стек для Account Abstraction от Alchemy: smart account implementation (Light Account), bundler, paymaster и React хуки. Цель: добавить AA в существующий dApp за несколько часов, а не недель.
Компоненты Account Kit
Light Account — минималистичная ERC-4337 совместимая реализация smart account. Дешевле в деплое и использовании, чем 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 без начальных затрат.







