Why do I need to deploy my Ethereum wallet to sign a simple message, for example signing in to Opensea?

Sequence is a smart contract wallet. It provides additional functionality on top of what you can do with traditional EOA's (externally owned accounts).

Like other smart contracts on Ethereum and other EVM-compatible chains, the smart contract bytecode needs to be deployed on-chain through a transaction so that it can be called.

https://eips.ethereum.org/EIPS/eip-1271 is a standard interface for dapps to validate smart contract signatures.

In order for dapps to validate your Sequence wallet signatures, your Sequence wallet needs to be deployed and up-to-date on the chain that the dapp exists on.

In addition, dapps can choose which chain they want to sign a message on, and the signature should only be considered "valid" for that chain. If a website only uses polygon, you shouldn't see the prompt to deploy the Ethereum contract when asked to sign a message. Our game Skyweaver is a perfect example.

With an upcoming upgrade to Sequence called "lazy octopus", you will be able to use our SDK and verify signatures without having to deploy a wallet first -- in order for this to work with OpenSea specifically, they'd also have to use our SDK for Sequence users and hopefully we can get that integrated as they continue to make upgrades for smart wallet support.

Did this answer your question?