Wallet API Server
â The renaming of âLedger Liveâ to âLedger Walletâ and âwalletâ (in the hardware sense) to âsignerâ is still in progress. This page may contain legacy references that will be updated.
The Wallet API Server is a bi-directional JSONâRPC 2.0 server that bridges a dApp (or service) with a Wallet (e.g., Ledger Wallet) over a trusted channel. It provides a structured way to exchange requests/responses and notifications while enforcing capability-based permissions.
Why use a server?
- Separation of concerns: your application logic stays in your process; the Wallet handles sensitive operations (accounts, signatures, device flows).
- Trust and permissions: the server formalizes capability requests and enforces what the dApp is allowed to do.
- Transport-agnostic RPC: JSONâRPC 2.0 allows clear contracts and consistent error handling across transports (e.g., window.postMessage, WebSocket).
When to use it?
- You need a secure, permissioned bridge to a wallet (Ledger Wallet) from a dApp or integration.
- You want a consistent RPC contract across environments and transports.
- You prefer capability-based access over adâhoc messaging.
Where to start?
- Visual introduction
- API reference
- Constructor overview
- React hook (optional, useful if using react)
- Example using constructor
- Example within Ledger Wallet
External resources
- Source code: https://github.com/LedgerHQ/wallet-api/tree/main/packages/serverÂ
- Main file: https://github.com/LedgerHQ/wallet-api/blob/main/packages/server/src/WalletAPIServer.tsÂ
- Wallet API README: https://github.com/LedgerHQ/wallet-api/blob/main/README.mdÂ
- Spec: https://github.com/LedgerHQ/wallet-api/blob/main/spec/server/README.mdÂ
- Package: @ledgerhq/wallet-api-server
Last updated on