How to add Clear Signing to your dApp

Enable Clear Signing for your protocol in minutes. Create metadata files that transform complex transaction data into human-readable information.

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

Clear Signing currently supports EVM-compatible chains only. Support for Solana, Cosmos, and other protocols is planned.

What you will produce

A Clear Signing metadata file is a JSON document 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

Here is a minimal example for an ERC-20 transfer function:

{
  "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v1.schema.json",
  "context": {
    "contract": {
      "abi": "https://api.etherscan.io/api?module=contract&action=getabi&address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "deployments": [
        { "chainId": 1, "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" }
      ]
    }
  },
  "metadata": {
    "owner": "Circle",
    "info": { "url": "https://www.circle.com/" }
  },
  "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": []
      }
    }
  }
}

The process

Create your metadata file

Build your metadata file using the JSON Builder or write it manually.

Validate

Run the ERC-7730 validator to confirm the file 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 metadata and display human-readable transaction details.

Choose your approach

Common questions

Do I need a plugin for my smart contract?

Most contracts work with a metadata file alone. You only need a dedicated plugin if your contract has:

  • Highly dynamic execution patterns that change based on on-chain state
  • Complex nested data structures requiring custom parsing logic
  • Non-standard encoding, compression, or obfuscation
  • Security requirements beyond standard validation

Start with a metadata file. You can upgrade to a plugin later if needed. Contact support if you are unsure.

My dApp includes a built-in signing interface. What do I need to do?

Complete the metadata process above and also implement the SDK. See the wallet implementation guide for the additional steps.

How long does the review process take?

Pull requests are typically reviewed within 3–5 business days. Complex submissions with multiple contract deployments or EIP-712 schemas may take longer. See the Validate & Submit guide for details on the review criteria.

Contributing to Web3 Safety

Every metadata file you submit helps protect users from blind signing attacks and builds trust in the ecosystem.

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.