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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hextreezorctl-0.1.1.tar.gz (111.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hextreezorctl-0.1.1-py3-none-any.whl (262.0 kB view details)

Uploaded Python 3

File details

Details for the file hextreezorctl-0.1.1.tar.gz.

File metadata

  • Download URL: hextreezorctl-0.1.1.tar.gz
  • Upload date:
  • Size: 111.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for hextreezorctl-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a0127e7cf0828a44edcd024ea90aab43ee7ae8fc623455f2385f8375085a6839
MD5 59f0478e7fc9a6efce86741a64e3b930
BLAKE2b-256 2bd4f7dbff3f75ceaf1d25a5bc86664ba995271eda2a58a77293728c0cffda42

See more details on using hashes here.

File details

Details for the file hextreezorctl-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: hextreezorctl-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 262.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for hextreezorctl-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7350ecd3edc5d17a5e2426328b44415cec7fa7268be064dac958c42686d935c2
MD5 8b7b3175eee8bca0684b16d4f8d48f91
BLAKE2b-256 93eca505dd5d122bba7272d317e0949d84d1100ba6a44094555cf40d744a9c8e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page