---
title: Get started
category: how-to
---

# 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

> **Note:** 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:

```json
{
  "$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](https://github.com/LedgerHQ/clear-signing-erc7730-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

[<div className="absolute top-4 right-4 text-xs text-emerald-500">RECOMMENDED</div>
<div className="font-semibold mb-2">JSON Builder →</div>
<div className="text-sm text-gray-400 mb-3">Visual tool that generates the metadata file in under 10 minutes.</div>
<div className="text-xs text-gray-500">Best for: single-contract deployments, standard function signatures, no EIP-712</div>](./json-builder)

[<div className="font-semibold mb-2">Manual Implementation →</div>
<div className="text-sm text-gray-400 mb-3">Write the metadata file directly for full control over every field.</div>
<div className="text-xs text-gray-500">Best for: EIP-712 messages, multi-chain deployments, nested tuples, reusable includes</div>](./manual-implementation)

## 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](../../device-app/integration/how-to/plugin) if your contract has:

- <span className="text-gray-500 mt-0.5">•</span>
  <span>Highly dynamic execution patterns that change based on on-chain state</span>
- <span className="text-gray-500 mt-0.5">•</span>
  <span>Complex nested data structures requiring custom parsing logic</span>
- <span className="text-gray-500 mt-0.5">•</span>
  <span>Non-standard encoding, compression, or obfuscation</span>
- <span className="text-gray-500 mt-0.5">•</span>
  <span>Security requirements beyond standard validation</span>

Start with a metadata file. You can upgrade to a plugin later if needed. [Contact support](https://support.ledger.com/contact-us) 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 integrate the SDK so your dApp can display Clear Signing directly, without relying on an intermediary wallet extension. See the [wallet implementation guide](../for-wallets) 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](./validate-submit) 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.
