Skip to Content
📢 Breaking change: Applications using LedgerJS for transport implementation should migrate to the Device Management Kit (DMK). Learn more.
DocumentationClear SigningFor dAppsGet Started

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:

Last updated on
Ledger
Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Stax, Ledger Flex, Ledger Nano, Ledger Nano S, Ledger OS, Ledger Wallet, [LEDGER] (logo), [L] (logo) are trademarks owned by Ledger SAS.