I have downloaded and installed hardware wallet interface, here is the output that I'm getting from ./hwi.py enumerate:

Traceback (most recent call last):
  File "/home/eoin/HWI/./hwi.py", line 7, in <module>
  File "/home/eoin/HWI/hwilib/_cli.py", line 304, in main
    result = process_commands(sys.argv[1:])
  File "/home/eoin/HWI/hwilib/_cli.py", line 270, in process_commands
    return args.func(args)
  File "/home/eoin/HWI/hwilib/_cli.py", line 63, in enumerate_handler
    return enumerate(password=args.password, expert=args.expert, chain=args.chain)
  File "/home/eoin/HWI/hwilib/commands.py", line 117, in enumerate
    result.extend(imported_dev.enumerate(password, expert, chain))
  File "/home/eoin/HWI/hwilib/devices/trezor.py", line 857, in enumerate
  File "/home/eoin/HWI/hwilib/devices/trezorlib/transport/webusb.py", line 130, in enumerate
  File "/home/eoin/.local/lib/python3.10/site-packages/usb1/__init__.py", line 2003, in getProduct
    return self.open().getProduct()
  File "/home/eoin/.local/lib/python3.10/site-packages/usb1/__init__.py", line 2055, in open
    mayRaiseUSBError(libusb1.libusb_open(self.device_p, byref(handle)))
  File "/home/eoin/.local/lib/python3.10/site-packages/usb1/__init__.py", line 127, in mayRaiseUSBError
  File "/home/eoin/.local/lib/python3.10/site-packages/usb1/__init__.py", line 119, in raiseUSBError
    raise __STATUS_TO_EXCEPTION_DICT.get(value, __USBError)(value)
usb1.USBErrorAccess: LIBUSB_ERROR_ACCESS [-3]

What is the problem here? It is supposed to tell me the device type and device path, but instead this is what I am getting.

  • Have you tried sudo ./hwi.py enumerate ? Commented Mar 18 at 18:28
  • eoin@eoin-IdeaPad-3-15IAU7:~$ cd HWI eoin@eoin-IdeaPad-3-15IAU7:~/HWI$ sudo ./hwi.py enumerate Traceback (most recent call last): File "/home/eoin/HWI/./hwi.py", line 6, in <module> from hwilib._cli import main File "/home/eoin/HWI/hwilib/_cli.py", line 3, in <module> from .commands import (
    – Eoin
    Commented Mar 18 at 18:45
  • File "/home/eoin/HWI/hwilib/commands.py", line 57, in <module> from .hwwclient import HardwareWalletClient File "/home/eoin/HWI/hwilib/hwwclient.py", line 19, in <module> from .psbt import PSBT File "/home/eoin/HWI/hwilib/psbt.py", line 23, in <module> from .tx import ( File "/home/eoin/HWI/hwilib/tx.py", line 31, in <module> from ._serialize import ( File "/home/eoin/HWI/hwilib/_serialize.py", line 23, in <module> from typing_extensions import Protocol ModuleNotFoundError: No module named 'typing_extensions'
    – Eoin
    Commented Mar 18 at 18:48
  • Seems to be working this morning. How do you retrieve the balance on your hardware wallet? There doesn't seem to be a command for this after using the --help option.
    – Eoin
    Commented Mar 19 at 11:45

1 Answer 1


That error means that don't have permission to access the USB device associated with your hardware wallet (which is why using the sudo prefix "works").

Assuming you're running on linux (and subscribe to the principle of least privilege), you'll want to follow the instructions in hwilib/udev/README.md to instruct udev to grant your user ID access.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.