trezor/trezor-firmware
Free:lock: Trezor Firmware Monorepo
FreeFree tier
About trezor/trezor-firmware
Trezor Firmware Monorepo is the official open-source repository containing the firmware implementations for Trezor hardware wallets, including Trezor One, Trezor T, Trezor Safe 3, Trezor Safe 5, and Trezor Safe 7. It encompasses a secure cryptography library, storage subsystem, Python client library (trezorctl), protobuf protocol definitions, documentation, and comprehensive test suites. The repository supports multiple programming languages (C, Python, Rust) and is designed for developers building or customizing Trezor firmware.
Key Features
Contains firmware implementations for multiple Trezor models (Trezor One, Trezor T, Trezor Safe 3, Safe 5, Safe 7)
Includes a standalone cryptography library used by both core and legacy firmware
Provides a Python client library and trezorctl command-line tool
Uses protobuf for communication protocol definitions
NORCOW storage implementation for secure non-volatile memory
JSON coin definitions and support tables in common/defs
Comprehensive unit tests and CI pipeline scripts
Documentation hosted at docs.trezor.io
Pros & Cons
Pros
- Open-source with active community and frequent updates
- Supports a wide range of cryptocurrencies
- Robust security practices with vulnerability disclosure policy
- Well-documented with both in-repo docs and external site
- Multi-language implementation (C, Python, Rust) for flexibility
Cons
- Requires embedded systems knowledge to contribute effectively
- Firmware is specific to Trezor hardware; not usable with other devices
- Complex monorepo structure may be overwhelming for new contributors
- Limited to cryptographic and wallet-related use cases
Best For
Developing and customizing Trezor hardware wallet firmwareBuilding cryptocurrency wallet applications using Trezor devicesLearning about secure embedded system design and cryptographyContributing to open-source hardware wallet ecosystemIntegrating Trezor support into third-party software via the Python client
FAQ
What is included in the Trezor Firmware Monorepo?
The repository contains firmware for multiple Trezor models (One, T, Safe 3/5/7), a cryptography library, storage subsystem, Python client library, protobuf protocol definitions, documentation, test suites, and build tools.
Is this firmware compatible with all Trezor devices?
Yes, the monorepo includes separate implementations for Trezor One (legacy) and Trezor Core (for T, Safe 3, Safe 5, and Safe 7).
How can I contribute to this project?
See CONTRIBUTING.md in the repository. Conventional Commits are recommended. Please also read the documentation in the docs folder or at docs.trezor.io.
Where can I report security vulnerabilities?
Do not create public issues for suspected security vulnerabilities. Follow the instructions in the Security tab on GitHub.
What programming languages are used in this firmware?
C, Python, and Rust are the primary languages, with C making up 45.6%, Python 30.3%, and Rust 19.2% of the codebase.