![]()
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
|
||
---|---|---|
.. | ||
trezor | ||
CMakeLists.txt | ||
device_trezor_base.cpp | ||
device_trezor_base.hpp | ||
device_trezor.cpp | ||
device_trezor.hpp | ||
README.md | ||
trezor.hpp |
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:
- First pull request https://github.com/monero-project/monero/pull/4241
- Integration proposal https://github.com/ph4r05/monero-trezor-doc
- Integration readme in trezor-firmware https://github.com/trezor/trezor-firmware/blob/master/core/src/apps/monero/README.md