EIP-712: Putting Something Readable Before the Sign Button
A wallet can protect a key while leaving its owner unsure what a signature means. EIP-712 gave messages a structure that people could inspect—and left applications responsible for what those signatures authorize.

3-Minute Fast Briefing
- The ParadoxEIP-712, created in September 2017, standardizes the hashing and signing of structured messages.
- The Turning PointDomain information separates signing contexts; an application must still handle repeated use of a signature.
- The LegacyERC-2612 shows the stakes: a message can authorize a token allowance without the owner sending the approval transaction.
Chronological Timeline
EIP-712 is created with named, typed fields and domain separation.
ERC-2612 specifies permit, including a nonce and a submission deadline.
A key can sign something its owner cannot read
On September 12, 2017, Remco Bloemen, Leonid Logvinov and Jacob Evans introduced EIP-712. Its starting problem was ordinary: a wallet could display a long hexadecimal string and ask a person to sign it. The cryptography could work perfectly while the owner had little idea what the message contained. The proposal gave data a defined structure, with named fields and types, so a wallet could show the substance of the request.[1]
The change was more than cosmetic. A sender, a recipient and a quantity could be represented as distinct fields rather than an unexplained byte string. The specification also defined a signing domain, with applicable fields such as an application name, version, chain identifier and verifying contract. The same-looking message in a different context need not produce the same signing result. These fields describe context; they do not certify a business as honest.[1]
The labels become part of the decision
MetaMask’s developer documentation makes the interface consequence explicit. Its eth_signTypedData_v4 method presents structured data for inspection, and it tells developers to treat the main type name, domain name and field names as part of the security interface. A technically correct request with confusing labels can still be hard for a human to judge. The structure supplies an opportunity to explain; the wallet and application must use it well.[2]
Readability therefore answers only one question: what data is being signed? Whether that data authorizes a login, an order or access to tokens depends on the application that accepts it. This is a design inference from the distinction between message representation and application behavior. A neatly arranged confirmation is not, by itself, a recommendation to accept.[1][2]
A permission can travel ahead of a transaction
ERC-2612, created on April 13, 2020, provides a concrete example. Its permit message names an owner, a spender, a value, a nonce and a deadline. A valid submission sets the spender’s allowance to that value and advances the nonce. Anyone can submit the permit; the owner need not personally send that approval transaction. The signature itself does not transfer tokens, but the resulting allowance can enable a later transferFrom operation.[3]
The nonce stops that permit from being successfully reused after it is consumed. The deadline limits when it can be submitted; it does not automatically expire an allowance already established. Someone still has to submit an onchain transaction for permit to take effect. EIP-712 expressly leaves replay handling to applications. Reading a signature request thus means considering both its fields and the action that a receiving contract will perform. The button stayed small; the decision in front of it became more visible.[1][3]
Connected Stories in this Universe
Explore the chain reaction of historical breakthroughs, blunders, and legends.

Trezor: The Small Screen That Asks for Your Consent
Keeping a key safe does not decide where the money should go. That is why the little screen matters.
Read story →
One Signature Can Rewrite Your Wallet: Ethereum's EIP-7702 Paradox
Ethereum's Pectra upgrade let plain key wallets run code through EIP-7702 delegation. The persistence that enables batching and recovery also became phishing's newest target.
Read story →Sources & References
- [1]Source 1: EIP-712: motivation, domain separation and replay boundaryEthereum Improvement Proposals · 2017-09-12Accessed 2026-09-24
- [2]Source 2: MetaMask: structured signing and the user-facing security interfaceMetaMaskAccessed 2026-09-24
- [3]Source 3: ERC-2612: allowance, nonce, deadline and submission semanticsEthereum Improvement Proposals · 2020-04-13Accessed 2026-09-24