Smart Contract Wallet
A cryptocurrency wallet implemented as a smart contract rather than a traditional externally-owned account, enabling programmable features like transaction batching, automation, and custom security.
A smart contract wallet is an account controlled by code deployed on a blockchain. Its balance belongs to the wallet contract, and the contract decides which actions are valid. This differs from a standard externally owned account, or EOA, where one private key directly authorizes transactions. A smart contract wallet can require several approvals, apply spending rules, batch actions, or define a recovery path because those rules are part of the contract.
How It Works
The wallet contract has an authorization rule. In a multisignature wallet, several owner addresses are registered and a transaction executes only after the required number approve it. In a wallet with social recovery, designated guardians can replace a lost signing key after meeting the contract's threshold and delay rules. Other contracts can enforce daily transfer limits, approved destinations, or a time delay before a large withdrawal is released.
The contract needs a transaction to call it. In a traditional setup, an EOA pays network gas and calls the wallet's execution function. With ERC-4337 account abstraction on Ethereum, a user signs a UserOperation describing the requested action. A bundler submits it to the EntryPoint contract, which checks the wallet's validation logic and executes it if valid. A paymaster may cover the gas under its own rules. ERC-4337 does not make every smart contract wallet the same. Each wallet implementation can use different signature, recovery, and policy logic.
Batching is a common feature. Rather than send one transaction to approve a token and another to deposit it, the wallet can make both calls in one atomic operation. If either call fails, the whole batch reverts. This can simplify an interaction, although it does not remove the gas required to execute each operation.
Concrete Example
A small organization uses a Safe smart contract wallet to manage a treasury. It sets three owner addresses and requires two signatures for each transfer. One owner creates a transaction to send 10 ETH to a contractor. The transaction is recorded as pending. A second owner reviews the recipient and amount, then signs. Anyone can submit the approved transaction to the network, where the Safe contract verifies the two approvals and sends the ETH.
The organization can add a module or policy that delays transfers above a stated amount. It could also batch an ERC-20 approval and a deposit into a lending protocol. The wallet's funds are not protected merely because it is called a multisig. Protection comes from the deployed contract, the selected threshold, the security of each owner key, and the correctness of any module attached to it.
Limitations And Risks
Smart contract wallets have a larger technical attack surface than a simple EOA. A bug in authorization, signature validation, upgrade logic, or an installed module can expose all funds. An audited contract lowers some risk but cannot guarantee safety, especially when the wallet is upgraded or connected to new modules.
Recovery changes the threat model. Guardians can help after key loss, but a group of compromised guardians may take control of the wallet. A low multisig threshold can be convenient but weak. A high threshold can leave funds inaccessible when owners are unavailable. Timelocks help give owners time to react, but they also slow legitimate emergency actions.
Compatibility can be uneven. Some applications, airdrops, or exchanges assume that the user is an EOA and may not support contract-wallet signatures or contract addresses. ERC-4337 wallets depend on bundlers, the EntryPoint design, and often paymaster services. If these services reject an operation or are unavailable, the wallet may be harder to use until another compatible service is found.
Deployment and execution can cost more gas than an EOA transaction, particularly on mainnet. A contract wallet may also need an initial deployment step. Sponsored gas can improve the experience for the user, but it shifts the cost and policy control to a paymaster.
Relevant Distinctions
A smart contract wallet is not the same as a software wallet. Software such as a browser extension can control an EOA, a contract wallet, or both. It is the on-chain account type, not the user interface, that makes a wallet a smart contract wallet.
Multisig is a wallet policy, not a separate account type. Many multisigs are smart contract wallets, but a smart contract wallet can have one signer plus recovery and spending rules. Account abstraction is the broader approach of making account behavior programmable. ERC-4337 is one Ethereum standard for this approach. It lets smart contract accounts operate without a consensus-layer change, but it does not turn an EOA into a contract or eliminate private-key security.