← agentwallet.md

MetaMask Smart Accounts

Last reviewed: 2026-04-28
Wallet Enterprise
Best for: User-delegated agent actions with scoped revocable permissions; agents acting on behalf of users
Not ideal for: Purely autonomous agents with no human principal; non-EVM chains

Key Signals

Key Management
ERC-4337 + ERC-7710 delegation
Chain Support
EVM chains
Integration
SDK / API
Pricing
Freemium

Features

📜
ERC-4337 Account Abstraction
Full account abstraction support via ERC-4337, enabling batched transactions, gas sponsorship via paymasters, and social recovery — all without requiring the user to hold ETH for gas.
🔑
ERC-7710 Delegation (Scoped Permissions)
The delegation toolkit lets users grant agents narrowly scoped, time-bound permissions — e.g., "spend up to 10 USDC on contract X". Delegations are onchain, auditable, and instantly revocable by the user.
⛽
Gas Sponsorship via Paymasters
Integrate paymaster contracts to sponsor transaction fees on behalf of users or agents, enabling gasless UX flows. Works with ERC-4337 UserOperations submitted via any bundler.
🔒
Revocable Agent Access
Users retain full control — delegated permissions can be revoked onchain at any time, providing a safety net when agent behavior needs to be constrained or stopped mid-task.

Ratings

Permission Granularity
4.7/5
EVM Compatibility
4.8/5
Developer Docs
3.9/5
Ease of Setup
3.5/5

Ratings based on documentation review and delegation toolkit README. ERC-7710 is relatively new; expect the ecosystem to mature. Setup complexity reflects account abstraction's inherent learning curve.

Integration

# Install the delegation toolkit npm install @metamask/delegation-toolkit // Create a delegation granting an agent scoped access import { createDelegation, DelegationFramework } from "@metamask/delegation-toolkit"; const delegation = createDelegation({ delegate: agentAddress, // the AI agent's address delegator: userAddress, // the human user's smart account caveats: [ { enforcer: spendingLimitEnforcer, terms: encodeSpendingLimit({ token: USDC, amount: parseUnits("10", 6) }), }, ], }); // User signs the delegation onchain const signedDelegation = await walletClient.signTypedData(delegation); // Agent redeems the delegation to act on user's behalf await DelegationFramework.redeemDelegation(signedDelegation, calldata);

Alternatives & Tradeoffs

Safe Smart Accounts
Better for multisig governance on high-value treasury — highest TVL in the industry
→
Coinbase AgentKit
Better for fully autonomous agents with no user delegation; simpler MPC setup
→
Privy Server Wallets
Better for headless server wallets where no user interaction is required
→