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

How to prepare an Earn provider LiveApp

☞ The transition from “Ledger Live” to “Ledger Wallet” and from “wallet” (for the hardware product) to “signer” is still in progress. This page may contain legacy terms that will be updated.

This guide shows you how to prepare an Earn provider LiveApp for Ledger Wallet. A LiveApp is your dapp, or web application, running in Ledger Wallet’s embedded browser.

Users can access a LiveApp that offers staking services from these sections of Ledger Wallet:

  • Accounts, where users can view their accounts and stake available assets
  • Discover, where users can explore a curated catalog of dapps
  • Earn, where users can track staking positions and stake additional assets from eligible accounts

Create your LiveApp

There are two ways to integrate your dapp into Ledger Wallet:

  1. dAppBrowser (EVM only): Create a manifest that points to the dAppBrowser to integrate your dapp into Ledger Wallet.
  2. The Ledger Wallet API: Use this JavaScript library to interact with Ledger wallet signers, such as to sign a transaction, and access information from the connected Ledger wallet, such as the wallet address.

Follow the Discover documentation to create a user interface for Ledger Wallet or embed an existing one.

Meet the LiveApp UX requirements

Your LiveApp must meet these UX requirements:

  • Connect the user’s wallet automatically when they open your LiveApp.
  • Do not allow users to sign in through other wallets.
  • Use a responsive design that displays correctly on all devices.
  • Do not request unlimited token approvals. Request approval only for the number of tokens required to stake or unstake.
  • Use trusted names, such as ENS names.
  • After a successful transaction, such as staking, unstaking, delegation, or claiming rewards, display a confirmation page with the transaction hash so that users can check its status.
  • When applicable, show the staking method, such as native or liquid staking, and the names of the validators to which the assets are delegated.

The Ledger team will review and validate your LiveApp’s user flow against these requirements.

👉

If users receive a liquid or non-liquid token that represents the staking position, inform Ledger of the token’s name and address.

Support direct navigation with URL parameters

Implement URL parameters so that Ledger Wallet can direct users to the correct LiveApp page for actions such as staking or unstaking.

When Ledger Wallet opens one of these URLs, route the user to the screen that matches the specified parameters. Each parameter must correspond to a specific action.

Use these URL parameters:

ParameterTypeExampleDescription
actionstringstakeSpecifies the action to be performed: stake, unstake, manage, or claim_rewards.
accountAddresshex address0xABC…The address of the user executing the action.
accountIdstringjs:2:ethereum:0x…The ID of the user’s account in Ledger Wallet.
cryptoCurrencystringETHThe crypto asset involved in the action.
networkstringarbitrumThe blockchain (network) where the action takes place.
languagestringenThe language preference of the user set in Ledger Wallet.
themestringdarkThe theme preference of the user set in Ledger Wallet.
fix_parametersbooleantrueWhen true, restricts users from changing the network, coins, and connected address within your LiveApp frontend.
validator_addressstring0xVAL…If needed, the validator address related to the action.

Example:

https://earn.provider.widget.com?[accountAddress]=0x…&[cryptoCurrency]=ETH&[network]=arbitrum&[action]=unstake&[language]=en&[theme]=dark&[fix_parameters]=true

Configure your app to recognize these parameters and route users directly to the relevant screens. If a parameter is missing or invalid, provide a fallback, such as the default home or dashboard screen.

Update the manifest

If your LiveApp interacts with third-party smart contracts that you do not own and that already support Clear Signing, update your manifest to specify the dependency.

For example, if your LiveApp interacts with EigenLayer smart contracts that already support Clear Signing and are used by other LiveApps, include the following in your LiveApp manifest:

"dependencies": [ "eigenlayer" ]

Verify the correct field name (dependency vs dependencies) against the manifest schema  before submitting. List the identifiers of third-party protocols whose clear-signed contracts your LiveApp calls.

Contact the Ledger team to confirm whether a third-party smart contract already supports Clear Signing and which value to use for it in your manifest.

Next steps

After you prepare the Earn provider LiveApp, continue with the relevant documentation:

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.