Ledger® Live Developer Portal

Build secure cryptocurrency applications with Ledger's comprehensive developer tools, APIs, and SDKs. Integrate hardware wallet security into your blockchain projects.

npm install @ledgerhq/hw-app-btc npm install @ledgerhq/hw-app-eth Ledger Live Embedded

Developer Features

Ledger Live provides a comprehensive suite of tools and APIs for developers building secure cryptocurrency applications, decentralized finance platforms, and blockchain services.

🔐

Hardware Wallet Integration

Integrate Ledger Nano S, Nano X, and Nano S Plus devices directly into your applications using our JavaScript and React Native libraries.

📱

Ledger Live Embedded

Embed the full Ledger Live experience directly into your applications with our white-label solution and customizable UI components.

Live SDK

Access real-time cryptocurrency data, portfolio information, and transaction history through our comprehensive software development kit.

🔗

Blockchain APIs

Connect to multiple blockchain networks including Bitcoin, Ethereum, Polkadot, and Cosmos with unified API endpoints and consistent data models.

🛡️

Security Modules

Implement enterprise-grade security with our cryptographic libraries and secure element communication protocols for transaction signing.

🌐

Multi-Platform Support

Build for web, desktop, and mobile platforms with our cross-platform development tools and responsive design components.

Software Development Kits

Choose from our specialized SDKs for different development needs and blockchain integrations.

JavaScript SDK

The Ledger JavaScript SDK provides comprehensive tools for web applications to interact with Ledger hardware wallets and blockchain networks.

// Install the SDK
npm install @ledgerhq/hw-app-btc @ledgerhq/hw-app-eth

// Basic usage example
import Transport from "@ledgerhq/hw-transport-webhid";
import AppBtc from "@ledgerhq/hw-app-btc";

const transport = await Transport.create();
const appBtc = new AppBtc(transport);

// Get Bitcoin address
const { bitcoinAddress } = await appBtc.getWalletPublicKey("44'/0'/0'/0/0");
console.log("Bitcoin Address:", bitcoinAddress);

React Components

Pre-built React components for quickly integrating Ledger functionality into your web applications with minimal setup.

import { LedgerProvider, useLedger } from '@ledgerhq/react-ledger';

function WalletConnection() {
const { connect, disconnect, isConnected, address } = useLedger();

return (
<div>
{isConnected ? (
<>
<p>Connected: {address}</p>
<button onClick={disconnect}>Disconnect</button>
</>
) : (
<button onClick={connect}>Connect Ledger</button>
)}
</div>
);
}

Live Embedded SDK

Embed the full Ledger Live experience directly into your applications with customizable UI components and branding options.

import { LedgerLive } from '@ledgerhq/live-embedded';

// Initialize Ledger Live Embedded
const ledgerLive = new LedgerLive({
apiKey: 'your-api-key',
theme: 'dark',
currency: 'USD'
});

// Mount to DOM element
ledgerLive.mount('#ledger-container');

// Listen for events
ledgerLive.on('transaction', (tx) => {
console.log('New transaction:', tx);
});

Mobile SDK

Build native mobile applications for iOS and Android with Ledger hardware wallet integration and secure Bluetooth communication.

// React Native example
import { LedgerModule } from 'react-native-ledger-module';

// Scan for Ledger devices
const devices = await LedgerModule.scanDevices();

// Connect to a device
const device = await LedgerModule.connect(devices[0].id);

// Get Ethereum address
const address = await LedgerModule.getEthereumAddress("44'/60'/0'/0/0");

// Sign transaction
const signature = await LedgerModule.signTransaction(txData);

API Reference

RESTful APIs for accessing blockchain data, managing portfolios, and integrating with Ledger Live services.

GET
/api/v1/accounts/{accountId}/balance

Retrieve current balance for a specific cryptocurrency account.

POST
/api/v1/transactions/sign

Sign a cryptocurrency transaction using a connected Ledger device.

GET
/api/v1/currencies/{currencyId}/rates

Get historical exchange rates for a specific cryptocurrency.

POST
/api/v1/portfolio/sync

Synchronize portfolio data across multiple devices and platforms.

Quick Start Guide

Get started with Ledger Live development in just a few simple steps.

1

Set Up Development Environment

Install Node.js and create a new project. Install the necessary Ledger packages for your development needs.

npm init -y
npm install @ledgerhq/hw-transport-node-hid @ledgerhq/hw-app-btc
2

Connect to Ledger Device

Establish communication with a connected Ledger hardware wallet using the appropriate transport method.

import Transport from "@ledgerhq/hw-transport-node-hid";
import AppBtc from "@ledgerhq/hw-app-btc";

const transport = await Transport.create();
const app = new AppBtc(transport);
3

Implement Core Functionality

Use the SDK methods to get wallet information, create transactions, and interact with blockchain networks.

// Get Bitcoin address
const { bitcoinAddress } = await app.getWalletPublicKey("44'/0'/0'/0/0");

// Create and sign transaction
const tx = await app.createPaymentTransaction({
inputs: [...],
associatedKeysets: [...],
outputScriptHex: "..."
});
4

Test and Deploy

Test your application with both testnet and mainnet environments before deploying to production.

// Testnet configuration
const testnetApp = new AppBtc(transport, {
currency: 'bitcoin_testnet'
});

// Production configuration
const mainnetApp = new AppBtc(transport, {
currency: 'bitcoin'
});

Frequently Asked Questions

What are the system requirements for developing with Ledger Live SDK? +

The Ledger Live SDK supports development on multiple platforms with the following requirements:

  • Node.js: Version 14 or higher
  • Web Browsers: Chrome 80+, Firefox 75+, Safari 13+, Edge 80+
  • Mobile: iOS 12+ or Android 8+ for mobile development
  • Hardware: USB port for device connection (for Nano S/S+) or Bluetooth 4.0+ (for Nano X)
  • Operating Systems: Windows 10, macOS 10.14+, or Linux (Ubuntu 18.04+, Fedora 30+)

For web development, ensure your application is served over HTTPS when accessing device APIs, as required by modern browser security policies.

How do I handle different cryptocurrency networks and derivations? +

Ledger Live SDK provides comprehensive support for multiple cryptocurrency networks and derivation paths:

  • Bitcoin: Use BIP44, BIP49, or BIP84 derivation paths for legacy, segwit, and native segwit addresses
  • Ethereum: Standard BIP44 path (44'/60'/0'/0/0) with support for ERC-20 tokens
  • Altcoins: Dedicated applications for coins like Litecoin (44'/2'/0'/0/0), Polkadot, and others
  • Testnets: Separate configuration for testnet environments during development

Each cryptocurrency has its own application that needs to be installed on the Ledger device. Use the appropriate SDK module for each cryptocurrency type:

// Bitcoin
import AppBtc from "@ledgerhq/hw-app-btc";
// Ethereum
import AppEth from "@ledgerhq/hw-app-eth";
// Polkadot
import AppDot from "@ledgerhq/hw-app-dot";
What security best practices should I follow when integrating Ledger devices? +

When developing applications that integrate with Ledger hardware wallets, follow these security best practices:

  • Verify Addresses: Always display addresses on the device screen for user confirmation before transactions
  • Secure Communication: Use HTTPS for web applications and secure Bluetooth connections for mobile
  • Error Handling: Implement proper error handling for device disconnections and user rejections
  • User Education: Guide users to verify transaction details on their device screen
  • Private Key Protection: Never attempt to extract private keys from the device - they remain secure in the hardware
  • Transport Security: Use the appropriate transport method (WebHID, WebUSB, or Bluetooth) based on your platform

Always test your application thoroughly on testnet before deploying to mainnet environments.

How can I contribute to the Ledger Live open-source ecosystem? +

Ledger welcomes contributions from the developer community through several channels:

  • GitHub Repositories: Contribute to our open-source SDKs and libraries on GitHub
  • Coin Integration: Submit pull requests for new cryptocurrency integrations
  • Documentation: Help improve our developer documentation and tutorials
  • Bug Reports: Report issues and suggest improvements through GitHub issues
  • Community Support: Help other developers in our community forums and Discord channels

Before contributing, please review our contribution guidelines and code of conduct. All contributions should include appropriate tests and documentation updates.

What support options are available for developers? +

Ledger provides multiple support channels for developers building with our platform:

  • Documentation: Comprehensive API references, tutorials, and integration guides
  • GitHub Issues: Technical support and bug tracking through our GitHub repositories
  • Developer Discord: Real-time community support and discussion
  • Stack Overflow: Tag questions with 'ledger' for community assistance
  • Enterprise Support: Dedicated support for business and enterprise customers
  • Sample Applications: Complete example projects demonstrating various integration patterns

For critical security issues, please use our responsible disclosure program rather than public channels.

Start Building with Ledger Live

Join thousands of developers building secure cryptocurrency applications with Ledger's developer tools and APIs.