Ledger Live Wallet – Getting Started™ Developer Portal

Welcome to the Ledger Wallet Developer Portal. Formerly known as Ledger Live, the application is now streamlined as Ledger Wallet to better reflect its function as a secure gateway to the Web3 ecosystem. This guide is your starting point for integration.

Wallet API: The Core Integration

The **Wallet API** is the primary method for integrating dApps (Live Apps) into the Ledger Wallet environment. This allows secure communication between your application and the user's Ledger signer (hardware device).

Architecture Overview and Principles

Understanding the fundamental architecture ensures you build a secure and compliant application. The design mandates that private keys never leave the Ledger signer.

The Role of the Ledger Signer

The Ledger Signer (hardware device) is the **single source of truth** for key management and transaction signing. Your Live App merely prepares the data.

Key Management Isolation

All cryptographic operations are executed on the device, shielded from the host machine or mobile device.

Transaction Payload Format

Details on RLP, EIP-1559, and other protocol-specific transaction formats that must be adhered to before submission.

Live App Integration Flow

A step-by-step process for a user launching and interacting with your Live App within the Ledger Wallet interface.

App Launch and Context Initialization

How your application receives the necessary context from the Ledger Wallet container upon launch.

Communication Bridge Setup

Establishing the secure iframe/webview communication link using the Wallet API Client.

Getting Started with the Wallet API Client

The Wallet API Client is a dedicated library designed to facilitate integration with minimal boilerplate code.

Installation and Setup

Instructions for installing the necessary npm packages and configuring your local development environment.

NPM Package Installation

Specific command for adding the library to your project dependencies.

Development Environment Configuration

Setting up local server and security headers for testing within Ledger Wallet's development mode.

First API Call: Requesting Accounts

A practical example of using a hook or method to retrieve the user's connected accounts and assets.

Using the `useAccounts` Hook (React)

Demonstrating the asynchronous nature and error handling for account fetching.

Filtering and Asset Display

Best practices for filtering by blockchain family and displaying relevant asset information to the user.

Clear Signing for Enhanced Security

Clear Signing is critical for security and user trust. It ensures that the user's Ledger device displays **human-readable** transaction details, preventing blind signing of malicious payloads.

Implementing Clear Signing

The necessary steps to format and pass complex contract interactions to the device for verification.

Solidity Function Decoding

Mapping complex smart contract function calls and parameters into a clear, understandable format for the Ledger screen.

ERC-20 Transfer Example

A detailed breakdown of how a token transfer is presented clearly on the device.

Security Considerations and Best Practices

Avoiding common pitfalls, such as relying solely on external server data for transaction presentation.

Data Integrity Verification

Techniques for ensuring the data presented to the user matches the payload being signed.

Protocol Support Matrix

Checking the current state of Clear Signing support across different blockchain protocols (e.g., Ethereum, Solana, Polygon).

❓ Frequently Asked Questions (FAQ)

Q: What is the difference between "Ledger Live" and "Ledger Wallet"?
A: **Ledger Live** was the previous name for the companion application. It has been renamed to **Ledger Wallet** to better reflect its function as a secure wallet and Web3 gateway. Ledger is actively updating all documentation and product names to reflect this change.
Q: How do I get my dApp listed in the Ledger Wallet Discover section?
A: You need to integrate your dApp as a **Live App** using the Wallet API Client. Once integration is complete and tested, you must submit your application for review and vetting by the Ledger team. The submission process ensures security and user experience standards are met.
Q: Are the private keys stored in the Ledger Wallet application?
A: **No.** The Ledger Wallet application (formerly Live) manages the interface and communication, but the private keys **never leave** your physical Ledger hardware wallet device (the Ledger Signer). All signing operations occur securely on the device itself.
Q: Which programming languages are supported for Ledger Wallet integration?
A: The official **Wallet API Client** primarily supports modern JavaScript/TypeScript and is often used with frameworks like React. For blockchain or device app development, C/C++ is used for the device firmware, and various SDKs are available for other languages (e.g., Python, Java) for external wallet integrations.
Q: What is 'Clear Signing' and why is it mandatory?
A: Clear Signing is the process of displaying the full, human-readable details of a transaction (e.g., "Send 5.0 ETH to address 0x...") on the secure screen of the Ledger device. It is mandatory because it prevents a user from **blindly signing** a malicious or deceptive transaction, dramatically increasing security.