<p>That error means that don't have permission to access the USB device associated with your hardware wallet (which is why using the <code>sudo</code> prefix &quot;works&quot;).</p>
<p>Assuming you're running on linux (and subscribe to <a href="https://en.wikipedia.org/wiki/Principle_of_least_privilege" rel="nofollow noreferrer">the principle of least privilege</a>), you'll want to follow the instructions in <a href="https://github.com/bitcoin-core/HWI/blob/master/hwilib/udev/README.md" rel="nofollow noreferrer">hwilib/udev/README.md</a> to instruct <a href="https://en.wikipedia.org/wiki/Udev" rel="nofollow noreferrer"><code>udev</code></a> to grant your user ID access.</p>

CC BY-SA 4.0
2024-05-23T16:23:42.413Z
2024-05-23T16:23:42.413Z
jhfrontz
<p>I have downloaded and installed hardware wallet interface, here is the output that I'm getting from ./hwi.py enumerate:</p>
<pre><code>Traceback (most recent call last):
  File &quot;/home/eoin/HWI/./hwi.py&quot;, line 7, in &lt;module&gt;
    main()
  File &quot;/home/eoin/HWI/hwilib/_cli.py&quot;, line 304, in main
    result = process_commands(sys.argv[1:])
  File &quot;/home/eoin/HWI/hwilib/_cli.py&quot;, line 270, in process_commands
    return args.func(args)
  File &quot;/home/eoin/HWI/hwilib/_cli.py&quot;, line 63, in enumerate_handler
    return enumerate(password=args.password, expert=args.expert, chain=args.chain)
  File &quot;/home/eoin/HWI/hwilib/commands.py&quot;, line 117, in enumerate
    result.extend(imported_dev.enumerate(password, expert, chain))
  File &quot;/home/eoin/HWI/hwilib/devices/trezor.py&quot;, line 857, in enumerate
    devs.extend(webusb.WebUsbTransport.enumerate())
  File &quot;/home/eoin/HWI/hwilib/devices/trezorlib/transport/webusb.py&quot;, line 130, in enumerate
    dev.getProduct()
  File &quot;/home/eoin/.local/lib/python3.10/site-packages/usb1/__init__.py&quot;, line 2003, in getProduct
    return self.open().getProduct()
  File &quot;/home/eoin/.local/lib/python3.10/site-packages/usb1/__init__.py&quot;, line 2055, in open
    mayRaiseUSBError(libusb1.libusb_open(self.device_p, byref(handle)))
  File &quot;/home/eoin/.local/lib/python3.10/site-packages/usb1/__init__.py&quot;, line 127, in mayRaiseUSBError
    __raiseUSBError(value)
  File &quot;/home/eoin/.local/lib/python3.10/site-packages/usb1/__init__.py&quot;, line 119, in raiseUSBError
    raise __STATUS_TO_EXCEPTION_DICT.get(value, __USBError)(value)
usb1.USBErrorAccess: LIBUSB_ERROR_ACCESS [-3]
</code></pre>
<p>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.</p>

CC BY-SA 4.0
2024-03-18T18:28:05.710Z
Have you tried `sudo ./hwi.py enumerate` ?
RedGrittyBrick
CC BY-SA 4.0
2024-03-18T18:45:55.030Z
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
CC BY-SA 4.0
2024-03-18T18:48:06.137Z
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
CC BY-SA 4.0
2024-03-19T11:45:19.553Z
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
<hwi>
Trouble with HWI
Eoin
# Trouble with HWI

(Asked by: username_0 on 2024-03-17)

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 
    main()
  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
    devs.extend(webusb.WebUsbTransport.enumerate())
  File "/home/eoin/HWI/hwilib/devices/trezorlib/transport/webusb.py", line 130, in enumerate
    dev.getProduct()
  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
    __raiseUSBError(value)
  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.

**Tags:** hwi

> **Comments:**
> **username_1**: Have you tried `sudo ./hwi.py enumerate` ?  
> **username_0**: 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 (  
> **username_0**: 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'  
> **username_0**: 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.  

---

## 1 answers

### Answer by username_2 on 2024-05-23. Score: 0

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](https://en.wikipedia.org/wiki/Principle_of_least_privilege)), you'll want to follow the instructions in [hwilib/udev/README.md](https://github.com/bitcoin-core/HWI/blob/master/hwilib/udev/README.md) to instruct [`udev`](https://en.wikipedia.org/wiki/Udev) to grant your user ID access.


---

