chore(python): add real minimum versions to selected models
What changed, and why it matters
This commit updates the minimum supported firmware version numbers for four Trezor hardware wallet models in the Python client library. The old values were generic placeholders (2.3.0), and the new values reflect the actual earliest firmware version each device model shipped with. This is a housekeeping change that helps the software correctly identify and handle older or mismatched firmware, but it does not by itself fix a security flaw in the firmware.
Treat as a low-risk metadata correction. Review how `minimum_version` is consumed in the client to confirm it does not inadvertently allow interaction with firmware versions that should be rejected. No urgent action is indicated by the diff alone.
Security signals we found
Version metadata change only
No firmware code or cryptographic logic modified
No vulnerability description in commit or supplied references
Could affect client-side downgrade/upgrade enforcement behavior
Evidence from the diff
The change modifies minimum_version fields in trezorlib/_modeldata/ for models T2B1, T3B1, T3T1, and T3W1. The previous default (2, 3, 0) is replaced with model-specific initial firmware versions: (2, 6, 3), (2, 8, 3), (2, 7, 2), and (2, 9, 3) respectively. This metadata is used by the Python client to decide whether a connected device’s firmware is older than the lowest version the model was ever released with, which can affect compatibility checks, update prompts, and possibly downgrade/upgrade policy enforcement. The commit message labels it as a chore with no changelog.
Changed components
python/src/trezorlib/_modeldata/T2B1.pypython/src/trezorlib/_modeldata/T3B1.pypython/src/trezorlib/_modeldata/T3T1.pypython/src/trezorlib/_modeldata/T3W1.pyInspect captured patch +4 / −4
diff --git a/python/src/trezorlib/_modeldata/T2B1.py b/python/src/trezorlib/_modeldata/T2B1.py
index 3ec2b080..f7dc7834 100644
--- a/python/src/trezorlib/_modeldata/T2B1.py
+++ b/python/src/trezorlib/_modeldata/T2B1.py
@@ -25,7 +25,7 @@ MODEL = ModelData(
internal_name="T2B1",
name="Safe 3",
hw_model=b"T2B1",
- minimum_version=(2, 3, 0),
+ minimum_version=(2, 6, 3),
aliases=("r", "safe3", "s3"),
model_class=ModelClass.CORE,
layout=Layout.CAESAR,
diff --git a/python/src/trezorlib/_modeldata/T3B1.py b/python/src/trezorlib/_modeldata/T3B1.py
index ea0d61a0..7296e130 100644
--- a/python/src/trezorlib/_modeldata/T3B1.py
+++ b/python/src/trezorlib/_modeldata/T3B1.py
@@ -25,7 +25,7 @@ MODEL = ModelData(
internal_name="T3B1",
name="Safe 3",
hw_model=b"T3B1",
- minimum_version=(2, 3, 0),
+ minimum_version=(2, 8, 3),
aliases=(),
model_class=ModelClass.CORE,
layout=Layout.CAESAR,
diff --git a/python/src/trezorlib/_modeldata/T3T1.py b/python/src/trezorlib/_modeldata/T3T1.py
index de270231..aeee5c50 100644
--- a/python/src/trezorlib/_modeldata/T3T1.py
+++ b/python/src/trezorlib/_modeldata/T3T1.py
@@ -25,7 +25,7 @@ MODEL = ModelData(
internal_name="T3T1",
name="Safe 5",
hw_model=b"T3T1",
- minimum_version=(2, 3, 0),
+ minimum_version=(2, 7, 2),
aliases=("safe5", "s5"),
model_class=ModelClass.CORE,
layout=Layout.DELIZIA,
diff --git a/python/src/trezorlib/_modeldata/T3W1.py b/python/src/trezorlib/_modeldata/T3W1.py
index c97e8395..2b6ec3d3 100644
--- a/python/src/trezorlib/_modeldata/T3W1.py
+++ b/python/src/trezorlib/_modeldata/T3W1.py
@@ -28,7 +28,7 @@ MODEL = ModelData(
internal_name="T3W1",
name="Safe 7",
hw_model=b"T3W1",
- minimum_version=(2, 3, 0),
+ minimum_version=(2, 9, 3),
aliases=(),
model_class=ModelClass.CORE,
layout=Layout.ECKHART,
Why this scored 24/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.