Summary Introduction Core Build Embedded Emulator Emulator Valgrind profiling Event Loop Apps Tests Debugging on hardware SystemView instrumentation Miscellaneous Boot stages Code style DISC1 DISC2 Exceptions usage Memory fragmentation management Memory layout TrustZone SLIP-39 Translation data format UI Layout lifecycle Optiga configuration Logging for debugging purposes Legacy Firmware format Python trezorlib Common Communication Sessions Passphrase Migration Bitcoin signing Reproducible builds Message Workflows External definitions Storage Tests Device Tests Upgrade Tests UI Tests Click Tests Miscellaneous Affected third-parties Changelog Coins' BIP-44 Paths Contributing FW update and device wipe Generated Files Git Hooks Monorepo Notes Review Process TOIF Image Format Developers guide Libraries Hello World in Trezor Core