What is ERC-7730? Clear Signing Standard on Ethereum Explained
A quick guide to ERC-7730, Ethereum’s Clear Signing standard for making transaction intent readable before signing.
ERC-7730 is the first standard attempt to solve a 2 billion dollar problem.
And the problem is essentially the basis of cryptographic money: transaction signing. Let's talk numbers:
- Bybit faced a ~$1.46B hack due to a signing interface manipulation.
- Phishing attacks on Ledger Connect Kit cost $600K.
- Radiant Capital suffered a ~$50M loss via transaction data manipulation.
All the above expose the same vulnerability: users approve what the wallet displays, while the chain executes opaque calldata or signatures.
This is called 'blind signing'. Simply put, humans have the power to authorize and approve transaction data in the form of bytecodes which they cannot read.
ERC-7730 is Ethereum's first coordinated attempt to change transaction signing from 'trust the interface' into 'verify the intent'.
This blog breaks down what clear signing and ERC-7730 are, how it works, and what it means to the cryptocurrency stack as a whole.
What is Clear Signing?

Clear Signing enables wallets to display human-readable intent and details before a user signs the transaction, replacing the 'blind signing' of raw bytecode.
Instead of showing raw calldata, hashes, or a generic "Sign message" prompt, the wallet should explain the action in plain English:
- send USDC,
- approve a spender,
- swap tokens,
- bridge assets, or
- transfer contract ownership.
ERC-7730 is Ethereum's standard for doing this consistently.
This standard lets smart contract teams publish descriptors that tell wallets how to decode and display specific contract interactions.
Remember, clear signing doesn't make transactions automatically safe. It makes the transaction data and intent legible, helping users verify what they are signing.
Okay. Now, how does ERC-7730 and clear signing work?
How ERC-7730 Works

The preamble to this Ethereum standard is "What You See Is What You Sign".
To make this happen, ERC-7730 works through transaction descriptors. They are structured JSON files that map smart contract functions to human-readable signing messages.
A descriptor tells the wallet:
- which contract and chain it applies to
- which function is being called
- which parameters matter
- how those parameters should be displayed
- what final message the user should see before signing
Instead of showing a raw approve(address,uint256) call, wallets using ERC-7730 descriptor can display: Approve {spender} to spend {amount} {token}
Let's understand how this looks in actual operation.
The Anatomy of an ERC-7730 Descriptor
An ERC-7730 descriptor is a JSON file that tells wallets how to turn contract calls into readable signing prompts.
It has three main sections:
Context
The context section explains when the wallet should use a descriptor. It links the file to one or more contract deployments, usually by chainId and address.
When a user signs a transaction, the wallet checks whether the target contract and network match a known descriptor.
Metadata
The metadata section adds supporting context. It can include the protocol owner, project URL, contract name, token details, constants, enums, or fallback values.
This helps wallets display values more cleanly instead of showing raw addresses, integers, or unexplained parameters.
Display
The display section does the actual translation work. Inside display.formats, each key is a human-readable ABI function signature, such as:
swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] path,
address to,
uint256 deadline
)
For each function, the descriptor defines an intent, an optional interpolatedIntent, and a list of fields the wallet should show.
Each field points to a decoded calldata value using paths like #.amountIn, #.to, or #.deadline, then tells the wallet how to format it.
For example:
{
"path": "#.amountIn",
"label": "Send",
"format": "tokenAmount",
"params": {
"tokenPath": "#.path[0]"
}
}
This tells the wallet:
- take the
amountInparameter, - label it as "Send",
- format it as a token amount, and
- use
path[0]to identify which token provides the ticker and decimals.
Remember, the transaction still executes the same way onchain. ERC-7730 only gives wallets a standard way to explain what the user is about to sign.
However, display is only one part of signing security. Here's why ERC-7730 is still an incomplete solution.
What ERC-7730 Does Not Solve
ERC-7730 is important, but it is easy to overstate what it does. Exactly why this section is important to understand its limitations.
Readable does not mean verified. A descriptor can say "Approve spender to use USDC," but ERC-7730 does not prove that the descriptor is accurate, complete, or honest.
Clear prompts can still authorize a bad action. The wallet may display the transaction correctly while the user still approves a malicious contract, unsafe allowance, or compromised frontend flow. A wallet may display the transaction accurately, but the user can still approve a malicious contract, excessive allowance, or risky protocol interaction.
Descriptors can lag behind contracts. If a proxy upgrades, a router changes behavior, or a function's meaning shifts, an old descriptor may still render a clean prompt.
Descriptors struggle with complex execution paths. Batched calls, delegatecalls, routers, and nested calldata can make one transaction do more than the visible function suggests.
Also, for clear signing to work reliably and be effective, it has a lot of key dependencies on:
- trusted registries,
- transaction simulation,
- metadata checks, and
- wallet-level risk warnings.
This is why it's important to echo the limitation again: ERC-7730 makes transactions easier to understand, not automatically safe to sign.
ERC-7730: What's Next?
ERC-7730 is already live at the registry layer, and Ledger is the clearest production implementation today. But there's a larger scope for clear signing.
As account abstraction matures, users will sign fewer one-off transactions and grant more scoped permissions:
- spend limits,
- session keys,
- approved contracts,
- delegated actions, and
- recurring policies.
That makes transaction intent even more important.
A smart wallet cannot enforce good rules if it cannot clearly understand what an action means.
The same applies to AI agents and autonomous execution.
If agents are going to initiate swaps, payments, rebalances, or contract calls on behalf of users, they need more than raw calldata.
They need a semantic layer that can be read by wallets, policy engines, simulators, and eventually other agents.
ERC-7730 is an early step in that direction.
It starts with human-readable signing, but its long-term value may be machine-readable intent: a shared way for wallets, apps, and agents to understand what is being authorized before execution happens.
About Quicknode
Founded in 2017, Quicknode provides world-class blockchain infrastructure to developers and enterprises. With 99.99% uptime, support for 80+ blockchains, and performance trusted by industry leaders, we empower builders to deploy and scale next-generation applications across Web3.
Start building today at Quicknode.com.