Skip to main content

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)

Source distribution for hextreezorctl 0.1.1
File Size Uploaded
hextreezorctl-0.1.1.tar.gz 111.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hextreezorctl 0.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page