Signing is a cryptographic action that lets a user prove ownership of an address without exposing their private key or initiating an onchain transaction. When a user signs a message, the signed message:
In existing apps, signatures are used to authorize transfers of particular assets, prove ownership of an address to sign into an app, and vote in Decentralized Autonomous Organizations (DAOs).
You can sign an arbitrary string using the EIP-191 standard.
EIP-712 is the standard for signing typed structured data, which improves the readability of messages and helps prevent signing opaque, potentially malicious messages.