Written by Pablo Gómez
Founder & CEO at Metlabs · Reviewed on October 11, 2026
ERC-1271 defines a single function, isValidSignature(bytes32 hash, bytes signature), that returns a selector. If the signature is valid, the contract returns the magic value 0x1626ba7e; any other value marks it invalid. The validation logic is decided by the contract itself: a multisig checks for N of M signatures, and a smart account can verify passkey, WebAuthn or session-key signatures. Libraries like OpenZeppelin's SignatureChecker first try ecrecover for externally owned accounts and, if the address is a contract, call isValidSignature.
It is a pillar of account abstraction. Without ERC-1271, smart accounts could not authenticate on applications that expect a signature. Web3 login under the Sign-In with Ethereum standard works with contract wallets thanks to this method, and it lets off-chain EIP-712 signatures issued by multisigs and smart wallets be accepted by DEXs, NFT marketplaces and permits. It is the piece that connects smart accounts with the rest of the on-chain ecosystem.
The standard, titled Standard Signature Validation Method for Contracts, is in Final status. Safe, formerly Gnosis Safe, validates its multisig signatures through isValidSignature, and OpenSea's Seaport along with many marketplaces accept orders signed by contract wallets thanks to ERC-1271. Wallets such as Argent use it for authentication, and infrastructure providers document it as a requirement to support smart contract wallets. EIP-6492 extends the idea to validate signatures from accounts not yet deployed.
Also known as
- ERC1271
- Standard Signature Validation Method for Contracts





