However, as Ambire Wallet co-founder and CEO Ivo Georgiev pointed out rejoicing for removing the feature, relying on isContract breaks compatibility with account abstraction wallets like Ambire, Argent, and Safe. These wallets use smart contracts to manage users’ funds while abstracting some complexities away from the end user.
According to Georgiev, better ways to prevent issues like $NFT minting abuse and security vulnerabilities exist. The presence of isContract has led to a harmful myth that smart contracts cannot function as user accounts.
You might also like: Ethereum’s account abstraction explained
In response, OpenZeppelin removed the function to push developers to reconsider assumptions about smart contracts and user accounts. This controversial move could accelerate the adoption of account abstraction and its associated benefits.
Safe — a decentralized custody protocol previously known as Gnosis Safe — developer Misha highlighted legitimate use cases of isContract, like ensuring that added Safe modules are valid contracts. However, Georgiev argued that there are better solutions that don’t preclude important account abstraction techniques.
The OpenZeppelin documentation warns that isContract should not be relied upon as the sole determiner of contract or EOA status. According to him, with clever programming, bots can return false positives or negatives.
This debate represents an important step forward as Ethereum builders rethink outdated assumptions and plant the seeds for the next generation of user-friendly decentralized applications. Removing isContract forces developers to find alternative solutions, ultimately benefiting end users by stopping discrimination against abstracted accounts.
Read more: Vitalik Buterin shares insights on Ethereum’s account abstraction journey