hextreezorctl
A trezorctl old enough to talk to TREZOR One firmware 1.7.x.
pipx install hextreezorctl
hextreezorctl list
hextreezorctl get-features
Why this exists
trezorlib carries a floor on the device firmware it will speak to:
| trezorlib | released | minimum T1 firmware |
|---|---|---|
| 0.11.2 | 2019-02-27 | 1.6.1 |
| 0.11.3 | 2019-05-29 | 1.8.0 |
| everything since | 1.8.0 or higher |
0.11.3 raised that floor to 1.8.0 and it never came back down, so a current
trezorctl refuses a 1.7.x device outright. 0.11.2 is the last release that
accepts one, and its protobuf definitions are the closest to what that firmware
was built against.
You cannot simply pip install trezor==0.11.2 any more: it declares pyblake2,
an abandoned C extension that stopped compiling when CPython 3.11 made
Py_TYPE() non-assignable. That dependency only became conditional in 0.11.5,
by which point the firmware floor had already moved.
So this package carries 0.11.2 with that one import pointed at the standard
library, and exposes its command line tool under a name that will not collide
with a trezorctl you use for real devices.
Two other things had to move for it to run on a current Python. construct is
required at >=2.10, because 2.9 does import imp at module scope and imp
went away in 3.12. And the Stellar commands are dropped, because that module
needs xdrlib, which PEP 594 removed in 3.13 — nothing else in the tool wanted
it. Tested on CPython 3.9 through 3.14.
The vendored tree is generated by tools/vendor.py, which fetches the upstream
wheel and verifies its hash before applying those changes, so what is here can
be checked against PyPI. NOTICE lists every one of them.
Install
pipx or uv tool keep it in an environment of its own, which is what you
want — it pins click<8 and construct<2.10, and those pins should not be
imposed on anything else:
pipx install hextreezorctl
# or
uv tool install hextreezorctl
pip install hextreezorctl into a shared environment works too, but those pins
come with it.
On Linux you need the usual udev rules for the device to be reachable without
root. On macOS, brew install libusb.
Use
Everything upstream 0.11.2 could do, under the new name:
hextreezorctl list
hextreezorctl get-features
hextreezorctl load-device -s # SLIP-0014 test seed
hextreezorctl reset-device -t 128 -p -l "my device" # generate a seed
hextreezorctl recovery-device -w 12 -p -t matrix # restore one
hextreezorctl get-address -n "m/44'/0'/0'/0/0" -d
hextreezorctl firmware-update -f firmware.bin
Everything upstream 0.11.2 offered is here except the two Stellar commands.
PIN entry is positional: the device shows a scrambled 3×3 grid and you type where each digit is, using this layout.
7 8 9
4 5 6
1 2 3
What this is for
Devices running TREZOR One firmware 1.7.x — original hardware that has not been
updated, and custom or reproduction boards built from the legacy tree. It is a
tool for working on that firmware, not a wallet you should trust with real
funds: 1.7.x is from 2018 and has had many security fixes since.
Licence
LGPL-3.0-or-later, inherited from python-trezor. See LICENSE, NOTICE and AUTHORS-trezorlib.
trezorlib is Copyright (C) 2012-2019 SatoshiLabs and contributors. This package is not affiliated with or endorsed by SatoshiLabs.
Metadata
Release files for hextreezorctl 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hextreezorctl-0.1.1.tar.gz | 111.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hextreezorctl-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 373.0 kB
Release files / hextreezorctl-0.1.1.tar.gz
| Download URL | hextreezorctl-0.1.1.tar.gz |
|---|---|
| Size | 111.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a0127e7cf0828a44edcd024ea90aab43ee7ae8fc623455f2385f8375085a6839
|
|
BLAKE2b-256 checksum How to use checksums |
2bd4f7dbff3f75ceaf1d25a5bc86664ba995271eda2a58a77293728c0cffda42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|
Release files / hextreezorctl-0.1.1-py3-none-any.whl
| Download URL | hextreezorctl-0.1.1-py3-none-any.whl |
|---|---|
| Size | 262.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7350ecd3edc5d17a5e2426328b44415cec7fa7268be064dac958c42686d935c2
|
|
BLAKE2b-256 checksum How to use checksums |
93eca505dd5d122bba7272d317e0949d84d1100ba6a44094555cf40d744a9c8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|