1---2name: smart-accounts-kit3description: Build dApps with MetaMask Smart Accounts Kit — ERC-4337 smart accounts, delegations, and Advanced Permissions (ERC-7715)4---56# MetaMask Smart Accounts Kit78## When to use910- You want to create ERC-4337 smart accounts (Hybrid, MultiSig, or Stateless7702)11- You want to send user operations or batch transactions via bundlers12- You want to configure signers (EOA, passkey/WebAuthn, multisig, wallet client)13- You want to implement gas abstraction with paymasters14- You want to create, sign, or redeem delegations (ERC-7710)15- You want to request Advanced Permissions via MetaMask extension (ERC-7715)16- You want to build automated backend services (DCA bots, keeper services) using delegations17- You want to implement session accounts for AI agents or automated trading18- You want to set up parallel user operations with nonce keys1920## Installation2122```bash23npm install @metamask/smart-accounts-kit permissionless24```2526## Which smart account type to use2728| Name | Usage |29|------|-------|30| Hybrid | A flexible account with EOA, wallet client, and passkey (WebAuthn) signers. The most flexible option for standard dApp users. |31| MultiSig | Requires multiple signers to meet a threshold before transactions execute. Best for treasury, DAO, or shared custody use cases. |32| Stateless7702 | Upgrades an existing EOA to a smart account using EIP-7702 while keeping the same address. Best for users with existing embedded EOAs. |3334If the user hasn't specified which implementation they need, present the options.3536## Delegations vs Advanced Permissions3738| Name | Usage |39|------|-------|40| Delegations (ERC-7710) | You create, sign, and manage delegations programmatically. The delegator is a smart account you control. You handle the full lifecycle: creation, signing, storage, and redemption. |41| Advanced Permissions (ERC-7715) | You request permissions from a MetaMask user through a human-readable UI in the extension. MetaMask creates and enforces the delegations internally. The user can review and adjust parameters before approving. |4243Advanced Permissions use delegations under the hood — ERC-7715 creates ERC-7710 delegations internally. If the user hasn't specified which to use, present the options.4445## API references4647| Use case | Reference | Workflows |48|----------|-----------|-----------|49| Create a smart account | [toMetaMaskSmartAccount](./references/smart-accounts.md) | [Create hybrid account](./workflows/create-hybrid-account.md), [Create multisig account](./workflows/create-multisig-account.md), [Create 7702 account](./workflows/create-7702-account.md) |50| Create a delegation | [createDelegation](./references/delegations.md) | [Create delegation](./workflows/create-delegation.md), [Create redelegation](./workflows/create-redelegation.md) |51| Request ERC-7715 permissions | [requestExecutionPermissions](./references/advanced-permissions.md) | [Request permissions](./workflows/request-permissions.md), [Redeem — smart account](./workflows/redeem-permissions-smart-account.md), [Redeem — EOA](./workflows/redeem-permissions-eoa.md) |5253## Workflows5455| Use case | Workflow |56|----------|----------|57| Create a Hybrid smart account | [Create hybrid account](./workflows/create-hybrid-account.md) |58| Create a MultiSig smart account | [Create multisig account](./workflows/create-multisig-account.md) |59| Create a Stateless7702 smart account | [Create 7702 account](./workflows/create-7702-account.md) |60| Create and sign a delegation | [Create delegation](./workflows/create-delegation.md) |61| Create a delegation chain (redelegation) | [Create redelegation](./workflows/create-redelegation.md) |62| Redeem a delegation when the delegate is a smart account | [Redeem delegation — smart account](./workflows/redeem-delegation-smart-account.md) |63| Redeem a delegation when the delegate is an EOA | [Redeem delegation — EOA](./workflows/redeem-delegation-eoa.md) |64| Request ERC-7715 Advanced Permissions | [Request permissions](./workflows/request-permissions.md) |65| Redelegate an ERC-7715 permission context | [Create redelegation for permissions](./workflows/create-redelegation-permissions.md) |66| Redeem ERC-7715 permissions when the session account is a smart account | [Redeem permissions — smart account](./workflows/redeem-permissions-smart-account.md) |67| Redeem ERC-7715 permissions when the session account is an EOA | [Redeem permissions — EOA](./workflows/redeem-permissions-eoa.md) |6869## Important notes7071- Always use caveats — never create unrestricted delegations.72- Deploy the delegator first — the account must be deployed before redeeming delegations.73- Function call scope defaults to no native token — use `valueLte` to allow it.74- Caveats are cumulative in delegation chains — restrictions stack.75- ERC-7715 requires MetaMask Flask 13.5.0+ or MetaMask stable 13.23.0+, and the user must have a smart account.76- Always check that the project builds successfully after making changes.77- Smart Accounts Kit version: 1.6.0 | Delegation Framework: 1.3.07879## Resources8081- NPM: `@metamask/smart-accounts-kit`82- Contract deployments: [Delegation Framework deployments](https://github.com/MetaMask/delegation-framework/blob/main/documents/Deployments.md)83- Docs: https://docs.metamask.io/smart-accounts-kit84- MetaMask Flask: https://metamask.io/flask