List view
Implement the Refer a Friend feature in Trezor Suite desktop and mobile. Display a “Earn $XX per referral” CTA in the footer in dashboard and empty state/wallet views. CTA links to the referral landing page. 1. Desktop URL: https://trezor.io/refer-a-friend?utm_medium=desktop 2. Mobile URL: https://trezor.io/refer-a-friend?utm_medium=mobile
Due by November 30, 2025•2/2 issues closed- No due date•30/30 issues closed
- No due date•120/121 issues closed
#### [FIGMA FILE](https://www.figma.com/design/UdQpTfz2RhsoZzqLp9L8fU/Onboarding?node-id=1190-32481&t=mJ5RP6RDBFo5Otzs-4) ### Part 1 - Welcome flow 1. **PREVIEW**: As a new user opening the app for the first time, I would like to see the **Preview** screen where I can see quickly what the app helps me do. - CTAs available - [Continue] 2. **DATA COLLECTION**: As a user after click on continues from the **Preview** screen, I would like to see the **Data collection** screen that helps me make the decision on whether to share my data analytics anonymously or not. - Toggle for analytics - Default state: ON - User can toggle ON and OFF - CTAs available - [Confirm] the preference of data collection whether is on or off - [Learn more] about our data collection. URL: https://data.trezor.io/legal/privacy-policy.html 3. **BIOMETRICS**: As a user, after making a decision in the **Data collection** screen and IF my phone support biometrics or I have them enabled, I would like to see the **Biometrics** screen where I can make a choice to access the app through biometrics. - CTAs available - [Enable] biometrics - [Not now] to skip the process - Skip this **Biometrics** screen if - User does not have biometrics set up - User's phone does not support biometrics
Due by February 28, 2025•7/7 issues closedRecipient address (mandatory field) - User can insert the recipient address - Manually - Via scanning the QR code - Inserting from clipboard - When user inserts wrong address, he is informed that the address is invalid - Recipient address is validated (format&Checksum) Amount (mandatory field) - User can insert amount in FIAT or XRP - When user inserts amount in FIAT, it is reflected in XRP and vice versa - When user inserts amount above his balance, he is informed - When user wants send max, balance is calculated as balance-normal fee - FIAT input respects the user settings, if user has default currency USD, he inserts amount in USD - User can’t send 100% of his XRP from the account. There always has to be 10 XRP remaining to keep the account active Destination tag (Optional field) - User can insert destination tag - Accepted characters are only numbers - User can’t insert more than 10 numbers Mining fee - There is Normal fee set as default - User can pick between Normal and Custom (Custom PRIO 2) - If user picks fee and it exceeds the balance, he is informed he must either choose lower fee or change the amount - User sees the Total including amount and fee - Fees are updated every [check with Desktop] When user is done with inserting data, he can continue to Review&Sign the transaction If user leaves the form, data in inputs are not cleared unless user clear them by himself Review&Sign the transaction - User is prompted to confirm destination tag (if it was inserted) - User is prompted to compare the recipient address displayed on Trezor Device against the original source - When user confirms the recipient address on Trezor, he continues to Confirming amount - When user confirms amount, he continues to Confirm total including fee - When user Sign the transaction on Trezor device, he can Send (finalise) the transaction in the app - When user sends the transaction, transaction is proceeded and sent to validators - User is redirected to detail of the transaction Transaction sent - When transaction is sent in the mobile app, user sees the status of the transaction Pending - When transaction is confirmed, it is marked as Confirmed
Due by November 30, 2024•2/2 issues closed- Due by October 31, 2024•1/1 issues closed
- No due date•1/1 issues closed
Acceptance criteria: When user connects device with no coin enabled setting: - User is prompted to enable coins - User must choose at least one coin in order to continue - When user confirms the selection, he is redirected to dashboard - Only coins which are enabled are discovered - User can change the enabled coins in settings, section Enabled coins - When user change the settings, the new coin / removed coin changes are reflected after he leaves the settings Add new coin flow / Receive flow - When user clicks on “+” in add new coin, he can choose also from disabled coins - if the coin is disabled and user picks it, discovery for that coin runs first - If there are no existing accounts for this coin, user is moved to standard “Add new account flow” - If there is existing account, user can either pick the existing one or add another account Users with BTC-only FW - Skip the enabling and discover only BTC accounts (technical notes below) Spec / discussion / flow : https://www.notion.so/satoshilabs/Coin-par-i-ty-enabling-49bd8395b9734a0392b91e934ef4bc5d Design: https://www.figma.com/design/oQtgXoPIgGSlh01TLHnmeE/Coin-enabling?node-id=0-1&t=eWPVMyE9zsGHS3Sj-0 **Technical description for QA of how it works (by @vytick):** - If Coin Enabling is on, no account is discovered unless the network is enabled - For connected device only supported networks are shown. - When there was not setup of enabled networks done before, when the device is connected, initial setting is shown and user has to enable at least one network. In case user has View only devices at this moment, networks for all View Only visible device accounts are preselected. Discovery starts on confirmation. - If user has BTC only firmware, BTC is selected without showing the UI and discovered - User can set the networks via Settings. If he visits settings before the device is connected, View Only devices networks are preselected and if user leaves the settings screen with at least one coin selected, the initial setup does not take a place, since he already did this setup. - Testnets are visible only if enabled in Dev utils - In settings user needs to have selected at least one network - If network is disabled, on closing the settings, all accounts of this network are deleted (this does not include Portfolio tracker) - If network is enabled, it gets discovered on closing the settings. Discovery always makes at least one visible default account, even if that one is empty - The changes are applied at once by leaving Coin enabling settings screen. - If user tries to add new coin for the network that is not discovered, upon selecting this network, it is enabled immediately and discovery is run for it and found accounts are presented.
Due by September 30, 2024•24/24 issues closedPair BLE device (pairing UX is best effort) Generate Receive address on BLE device Sign TX on BLE device ```[tasklist] ### Tasks - [ ] Create standalone package for BT - [ ] Handle permissions for BT ```
Due by September 30, 2024•1/1 issues closedAcceptance criteria: - Keep the same structure as for ETH and tokens - Show the informational panels towards users regarding different networks - Blur suspicious transactions Spec and detailed comments in Notion: https://www.notion.so/satoshilabs/Coin-par-i-ty-enabling-49bd8395b9734a0392b91e934ef4bc5d Some info was gathered in #11473
Due by November 30, 2024•14/14 issues closedAs a user I would like to keep access to my wallet assets in order to be able to check my funds without connected Trezor Device > View-only mode formerly known as Remember mode ### Highlevel acceptance criteria - When the wallet is set to View-only, user can see his funds without connected device - When the wallet is set to View-only, user can reveal receive address without connected device but there is warning - User can switch off the settings for remembering the wallet ### Detailed acceptance criteria: **Setting up View-only** - When user connects Trezor device he sees "promotional bottom sheet" explaining View-only - User can enable View-only directly from the bottom sheet - When user clicks on "Enable", the feature from the bottom sheet, success message appears - When user clicks on "Skip", the feature is disabled and the bottom sheet does not occur again when user reconnects the device **Managing View-only** - User can enable / disable feature in settings, section View-only - User sees all the devices which are disconnected and in View-only - User sees current connected device - When user disable feature for disconnected Trezor, it disappears from the page - User can access info bottom sheet explaining the feature more in detail - So far it's 1 device ~ 1 wallet, so the settings is applied to Device's Standard wallet. With Passphrase it will be possible set up per wallets. **App in View-only and disconnected Trezor** - When user access disconnected Trezor, it is marked as Disconnected - When user wants to reveal the receive address, he is informed that Trezor is not connected and address can't be verified - If user clicks on Continue without verifying, receive address is revealed - User can't add new coin / account **Design** [Figma](https://www.figma.com/file/KvbZGG16li6BA90Xtpf0BP/Device-interaction?type=design&node-id=970-17548&mode=design&t=M3ntlJw3jRHwNpAp-11)
Due by May 31, 2024•21/21 issues closedAs a user I would like to be able to send coins via mobile app in order to be able to manage my funds. Recipient address (mandatory field) - User can insert the recipient address - Manually - Via scanning the QR code - Inserting from clipboard - from photo library - When user inserts wrong address, he is informed that the address is invalid - Recipient address is validated - BTC format (address formats - Segwit, Legacy, Legacy Segwit, Taproot) - Checksum - Length Amount (mandatory field) - User can insert amount in FIAT or BTC - If user has satoshis as displayed format, he sees also amount in satoshi - When user inserts amount in FIAT, it is reflected in BTC and vice versa - When user inserts amount above his balance, he is informed - When user inserts amount below dust, he is informed - When user wants send max, balance is calculated as balance-normal fee - FIAT input respects the user settings, if user has default currency USD, he inserts amount in USD Mining fee - Default mining fee is set to Normal - User can pick between Low, Normal and High fee - If user picks fee and it exceeds the balance, he is informed he must either choose lower fee or change the amount - User sees the Total including amount and fee When user is done with inserting data, he can continue to Review&Sign the transaction If user leaves the form, data in inputs are not cleared unless user clear them by himself or kill the app completely Review&Sign the transaction - User is prompted to compare the recipient address displayed on Trezor Device against the original source - When user confirms the recipient address on Trezor, he continues to Confirming amount - When user confirms amount, he continues to Confirm total including fee - When user Sign the transaction on Trezor device, he can Send (finalise) the transaction in the app - When user sends the transaction, transaction is proceeded to mempool to be mined - User is redirected to detail of the transaction Transaction sent - When transaction is sent in the mobile app, user sees the status of the transaction Pending - When transaction is confirmed, it is marked as Confirmed
Due by September 30, 2024•41/41 issues closed- Due by December 31, 2023•152/152 issues closed
Currently, UX fails, though hot candidates for UX wins.
No due date•1/1 issues closed- No due date•2/2 issues closed
- No due date•1/1 issues closed
- Due by June 1, 2023•5/5 issues closed
Coinjoin is released 🎉 and now is time to sort out which issues need to be addressed and which can wait… So here are the issues that shouldn't wait. And we need to address them to remove `Public beta` banner from our coinjoin account UI. Few more notes are available at [Notion](https://www.notion.so/satoshilabs/Coinjoin-2nd-phase-57054355d6d94423aa0ce6c7ade7657f)
Due by October 18, 2023•37/37 issues closed- No due date•1/2 issues closed
- No due date•7/7 issues closed
- Due by March 1, 2023•2/2 issues closed
- Due by September 30, 2023•2/2 issues closed
- Due by March 31, 2023•92/92 issues closed
- No due date•40/40 issues closed
- Due by March 28, 2023•257/257 issues closed
- No due date•16/17 issues closed
- No due date•9/9 issues closed
High level issue for the [trezor-connect](https://github.com/trezor/trezor-connect) work we need to do: ## P1 High: _Being done by @szymonlesisz._ - [ ] Move to monorepo. create multiple packages: - [ ] core (nodejs essential) - [ ] https://github.com/trezor/trezor-suite/issues/4363 - [ ] UI (landingpage/connect-explorer), - [ ] web wrapper(3rd party popup usage), - [ ] webextension-background/electron-layer wrapper - [ ] TypeScript support - [ ] more unit tests (btc-like: ltc, and others supported, errors, invalid-failed scenarios) coverage will tell ## P2 Medium: _Can be done by someone else once P1s are finished._ - [ ] Refactor? - [ ] merge npm-extended with regular npm build (different dependencies) - [ ] add builds to npm (to avoid yarn:build connect) - [ ] npm lib build and push from CI - [ ] Permissions in manifest - [ ] Auto-generated docs - [ ] React front-end - [ ] I18n support - [ ] integration tests: web with popup mode (puppetier?), webextensions (background and front scripts) ## P3 Low: _Can be done by someone else once P1s are finished._ - [ ] connect landing page (connect explorer) + stored permissions management (list what was allowed by domain) - [ ] auto-generated method params + runtime validations based on some json(?) scheme - [ ] unify methods and method params (for example: `getAddress` should be an abstract and decide whenever use `bitcoinGetAddress` or `ethereumGetAddress`) - [ ] trezor-suite intents instead of popup (if some 3rd party app wants to use Trezor it should open suite-desktop app if installed) - [ ] split UI logic into 2 parts: iframe above 3rd party apps (pairing/webusb support, infos, warnings etc) + popup in new window (sensitive actions like permissions/pin/passphrase) - [ ] method chaining (example: call getPublicKey, getAddress ... in a single session)
No due date•3/3 issues closed- No due date•3/3 issues closed
- Due by October 14, 2020•18/18 issues closed
- Due by January 1, 2020•4/4 issues closed
- Due by December 18, 2019•26/26 issues closed
- Due by December 4, 2019•18/18 issues closed
- Due by May 25, 2020•302/302 issues closed
- Due by December 31, 2019•1/1 issues closed
- No due date•34/34 issues closed
- Due by November 20, 2019•9/9 issues closed
- Due by November 6, 2019•27/27 issues closed