Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trezor Support #1491

Open
19 of 21 tasks
matheusd opened this issue Jun 25, 2018 · 34 comments
Open
19 of 21 tasks

Trezor Support #1491

matheusd opened this issue Jun 25, 2018 · 34 comments

Comments

@matheusd
Copy link
Member

matheusd commented Jun 25, 2018

Meta issue for keeping track of work needed to integrate trezor. I'll try to do some of the required work on separate PRs without directly referencing trezor so that we can start integrating in stages, instead of doing only a single very large PR at the end. Even so, it's likely that some of the PRs will be pretty big.

Still subject to a lot of change at the moment. Order of execution is not fixed.

Proof of concept stage (code)

  • Generate address
  • Sign Tx
  • Obtain trezor masterpubkey
  • Pin operations (enable/disable/enter) 5b4887b
  • Support use passphrase to encrypt trezor wallet 8c09c07
  • Sign and Verify messages 7f95884
  • Mnemonic operations (clear/recover) 42fd1ca
  • Full demo support 0eb6c4c
  • Mainnet tests

Basic decrediton integration

  • Upstream mainnet coin info to trezor firmwares
  • Detect and react to trezor events (trezor connected/disconnected)
  • Import wallet from trezor screen (wallet creation)
  • Change instances of passphrase modal to use trezor confirmation
  • Change or disable unsupported features (message signing/verification, tickets, etc)
  • Correctly support stealing the device connection for stuck devices

Advanced decrediton integration (not everything will be feasible at this moment)

  • Support signing tickets (requires ability to import scripts on watch only wallets)
  • Support multiple accounts (requires ability to import root xpub instead of account xpub)
  • Support trezor passphrase input
  • Support reset and reseed trezor directly
  • Support importing trezor native seed as decred seed (might require separate tooling done here)
  • Implement trezor-core changes to support decred in the model T firmware
@ta-lind
Copy link
Member

ta-lind commented Jun 26, 2018

Here's the updated DCR symbol generated for Trezors home screen.
Also included the complete latest updated logo and symbol package, which can be used in Trezor's various web instances where needed.

dcr - trezor - homescreens.zip

Decred - Logo Package.zip

@Grum1in
Copy link

Grum1in commented Aug 10, 2018

So, Do you do that anybody can buy tickets via Trezor?

@alexlyp
Copy link
Member

alexlyp commented Aug 10, 2018

Not yet.

@matheusd
Copy link
Member Author

matheusd commented Aug 16, 2018

Ticket purchasing Proof of Concept:

Firmware changes: trezor/trezor-mcu@master...matheusd:ticket-poc
Wallet changes: decred/dcrwallet@master...matheusd:trezor-tickets-poc
Client changes: https://github.com/matheusd/trezor-decred-poc/compare/ticket-poc

Rough outline:

  • Trezor firmware needs to be updated to recognize and process decred ticket outputs
  • Trezor.js needs to accept decred_tree input metadata
  • Dcrwallet grpc needs to allow import of scripts
  • Dcrwallet grpc needs new endpoint that generates unsigned split/ticket txs (dcrwallet issue and tentative PR)
  • Decrediton needs to be updated to tie both ends

@prusnak
Copy link

prusnak commented Oct 19, 2018

@matheusd Can you summarize what is the current state of things? This issue hasn't been updated for 4 months.

@matheusd
Copy link
Member Author

Waiting for the release of the official firmware so that we can test & merge the PRs for supporting trezor in decrediton:

decred/dcrwallet#1189
#1547

@matheusd
Copy link
Member Author

By "official firmware", I mean the model one firmware with trezor/trezor-crypto#167 applied.

@prusnak
Copy link

prusnak commented Oct 19, 2018

You don't need to wait for the official firmware. Emulator works just fine for both T1 and T2; plus is ready instantly. Anyway, the current plan is to release the firmware update (both for T1 and T2) on 29th of October.

Thanks for the update!

@matheusd
Copy link
Member Author

Yes, I have performed all tests in the emulator (and on the physical model one I have). It's just that other developers aren't so keen on setting up the whole trezor stack to build a custom emulator/firmware to verify everything.

Since I have your attention here...

  1. The latest 1.7.0 tag in trezor-mcu does not seem to include the latest trezor-crypto (with the fix in Fix decred bip32 name trezor/trezor-crypto#167)
  2. Any chance we can setup a verification program in trezor for coin developers (not just decred but any and all coins)? Something like, a forum/email list/whatever with early access to the proposed firmware a week before the actual release so we can verify everything is in order and sync up any marketing efforts?

@prusnak
Copy link

prusnak commented Oct 19, 2018

  1. the next firmware will be 1.7.1, yet to be tagged
  2. we'll think about it

@starsoccer
Copy link

Is there any ETA on ability to use tickets/staking with trezor? Seems there has been no progress for the last 8 or so months.

@prusnak
Copy link

prusnak commented Aug 4, 2019

@starsoccer We can think about it when there is a Decred wallet working with Trezor.

@oregonisaac
Copy link

Did you know Decred is now implemented in upstream Blockbook? So native Decred use with Trezor software and libraries is now possible:
https://github.com/trezor/blockbook/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed+decred

@marcopeereboom
Copy link
Member

@matheusd trezor folks have contacted me to get this feature enabled. Can you speak to what is needed?

@ghost
Copy link

ghost commented Dec 24, 2019

Any updates on this one?

@prusnak
Copy link

prusnak commented Dec 24, 2019

README says you can use Trezor with Decredition since version 1.4.0. There is also Exodus wallet that supports Decred on Trezor.

@gianlucalslz
Copy link

yeah but not to stake, it's a view only wallet so who cares

@prusnak
Copy link

prusnak commented Dec 24, 2019

I was under impression that both are full featured wallets (with no staking support), not view only wallets.

@gianlucalslz
Copy link

I've been inaccurate indeed: when you try to stake it tells you it's a view only one

@matheusd
Copy link
Member Author

@gianlucalslz It's "view only" (actually watching only) from the PoV of Decrediton: you can't sign transactions without the trezor device.

You can use it for regular transactions but not for staking at the moment. If you are actually using Decrediton+trezor for regular transactions, please test out all your use cases (receiving from/sending to merchants/exchanges/other wallets/whatever else) and let us know whether everything is working as intended or if you're hitting any bumps.

Besides coding we need some feedback from actual trezor users on how Decrediton is behaving for them before enabling staking.

@ghost
Copy link

ghost commented Dec 27, 2019

@matheusd I'll give this a try during the next few days, probably after the holidays though.

This was referenced Feb 19, 2020
@ghost
Copy link

ghost commented Aug 27, 2020

Any updates (estimates) on full integration of Decrediton and Trezor hardware wallets?

@dre-tech
Copy link

Would be amazing to finally have hardware wallet staking! @matheusd I've been using Trezor with Decredition for over a year now. No issues.

@xrider8
Copy link

xrider8 commented Sep 26, 2020

I don't trust any wallet other than the hardware LEDGER and TREZOR. I want staking DECRED. Why should I put my assets at risk? Make hardware support for STAKING!

@manoelpqueiroz
Copy link

I do not follow the project closely to comment on the impact of priority development from the team, but I will follow others here and reiterate how crucial it is to enable staking with hardware devices, and in my opinion this integration should be top priority of the team.

In order to drive adoption, you have to facilitate every aspect of currency usage for the adopters. For a crypto which sells itself on the topic of proof-of-stake, that means the ability to actually stake must be integrated with devices that the majority of people will use for simplicity: no one who has a hardware device will be interested to deal with Decred if that involves not using the hardware to obtain the currency's greatest benefits.

Ledger has staking support on 15 currencies, and for 4 of them you don't even need a third-party wallet to stake, you can do that directly within Ledger Live. Immediately all of these coins will be perceived by Ledger users as more interesting to deal with than Decred despite it also being supported on this device.

Staking support with hardware devices, whether Ledger of Trezor, should have been implemented ages ago (this discussion is already two years old and the developers still have not addressed it). And so long the team remains frozen in place with this issue, other more agile, nimble and consumer-oriented teams will drive adopters to their coins with actual features that make people invest in their projects.

@ghost
Copy link

ghost commented Oct 16, 2020

Trezor is introducing a desktop client, might be easier to integrate with this.

Introducing Trezor Suite Public Beta

https://blog.trezor.io/introducing-trezor-suite-public-beta-7c5949aeef45?source=collection_home---4------0-----------------------

@xaur
Copy link
Contributor

xaur commented Nov 11, 2020

@manoelpqueiroz I assume you are mr9714 on Reddit since what you say closely matches this and this.

I kindly ask you to not rant on GitHub. "X must be top prio because I say so" and "X should have been done ages ago" is not helping anyone to do anything sooner.

Speaking on the subject,

Ledger has staking support on 15 currencies, and for 4 of them you don't even need a third-party wallet to stake, you can do that directly within Ledger Live

Ledger is the third party, and iirc Ledger Live is not offline and involves some requests to some servers.

Imo Ledger should be lower priority compared to Trezor because they are proprietary and closed source, have been caught on hardware/firmware vulns, lack competence to secure sensitive customer data and not leak an entire user database.

@manoelpqueiroz
Copy link

@xaur actually, I have never signed up for a Reddit account.

I do appreciate the feedback though, I did not feel like ranting, but rather laying out reasons as to why prioritising this issue would be more beneficial to the project. However, you are correct, GitHub is not supposed to be about mere discussion.

@creeea
Copy link

creeea commented Oct 18, 2022

Will this ever be implemented?

@xaur
Copy link
Contributor

xaur commented Oct 18, 2022

I think this PR is waiting for decred/dcrwallet#1946

@0JustinMiles0
Copy link

Any update on enabling DCR staking from the Trezor wallet? Hardware wallet security is the industry standard. People aren't going to put too much money in crypto that don't support hardware wallet and what's the point of holding DCR if you can't participate in staking?

@xaur
Copy link
Contributor

xaur commented May 10, 2023

@0JustinMiles0 tl;dr this is again blocked on firmware changes. You can subscribe to #2681 to follow Trezor+staking specifically. This issue is broader covering all Trezor stuff in Decrediton. Regular transactions should work and Trezor UX has been redesigned in v1.7.7.

Perhaps we should even close this issue since #2681 seems to be the only remaining part of "Trezor Support".

@AlexBur8042322
Copy link

Какие-нибудь новости о включении стейкинга DCR из кошелька Trezor?

@xaur
Copy link
Contributor

xaur commented Jun 4, 2023

@AlexBur8042322 please see the previous message. No changes since May.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests