New: Introducing the world's first secure touchscreen hardware wallets

Shop Now

Up your Web3 game

Ledger Academy Quests

  • Test your knowledge
  • Earn POK NFTs
Play now See all quests

EIP-712 Meaning

Feb 23, 2024 | Updated Feb 23, 2024
EIP-712 is a standard dictating how to structure and sign data on Ethereum so that it is both human-readable and machine-verifiable. .

What Is EIP-712?

Ethereum Improvement Proposal 712 (EIP-712) defines the general standard that enables Ethereum wallets to display data in a structured, human-readable, and machine-verifiable format. 

This specification improves on EIP-191, the foundational signed data scheme that concealed users’ private keys when approving transactions. It was implemented to streamline the verification of off-chain signatures within the Ethereum ecosystem, thereby enhancing the ecosystem’s security and user experience. 

Before the implementation of EIP-191, wallets displayed messages to users as hashes in unreadable hexadecimal strings. This made it challenging for users to verify the accuracy of data during transaction signing. Consequently, a malicious dApp could manipulate users into approving incorrect transaction data by sending an opaque or complex prompt. The dApp, for example, could deceive the user into paying an unnecessarily high gas fee. This vulnerability threatened the ecosystem’s general security and usability.

While EIP-191 made some progress by making messages human-readable, it presented data in an unstructured way, and thus, still difficult to use. This led to the implementation of EIP-712, which simplified the whole process of signing data. 

The specification introduced typed data – structured data consisting of type information. This enabled developers to parse data and identify its components in a message, given its known structure. Additionally, it allows users to verify the authenticity of messages before signing them, thereby enhancing security.

EIP-712 on Ledger

By introducing typed data, this specification allows crypto wallets to analyze and present messages to users in a user-friendly and secure manner. For example, Ledger devices grant developers control over the precision with which their messages are displayed on the devices.

A Ledger device technically has three levels of support for messages – blind signing, transparent signing, and clear signing.

  • Blind signing – Blind signing resembles the developer asking a user to approve an unreadable and incomprehensible message or without providing the full details. That is, the developer is not utilizing the EIP-712 specification. 
  • Transparent signing – The developer converts the hexadecimal string to a human-readable format by implementing this specification. However, the message contains full content, including technical information, which makes it difficult for the user to identify the key information.
  • Clear signing – By leveraging the Ledger device’s capacity to parse or analyze the message’s content, the developer can define the display parameters and content. This allows users to precisely know and understand what they are signing – thereby achieving clear signing

Check out the full article for a more comprehensive look into how the EIP-712 specification enables Ledger devices to promote clear signing transactions and messages.

Minting

Minting in the context of blockchain refers to the mechanism through which new coins or tokens are produced and introduced into circulation.

Full definition

Stablecoin

Stablecoins are a type of cryptocurrency that is pegged or tied to another asset, such as fiat currencies or gold.

Full definition

Oracle

Oracles are bridges that connect blockchains and smart contracts with external systems and off-chain data. They are third-party services that transmit information from external sources into smart contracts to help them execute based on predefined…

Full definition