Contract Wallet Signatures and ERC-1271 Verification
Verify contract-wallet signatures using the wallet’s supported interface and historical context, rather than assuming every account has a recoverable EOA signature.

Overview
When translating these concepts into an integration, keep the scope described by the wallet history api with the result. The examples in wallet transaction history and smart contract event logs show how the same distinction affects neighbouring data questions.
Contract wallets can define their own signature-validation logic. An integration that accepts only one externally owned account recovery path can reject legitimate wallets or misinterpret their authorisation model.
Choose the correct verifier
ERC-1271 defines a contract signature-validation interface with a specified success result. The application must check the actual result rather than merely whether the call returned without error. Validation can depend on contract state, authorised signers and implementation version. Network and block context therefore matter to reproducibility.
Worked example: a changed signer set
A wallet accepts a signature under signer set A at one block. Later its owners change. A current validation call can answer a different question from whether the earlier authorisation was valid under the prior state. Keep the intended verification context and policy instead of treating signatures as timeless account properties.
Bound verification work
Test a reverting verifier, unexpected return values, unsupported interfaces and state changes. Use time and resource limits appropriate to the verification environment. A valid contract signature authenticates the specified message under that wallet’s rules; it does not independently authorise unrelated API resources or establish ownership of every wallet mentioned in the payload.
A practical acceptance test
Test the specified success value, an unexpected value, a revert and changed wallet state. Only the intended success result should authenticate the exact message under the chosen context. A historical verification policy must state its block reference. Do not let a successful signature check bypass tenant or resource authorisation for the session that follows.
Questions about the topic
Frequently asked questions
Can every wallet signature be checked by EOA recovery?
No. Contract wallets can require contract-defined validation.
Is any successful call a valid ERC-1271 result?
No. Check the interface’s specified success value.
Standards & technical documentation
