While Monero is a leading cryptocurrency when it comes to privacy, safe storage of private keys is where it lacks.

If you aren't a big fan of Ledger like me, your only option is storing the keys on a paper wallet.

The good news is, Pavol Rusnak from SatoshiLabs recently announced Monero support in their Trezor Model T!

The bad news is, the wallet support isn't finished yet nor it is easy to set up.

It's 28th of October and everybody is celebrating the 100th anniversary of Czechoslovakia. Meanwhile, I am finalizing the new firmware for Trezor, which will be released tomorrow. Independent organizational structures built on top of a truly decentralized economy are the future! pic.twitter.com/ocB3hZg1Cm — stick⚡Pavol Rusnak (@pavolrusnak) October 28, 2018

However, I managed to "figure it out" (I had one of the Trezor devs help me) so let's get right to it.

This tutorial is written for MacOS and Ubuntu but it should work on any Debian based Linux and with some minor changes on most of major Linux distributions.

Also please note, that Trezor currently only works with monero-wallet-cli . The GUI and Trezor.io web wallet support will follow later.

#1a Install dependencies on Linux

Update the system's repositories and packages:

sudo apt-get update && sudo apt-get upgrade -y

Install the required dependencies:

sudo apt-get install build-essential cmake pkg-config libboost-all-dev libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev doxygen graphviz libpgm-dev protobuf-compiler libprotobuf-dev

How to Install and Set up Full Monero Node on Linux

#1b Install dependencies on MacOS

Update brew and all existing packages:

brew update && brew upgrade

It may take a while.

Install the required dependencies.

brew install boost --c++11 cmake doxygen expat graphviz ldns miniupnpc openssl pkgconfig protobuf readline libpgm libsodium libunwind-headers

Currently, there seems to be an issue with ZMQ on brew so add a new repository and install ZMQ headers from there:

brew tap jmuncaster/homebrew-header-only

brew install jmuncaster/header-only/cppzmq

#2 Download and build Monero with Trezor support

Create a source folder if you haven't already and open it:

mkdir ~/source

cd ~/source

Trezor support has already been merged to the official repository!

Clone the repository from one of the Trezor's developer:

git clone --recursive https://github.com/ph4r05/monero.git monero-trezor

cd monero-trezor

Switch to the trezor branch:

git checkout master-trezor

and update all the modules:

git submodule update --init --recursive

Clone the official Monero repository:

git clone --recursive https://github.com/monero-project/monero.git

cd monero

Compile the source code:

make -j4 release

You can mess with the -j4 parameter if you have enough resources. The parameters tells the compiler how many CPU threads to use.

The process may take some time depending on your hardware. My latest MacBook Pro 15" was able to compile it under 2 minutes. It took my Intel NUC server twice the time.

How to Protect your Privacy when Splitting and Claiming Monero Shitforks

When finished, locate the compiled binaries.

On Linux:

cd ~/source/monero/build/Linux/master/release/bin

On MacOS:

cd ~/source/monero/build/Darwin/master/release/bin

Copy the binaries to your path:

sudo cp * /usr/local/bin/

To setup and run monerod service (if you haven't already), please follow the instructions in sections 4 and 5.

If you connect your Monero wallet to a remote node you can skip the above step.

#3 Update Trezor Model T

Download and install the latest Trezor bridge (currently 2.0.25).

When finished, restart your browser and open the Trezor web wallet.

Connect your Trezor Model T while sliding your finger up and down on the screen. This will trigger a firmware update.

Trezor firmware v2.0.9 does not correctly encrypt short payment ID in outgoing transactions! This firmware version should not be used for sending transactions with short payment IDs and integrated addresses (more than 95 characters). No funds are lost but a recipient of your payment will have problems pairing the payment (e.g., exchanges). Please update the firmware as soon as it becomes available.

Follow the on-screen instructions and when updated unplug and plug your device.

#4 Generate a wallet with Trezor

To start using Monero with Trezor, you'll have to generate a wallet with Trezor's private key first.

Create a new folder that will store Monero wallet files if it doesn't exist already:

mkdir -p ~/Monero/wallets

cd ~/Monero/wallets



Generate the wallet with Trezor:

monero-wallet-cli --hw-device=Trezor --generate-from-device ~/Monero/wallets/monero_trezor --restore-height=1695424

You can customize the --restore-height parameter based on the latest block from Monero Blocks explorer (only do that if the wallet hasn't received any moneroj before).

If you're connecting to a remote node add --daemon-address remote.node.tld:port at the end of the previous command.

You will be prompted for a password that will encrypt the wallet file. Please note that this password has nothing to do with Trezor's passphrase yet!

Top 5 Reasons Monero Will Become the Most Widely Used Private and Anonymous Cryptocurrency

After you create an encrypted wallet, Trezor will ask you to type in the device's passphrase.

Currently, only passphrase typed on the device itself is supported. You can either type an empty password or come up with one. If you go for the latter, make sure to remember it!

In the next step you will have to allow Trezor to provide monero-wallet-cli with a private view key.

#5 Open your wallet with Trezor

To open the wallet after it's been generated, just connect your Trezor Model T, unlock it, and type in the following command:

monero-wallet-cli --wallet ~/Monero/wallets/monero_trezor --log-file ~/Monero/wallets/monero-wallet-cli.log

Unlock the wallet file with the first password and then type your device's passphrase on Trezor.

The wallet will check for new transactions and you're good to go.

Big thanks goes to Dušan Klinec (ph4r05) who is one of the developers that worked on the Monero implementation. He is also the one that helped me figuring out how to set up the wallet.

Also thanks to everyone from SatoshiLabs that has made this possible!

Buy Trezor Model T Get it on Amazon Now

If you like what I do, I'd appreciate if you purchased Trezor (when you decide to get one) through the buttons above. I will receive a small commission which will help me maintain this website. Thank you!

In the case you run into any problems while setting up your Monero wallet with Trezor, please let me know in the comments section below.

Please let us know what you think in the comments section below.