How to add Clear Signing to your dApp
This guide shows you how to make your protocol’s transactions readable on Ledger signers, using Ledger’s tools to create and submit an ERC-7730 descriptor.
Clear Signing is defined by the open ERC-7730 standard, whose canonical home is clearsigning.org . This guide covers the Ledger path: the tools Ledger provides to generate the descriptor and get it into the registry.
Prerequisites
Before you start, make sure you have the following:
- Your smart contract deployed on an EVM-compatible chain
- Your contract address and ABI (from Etherscan or your deployment artifacts)
- Basic familiarity with JSON
ERC-7730 metadata currently describes EVM-compatible chains.
What you will produce
A Clear Signing descriptor is a JSON metadata file that tells compatible wallets how to display your contract’s transactions. It describes:
- Smart contract functions — the intent and human-readable label for each function users sign (for example, “Send”, “Swap tokens”, “Approve spending”)
- EIP-712 messages — structured data your users sign off-chain (permits, orders, votes)
- Parameter formatting — how to render amounts, addresses, timestamps, and other values
The heart of a descriptor is the display.formats block, which maps each function to an intent and labelled fields:
"display": {
"formats": {
"transfer(address,uint256)": {
"intent": "Send",
"fields": [
{ "path": "_to", "label": "Recipient", "format": "addressOrName" },
{ "path": "_value", "label": "Amount", "format": "tokenAmount", "params": { "tokenPath": "@.to" } }
],
"required": ["_to", "_value"],
"excluded": []
}
}
}See a complete descriptor in the JSON Builder guide or manual implementation.
The process
Create your descriptor
Build your descriptor with the JSON Builder or write it manually. Choose the approach below.
Validate
Run the ERC-7730 validator to confirm the descriptor meets the schema requirements.
Submit
Open a pull request to the Clear Signing Registry .
Deploy
Once your pull request is approved and merged, compatible wallets automatically fetch your descriptor and display human-readable transaction details.
Choose your approach
Use the JSON Builder for single-contract deployments with standard function signatures — it generates the descriptor in under 10 minutes. Use manual implementation for EIP-712 messages, multi-chain deployments, nested tuples, or reusable includes.
Common questions
Do I need a plugin for my smart contract?
Most contracts work with a descriptor alone. You only need a dedicated plugin if your contract has highly dynamic execution patterns that change with on-chain state, complex nested data that needs custom parsing, non-standard encoding, or security requirements beyond standard validation. Start with a descriptor — you can upgrade to a plugin later. Contact support if you are unsure.
My dApp includes a built-in signing interface. What do I need to do?
Complete the descriptor process above, and also integrate the SDK so your dApp can display Clear Signing directly, without relying on an intermediary wallet extension. See the wallet integration guide for the additional steps.
How long does the review process take?
Review times depend on the registry maintainers and on how complex your submission is — submissions covering multiple deployments or EIP-712 schemas take longer. The registry is stewarded by the Ethereum Foundation; see clearsigning.org/build for the review process, and Validate and submit for what reviewers check.
Next steps
You now know the path from contract to Clear Signed transaction. Choose your approach and create your descriptor: