Please login or register.

Experimental trezor firmware testing

DO NOT UPGRADE YOUR FIRMWARE IF YOU DON'T HAVE YOUR RECOVERY SEEDS

I worked on a trezor firmware which supports XMR awhile back but stopped development around August last year. I want to "complete" the firmware soon and then release the source to github when it's somewhat stable. I'm releasing the binary since I need help testing the current version.

While there are user interaction limitations, the firmware is fully functional and can be used to sync accounts as well as transfer XMR from active accounts. Only simplewallet is supported at the moment and from my testing, windows is fairly stable while linux needs some work [FIXED].

The firmware is compatible with BTC and does not remove any functionality available in the official firmware. The source is upstream compatible and can be merged to the official source (if they want to). XMR uses the same seed as BTC so you can restore your old seed anytime and regain your old account.

There are important points to note:

  • The viewkey is sent to the client. A bad client could potentially store these keys and see all incoming transactions to your account, privacy is then compromised.
  • The client has no access to the sendkey and can only request the device to generate key images or sign transactions. Your funds are safe.
  • It takes about 40ms to generate each key image. For large wallets, re-sync is going to take a while, so keep the wallet bin files.
  • [FIXED] The send confirmation prompt is incomplete. It will be fixed in subsequent versions.
  • [FIXED] There is no reconnect/retry implemented in simplewallet at the moment.
  • Max mix level is 9

V0925: trezor_xmr_test_firmware_0925

  • Updated to trezor source v1.4.0

V0313: trezor_xmr_test_firmware_0313_win64

V0313: trezor_xmr_test_firmware_0313_linux64

V0313: trezor_xmr_test_firmware_0313_osx64

  • Fixed Bus: 10 error

V0311

  • Added reconnect handler when trezor is unplugged while simplewallet is active
  • Added tx_seckey storage support to firmware
  • Added support for 'address' simplewallet command
  • Fixed support for entering passwords when trezor is initialized/recovered with password protection enabled

V0306

  • Added binaries for linux-64 and osx-64
  • Fixed usb transport bug in linux/osx
  • Updated source to master b96147030cf06b7adacafebff196bc23a4b19199
  • Added trezorctl to wipe, reset, recover the trezor
  • Added trezorctl option to recover the monero mnemonic from the trezor seed given a specific address index

V0303

  • Added send prompts when transferring xmr with multi destination support.
  • Fix: added error handler when mixin level is > 9
  • Fix: added error handler when sending to > 10 addresses in a single transaction.

V0301

  • Test release

Upgrade instructions:

  1. Disconnect the trezor from the USB cable.
  2. Press both buttons on the trezor then connect the USB cable.
  3. Run upload.bat. Wait until new firmware upload is completed.
  4. Verify firmware fingerprint (from fingerprint.txt)
  5. Disconnect then reconnect trezor to USB.
  6. Go to MyTrezor.com (using CHROME) and initialize your device. (You have the option to restore your SEED words if you want to keep using the trezor with your current BTC (etc.) account.
  7. Close CHROME. Otherwise, it will not release the trezor USB device and simplewallet will not find it.
  8. Run simplewallet.exe --hardware-wallet n (n can be any reasonable number eg. --hardware-wallet 0)

PIN Entering: https://github.com/trezor/python-trezor

47AYtJeNKJjYNZLj71nBW938mbFSFwq1x4qVcNhBmdfUjhaqiGN7wqpVjH419eLYPzHFeF3TgzY2fDivz5EyGBYUSbAXwed

Replies: 58
antanst posted 7 years ago Replies: 2 | Weight: 0 | Link [ - ]

After a few months of usage, this firmware works spectacularly well in combination with MyTrezor's BTC wallet. Satoshilabs has recently released a new firmware with some fixes to make Trezor more usable in parallel from multiple services. Is there a chance that you are going to rebase your changes on top of the newer firmware? Thank you for your hard work so far.

leotreasure edited 7 years ago Weight: 0 | Link [ - ]

Got it working - this is really neat!! Thanks! I sent a small donation the other day. Any chance you or someone from the Trezor team can help us make an easier way to enter the pin similar to the way mytrezor.com works?

leotreasure edited 7 years ago Weight: 0 | Link [ - ]

I'm on a mac (El Capitan) and stuck at this step:

Run simplewallet.exe --hardware-wallet n (n can be any reasonable number eg. --hardware-wallet 0)

Leos-MacBook-Pro:monero0-9-4-0 ./simplewallet --hardware-wallet 0

Failed to parse arguments: unrecognised option '--hardware-wallet'

Edit: Solved, just needed to run the simplewallet included in the firmware download.

NUKE1989 posted 7 years ago Weight: 0 | Link [ - ]

Not wanting to be pushy or something but are there any updates on it? I would really love to use my new trezor with monero. In fact i bought it especially for when xmr can be stored on it (loved it and i should have bought one earlier).

Are there any problems or simply not enough time?

Reply to: mmortal03
NoodleDoodle edited 8 years ago Weight: 0 | Link [ - ]

A "bad client" refers to any software that communicates with the trezor, including a malicious simplewallet like you stated. The future GUI wallet, even a web based wallet like mymonero (in the future) can be used with the trezor, so this weakness has to be kept in mind.

The communications channel can be sniffed either through hardware or software. In order to mitigate this, a client first has to establish a "session" with the trezor, aftewards, all communication is encrypted. While this is not foolproof, it makes it harder to sniff data like viewkeys etc, using the usb interface. In contrast, the BTC part of the trezor never passes anything similar to a viewkey to a client, hence, there is no need to protect the raw information being passed. Technically, we can also introduce a similar mode with trezor (I'll call it the paranoid mode), in theory though, instead of taking about 3-5 minutes for the initial wallet sync, it would probably take days to do it (just a guesstimate, but it would be quite slow nonetheless).

mmortal03 posted 8 years ago Replies: 1 | Weight: 0 | Link [ - ]

"The viewkey is sent to the client. A bad client could potentially store these keys and see all incoming transactions to your account, privacy is then compromised."

A bad client, meaning only if simplewallet itself has been swapped out for something malicious on the machine, or is the communication channel that is passing the viewkey between the Trezor and simplewallet potentially insecure?

Reply to: NoodleDoodle dru1
dru1 posted 8 years ago Weight: 0 | Link [ - ]

Thanks!

Reply to: dru1
NoodleDoodle edited 8 years ago Replies: 1 | Weight: 0 | Link [ - ]

Links updated.

dru1 posted 8 years ago Replies: 1 | Weight: 0 | Link [ - ]

Hey NoodleDoodle, can you make the binaries available again? Just bought a second trezor ready to test it out with monero :)

Reply to: dEBRUYNE pa
NUKE1989 posted 8 years ago Weight: 0 | Link [ - ]

Any subjective guess about how much time this will take? After the reddit post about mymonero (which might be just fud anyway) i would prefer to send what amounts i keep there to trezor.

Reply to: pa
dEBRUYNE posted 8 years ago Replies: 1 | Weight: 0 | Link [ - ]

I'd wait until the code is released on Github and merged upstream by Trezor (and thus signed).

pa posted 8 years ago Replies: 1 | Weight: 0 | Link [ - ]

NoodleDoodle, How secure is the Trezor code at this point? Is it ready to entrust with medium or large amounts of XMR?

Reply to: NoodleDoodle ferretinjapan NoodleDoodle
ferretinjapan posted 8 years ago Weight: 0 | Link [ - ]

Thanks for the clarification on the word list, I'd already moved all the Monero out of the old account so the address changing wasn't a problem.

xmrdc posted 8 years ago Weight: 0 | Link [ - ]

Tested build 313 on OSX v. 10.9.4. Was able to send and receive .2xmr just fine. Can also log into mytrezor.com