
Security News
OWASP 2025 Top 10 Adds Software Supply Chain Failures, Ranked Top Community Concern
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.
@ledgerhq/hw-transport-webusb
Advanced tools
Ledger Hardware Wallet WebUSB implementation of the communication layer
GitHub, Ledger Devs Discord, Developer Portal
Allows to communicate with Ledger Hardware Wallets.
[Web] (WebUSB) – WebUSB check browser support.
You may be using this package to open a USB connection between your web application and the device.
For a smooth and quick integration:
The transport functions create() and listen() must be called in the context of a user interaction (like a "click" event), otherwise it fails with DOM Exception. This is by WebUSB design. You also must run on HTTPS.
In WebUSB, we have a "permission native" modal that appears when we need to "request" a device. This is required at-least-once for the user to accept, and then we can open the transport without triggering this modal. However, in both cases, it must happen in context of a click like explain above. Our current implementation trade off is to abstract this out and only trigger the permission modal if no device are listed. This might change in the future.
In terms of UX, there are two classical use cases:
in (1) case, you can just do your logic in each button (Get Address / Sign Transaction) time (create it, do the logic, close it).
in (2) case, you will need to have a Connect button that appear when you don’t have the connection yet. And you need to hook to the “disconnect” event to potentially make the UI reflect that and require user to click again on that Connect button, because you can’t automatically create()/open() again.
WebUSB is currently only supported on Google Chrome / Chromium.
Extends Transport
WebUSB Transport implementation
device USBDevice interfaceNumber number import TransportWebUSB from "@ledgerhq/hw-transport-webusb";
...
TransportWebUSB.create().then(transport => ...)
Release the transport device
Returns Promise<void>
Exchange with the device using APDU protocol.
apdu Buffer Returns Promise<Buffer> a promise of apdu response
Check if WebUSB transport is supported.
List the WebUSB devices that was previously authorized by the user.
Actively listen to WebUSB devices and emit ONE device that was either accepted before, if not it will trigger the native permission UI.
Important: it must be called in the context of a UI click!
observer Observer<DescriptorEvent<USBDevice>> Returns Subscription
Similar to create() except it will always display the device permission (even if some devices are already accepted).
Similar to create() except it will never display the device permission (it returns a Promise<?Transport>, null if it fails to find a device).
Create a Ledger transport with a USBDevice
device USBDevice FAQs
Ledger Hardware Wallet WebUSB implementation of the communication layer
The npm package @ledgerhq/hw-transport-webusb receives a total of 76,453 weekly downloads. As such, @ledgerhq/hw-transport-webusb popularity was classified as popular.
We found that @ledgerhq/hw-transport-webusb demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.