User Onboarding Flow
Trezor Suite’s onboarding process guides users through setting up their Trezor device, from initial connection to final configuration.Overview
The onboarding flow can be triggered in several ways:- Initial run: First launch of Suite or after clearing app storage
- Uninitialized device: Connecting a device without a seed
- Device wipe: After wiping a device from Suite and proceeding with setup
Onboarding Steps
1. Welcome
The welcome step handles device connection and initial setup:- Device detection: Prompts users to connect their Trezor in normal mode
- Transport layer: Handles WebUSB or Trezor Bridge communication
- Invalid states: Manages bootloader mode, unreadable devices, and transport issues
Data Analytics Consent
During initial run, users are asked to consent to anonymous data collection to help improve Suite:- Optional and can be changed later in Settings
- No sensitive personal information is collected
- Enable Tor to mask IP addresses from third parties
Device Security Check
Authenticity verification adjusted based on device state:- New device: No firmware, no seed (verify hologram, seller, package)
- Wiped device: Firmware installed, no seed (confirm previous usage)
- Used device: Has seed and firmware (confirm ownership)
2. Firmware Update
The firmware step ensures devices run the latest firmware:Normal vs Bootloader Mode
- Normal mode: Standard device operation
- Bootloader mode: Required for firmware installation (access via button press during connection)
- These modes are seen as different devices by Suite
- Devices without firmware are always in bootloader mode
Installation Process
- User clicks “Install firmware”
- For devices with firmware: disconnect and reconnect in bootloader mode
- Device requests confirmation
- Installation proceeds with progress indicator
- Device restarts automatically (newer models) or requires manual reconnection (T1B1)
Intermediary Firmware
T1B1 devices with old bootloaders require intermediary firmware:- Install intermediary firmware (bumps bootloader)
- Device reconnects in bootloader mode
- Install latest firmware
3. Seed Generation
Users choose how to initialize their device:Generate New Seed
Create a new wallet with single seed or Shamir backup (not available on T1B1)
Recover from Mnemonic
Restore an existing wallet using recovery seed phrase
Recovery Process
T2T1 and newer: Entire process done on device T1B1: Users select:- Number of words (12, 18, or 24)
- Recovery method:
- Standard: Enter words in Suite UI
- Advanced: Enter via keyboard matrix on device (more secure)
4. Seed Backup
Users are guided to back up their seed:- T2T1 and newer: On-device backup with confirmation prompts
- T1B1: Write down words displayed on device
- Optional step - can be completed later from Settings
5. PIN Setup
Secure the device with a PIN:- Confirmation prompt via button requests
- T1B1: Enter PIN twice via matrix in Suite
- T2T1 and newer: Enter PIN on device touchscreen
- Auto-lock activates after PIN is set
PIN matrix positions are randomized for security. Never reveal actual numbers - only grid positions.
6. Suite Settings
Configure Suite preferences:- Enabled coins: Select cryptocurrencies to activate
- Tor network: Enable privacy protection
- Custom backends: Configure custom Blockbook servers
- Settings persist if user has previously configured Suite
7. Final Setup
Complete device personalization:- Device label: Name your device
- Homescreen: Choose or upload custom homescreen image
- Ready to use!
Technical Details
Button Requests
ThebuttonRequests array tracks device interaction requirements:
Device Modes
Bootloader mode considerations:- WebUSB requires pairing twice (normal and bootloader modes)
device.featuresfields may benullin bootloader mode- Firmware version reports bootloader version in bootloader mode
State Management
Onboarding state stored in:suite.flags.initialRun: Tracks first run status per devicefirmwarereducer: Manages firmware installation flow- Persistent storage: Remembers completed steps
Implementation Files
Best Practices
For Users
For Users
- Verify device authenticity before setup
- Write down seed backup on physical card only
- Choose a strong, memorable PIN
- Complete backup before adding funds
For Developers
For Developers
- Always check button request codes
- Handle device disconnections gracefully
- Clear button requests between steps
- Support both WebUSB and Bridge transport