← agentwallet.md

MetaMask Smart Accounts

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