BLACK FRIDAY: Save on Ledger Flex, select Ledger Nano wallets and accessories.

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.

Source Code

A source code is a computer code or programming statements that define how a software functions based on specific instructions.

Full definition

Genesis Block

A genesis block is the first ever block recorded on a blockchain. The block is also known as Block 0 or Block 1.

Full definition

Hard Fork

A hard fork is a significant change that permanently splits a blockchain into two different networks when the nodes fail to reach a consensus.

Full definition