monero/src/device_trezor
tobtoht ca16c290ab
Some checks are pending
ci/gh-actions/cli / macOS (brew) (push) Waiting to run
ci/gh-actions/cli / Windows (MSYS2) (push) Waiting to run
ci/gh-actions/cli / Arch Linux (push) Waiting to run
ci/gh-actions/cli / Debian 10 (push) Waiting to run
ci/gh-actions/cli / ${{ matrix.name }} (ubuntu:22.04, Ubuntu 22.04) (push) Waiting to run
ci/gh-actions/cli / ${{ matrix.name }} (tests) (ubuntu:20.04, Ubuntu 20.04) (push) Waiting to run
ci/gh-actions/cli / source archive (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:aarch64-apple-darwin name:Cross-Mac aarch64]) (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:aarch64-linux-android name:ARMv8 Android]) (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:aarch64-linux-gnu name:ARM v8 packages:g++-aarch64-linux-gnu]) (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:arm-linux-android name:ARMv7 Android]) (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:arm-linux-gnueabihf name:ARM v7 packages:g++-arm-linux-gnueabihf]) (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:i686-pc-linux-gnu name:i686 Linux packages:g++-multilib]) (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:riscv64-linux-gnu name:RISCV 64bit packages:g++-riscv64-linux-gnu]) (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:x86_64-apple-darwin name:Cross-Mac x86_64]) (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:x86_64-unknown-freebsd name:x86_64 Freebsd packages:clang-8]) (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:x86_64-unknown-linux-gnu name:x86_64 Linux]) (push) Waiting to run
ci/gh-actions/depends / ${{ matrix.toolchain.name }} (map[host:x86_64-w64-mingw32 name:Win64 packages:g++-mingw-w64-x86-64]) (push) Waiting to run
ci/gh-actions/guix / cache-sources (push) Waiting to run
ci/gh-actions/guix / ${{ matrix.toolchain.target }} (map[target:aarch64-apple-darwin]) (push) Blocked by required conditions
ci/gh-actions/guix / ${{ matrix.toolchain.target }} (map[target:aarch64-linux-android]) (push) Blocked by required conditions
ci/gh-actions/guix / ${{ matrix.toolchain.target }} (map[target:aarch64-linux-gnu]) (push) Blocked by required conditions
ci/gh-actions/guix / ${{ matrix.toolchain.target }} (map[target:arm-linux-gnueabihf]) (push) Blocked by required conditions
ci/gh-actions/guix / ${{ matrix.toolchain.target }} (map[target:i686-linux-gnu]) (push) Blocked by required conditions
ci/gh-actions/guix / ${{ matrix.toolchain.target }} (map[target:riscv64-linux-gnu]) (push) Blocked by required conditions
ci/gh-actions/guix / ${{ matrix.toolchain.target }} (map[target:x86_64-apple-darwin]) (push) Blocked by required conditions
ci/gh-actions/guix / ${{ matrix.toolchain.target }} (map[target:x86_64-linux-gnu]) (push) Blocked by required conditions
ci/gh-actions/guix / ${{ matrix.toolchain.target }} (map[target:x86_64-unknown-freebsd]) (push) Blocked by required conditions
ci/gh-actions/guix / ${{ matrix.toolchain.target }} (map[target:x86_64-w64-mingw32]) (push) Blocked by required conditions
ci/gh-actions/guix / bundle-logs (push) Blocked by required conditions
Merge pull request #9711
2511f8579 brew: use latest protobuf (tobtoht)
2025-02-13 17:40:24 +00:00
..
trezor Merge pull request #9717 2025-02-13 17:37:47 +00:00
CMakeLists.txt copyright: bump to 2024 2024-05-21 16:29:33 +00:00
device_trezor_base.cpp copyright: bump to 2024 2024-05-21 16:29:33 +00:00
device_trezor_base.hpp copyright: bump to 2024 2024-05-21 16:29:33 +00:00
device_trezor.cpp Fix typos. 2024-11-11 17:01:52 -07:00
device_trezor.hpp copyright: bump to 2024 2024-05-21 16:29:33 +00:00
README.md brew: use latest protobuf 2025-02-09 11:42:14 +01:00
trezor.hpp copyright: bump to 2024 2024-05-21 16:29:33 +00:00

Trezor hardware wallet support

This module adds Trezor hardware support to Monero.

Basic information

Trezor integration is based on the following original proposal: https://github.com/ph4r05/monero-trezor-doc

A custom high-level transaction signing protocol uses Trezor in a similar way a cold wallet is used. Transaction is build incrementally on the device.

Trezor implements the signing protocol in trezor-firmware repository, in the monero application. Please, refer to monero readme for more information.

Dependencies

Trezor uses Protobuf library.

Monero is now compiled with C++17 by default. If you are getting Trezor compilation errors, it may be caused by abseil (protobuf dependency) not being compiled with C++17. To fix this try installing protobuf from sources:

git clone --recursive git@github.com:protocolbuffers/protobuf.git
cd protobuf
cmake -DABSL_PROPAGATE_CXX_STD=TRUE -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON -Dprotobuf_BUILD_TESTS=OFF .
cmake --build .
sudo make install

macOS

brew update && brew bundle --file=contrib/brew/Brewfile

MSYS32

pacman -S mingw-w64-x86_64-protobuf

Other systems

  • install Protobuf
  • point CMAKE_PREFIX_PATH environment variable to Protobuf installation.

Troubleshooting

To disable Trezor support, set USE_DEVICE_TREZOR=OFF, e.g.:

USE_DEVICE_TREZOR=OFF make release

Resources: