Documentation
Write and load the manifest

Write and load the manifest

If you have followed instructions on the previous page, you should now be ready to interact with the Dapp directly from Ledger Live interface to make sure all the basic features work as expected.

Your DApp will be ran inside the Ethereum Dapp Browser (opens in a new tab), which is a separate application loaded inside Ledger Live to handle interactions between a Dapp and the Ledger Live application. Don't hesitate to have a look at this project's Readme (opens in a new tab) to have more information on how to use it and what are the currently supported RPC calls.

To test and integrate your application, you first need to write your application Manifest file. This file must contain some mandatory information, such as the app package names, the components, the permissions needed, the hardware and software features, etc.

Check and if necessary edit your manifest file as described below.

Load your Live App locally on desktop

To load your Live App locally, unlock the Developer mode in Ledger Live and add a local app.

Load your Live App locally on mobile (Android only)

Go to the Settings -> Developer section, and click on Load Platform Manifest you can copy your manifest here and load it.

Example of Manifest (JSON format) for the “Lido” application:

{
  "id": "lido",
  "name": "Lido",
  "url": "https://dapp-browser.apps.ledger.com/v2/",
  "params": {
    "dappUrl": "https://stake.lido.fi/?embed=true",
    "nanoApp": "Lido",
    "dappName": "Lido",
    "networks": [
      {
        "currency": "ethereum",
        "chainID": 1,
        "nodeURL": "wss://eth-mainnet.ws.alchemyapi.io/v2/xxx"
      }
    ]
  },
  "homepageUrl": "https://lido.fi/",
  "icon": "https://cdn.live.ledger.com/icons/platform/lido.png",
  "platform": "all",
  "apiVersion": "^2.0.0",
  "manifestVersion": "1",
  "branch": "stable",
  "categories": ["staking", "defi"],
  "currencies": ["ethereum"],
  "content": {
    "shortDescription": {
      "en": "Stake your ETH with Lido to earn daily staking rewards."
    },
    "description": {
      "en": "Stake your ETH with Lido to earn daily staking rewards."
    }
  },
  "permissions": [
    "account.list",
    "account.request",
    "currency.list",
    "message.sign",
    "transaction.sign",
    "transaction.signAndBroadcast",
    "wallet.info",
    "wallet.userId"
  ],
  "domains": ["https://"]
}

Here is the list of the mandatory fields required in your Manifest file:

| Field | Description | Type | | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ----- | ----------------------------------------------------------------------------------------------------------------------------- | ------ | | id | The identification of your application. Must be in lowercase. | String | | name | The name of your application ("Lido" in this example). | String | | url | The url of the eth-dapp-browser, either running locally or at https://dapp-browser.apps.ledger.com (opens in a new tab) for the production version | String | | params | dappUrl is the URL of your DApp; nanoApp is the plugin needed to clear sign your DApp, if your DApp doesn't require a plugin set the value to Ethereum; dappName should be the same as nanoApp; networks is the list of networks supported by your DApp, Ledger Live currently only support mainnet, BSC and Polygon, the nodeURL param will be set by Ledger in prod to use your node, for testing purposes, you can replace it with your own. | String | | homepageUrl | This for information only. It is is non-critial. For instance, "https://lido.fi/ (opens in a new tab)". | String | | icon | A link to the icon displayed in the Ledger Live Discover section. Will be hosted on Ledger CDN before being released in production. | URL | | platform | To set the platform (desktop, mobile, iOS, Android) on which your service is available. By default, you should set the value to "all". | String | | apiVersion | The API version, by default "0.0.1". | String | | manifestVersion | The manifest version. By default should be "1". | String | | branch | The specific branch used by Ledger to deploy the changes. Can take the values stable | experimental | debug | soon. By default, you should set it to "stable". The value “soon” will mark your app as “Coming soon” and it won’t be usable. | String | | categories | A JSON array of metadata information about your application. For instance : ["staking","defi" ]. You can add as many as you want. It is not used for the moment but will be used for filtering in the future. | List(string) | | currencies | A JSON array of the currency/network being used by your application. For instance ["ethereum",”polygon”]. Leave blank if the App does not require any currency. | List(string) | | content | A description of your service. It will be displayed on the entry card of your application. Type: l18n strings. | L18n strings | | permissions | Leave blank for now. | | | domains | Leave blank for now. | |

Ledger
Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Nano S, Ledger Vault, Bolos are registered trademarks of Ledger SAS