# ERC-4337 Account Abstraction : Guide Complet
L'Account Abstraction (AA) est l'une des innovations majeures pour ameliorer l'UX Ethereum. ERC-4337 permet de creer des smart contract wallets sans fork du protocole.
Probleme Actuel
Les EOA (Externally Owned Accounts) ont des limitations :
- Une seule cle privee = point de defaillance unique
- Pas de recuperation de compte
- Pas de paiement de gas par tiers
- Pas de transactions batch
- Pas de limites de depenses
Solution : Account Abstraction
Transformer chaque compte en smart contract pour :
- Multisig : plusieurs signatures requises
- Social recovery : recuperation via amis
- Gasless transactions : sponsorship possible
- Batch operations : plusieurs actions en une tx
- Custom logic : regles personnalisees
Architecture ERC-4337
interface IAccount {
function validateUserOp(
UserOperation calldata userOp,
bytes32 userOpHash,
uint256 missingAccountFunds
) external returns (uint256 validationData);
}
struct UserOperation {
address sender;
uint256 nonce;
bytes initCode;
bytes callData;
uint256 callGasLimit;
uint256 verificationGasLimit;
uint256 preVerificationGas;
uint256 maxFeePerGas;
uint256 maxPriorityFeePerGas;
bytes paymasterAndData;
bytes signature;
}
Implementation Simple
contract SimpleAccount is IAccount {
address public owner;
function validateUserOp(
UserOperation calldata userOp,
bytes32 userOpHash,
uint256
) external returns (uint256) {
bytes32 hash = userOpHash.toEthSignedMessageHash();
address recovered = hash.recover(userOp.signature);
return recovered == owner ? 0 : 1;
}
function execute(address dest, uint256 value, bytes calldata func) external {
require(msg.sender == address(this));
(bool success,) = dest.call{value: value}(func);
require(success);
}
}
Cas d'Usage 2026
Adoption
- Wallet : Argent, Safe, Biconomy
- Paymasters : Pimlico, Stackup
- Bundlers : Nombreux providers
Conclusion
ERC-4337 democratise Ethereum. Apprenez a implementer l'AA sur Solingo !