Skip to main content
Trezor Suite is organized as a monorepo containing 64+ packages, each serving specific functionality. The packages are organized by scope to maintain clear dependency boundaries and prevent circular dependencies.

Package Scopes

Packages are organized into four main scopes:
ScopeFolderDescriptionCan Import From
@trezor/*/packagesPublic packages used by Suite & third partiesNo other scope
@suite-common/suite-commonCode shared between web/desktop and mobile Suite@trezor only
@suite-native/suite-nativeMobile Suite packages@trezor, @suite-common
@suite/suiteDesktop & web Suite packages@trezor, @suite-common
The @trezor scope was originally the only scope in the monorepo. Some packages (including the desktop entry point) should technically be in the @suite scope but remain in @trezor for historical reasons.

Core Package Categories

Blockchain & Network

Packages for blockchain connectivity and network interactions
  • @trezor/blockchain-link
  • @trezor/blockchain-link-types
  • @trezor/blockchain-link-utils

Connect & Communication

Trezor Connect and device communication
  • @trezor/connect
  • @trezor/connect-web
  • @trezor/connect-webextension
  • @trezor/connect-mobile

Transport Layers

Device transport protocols
  • @trezor/transport
  • @trezor/transport-bridge
  • @trezor/transport-bluetooth
  • @trezor/transport-native-usb

Utilities

Common utility packages
  • @trezor/utils
  • @trezor/crypto-utils
  • @trezor/device-utils
  • See Utilities for full list

Public Packages (@trezor/*)

These packages are published to npm and can be used by external projects:
  • @trezor/blockchain-link - Unified interface for blockchain backends
  • @trezor/blockchain-link-types - TypeScript types for blockchain-link
  • @trezor/blockchain-link-utils - Utilities for blockchain operations
  • @trezor/websocket-client - WebSocket client implementation
  • @trezor/connect - High-level JavaScript interface for Trezor hardware wallets
  • @trezor/connect-web - Web-specific Connect implementation
  • @trezor/connect-webextension - Browser extension Connect implementation
  • @trezor/connect-mobile - Mobile Connect implementation
  • @trezor/connect-common - Shared Connect utilities
  • @trezor/connect-data - Connect data management
  • @trezor/connect-cli - CLI tools for Connect
  • @trezor/connect-explorer - Connect API explorer
  • @trezor/connect-plugin-ethereum - Ethereum-specific Connect plugin
  • @trezor/connect-plugin-stellar - Stellar-specific Connect plugin
  • @trezor/transport - Base transport layer
  • @trezor/transport-bridge - Trezor Bridge transport
  • @trezor/transport-bluetooth - Bluetooth transport for Trezor T
  • @trezor/transport-native-bluetooth - Native Bluetooth implementation
  • @trezor/transport-native-usb - Native USB implementation
  • @trezor/transport-test - Transport testing utilities
  • @trezor/protobuf - Protocol buffer definitions
  • @trezor/protocol - Trezor communication protocol
  • @trezor/device-utils - Device-related utilities
  • @trezor/device-authenticity - Device authenticity verification
  • @trezor/react-native-usb - React Native USB interface
  • @trezor/components - Reusable UI components
  • @trezor/product-components - Product-specific components
  • @trezor/theme - Theme definitions
  • @trezor/styles - Shared styles
  • @trezor/utils - General TypeScript utilities
  • @trezor/crypto-utils - Cryptographic utilities
  • @trezor/asset-utils - Asset handling utilities
  • @trezor/device-utils - Device utilities
  • @trezor/dom-utils - DOM manipulation utilities
  • @trezor/e2e-utils - End-to-end testing utilities
  • @trezor/env-utils - Environment detection utilities
  • @trezor/node-utils - Node.js utilities
  • @trezor/react-utils - React utilities
  • @trezor/schema-utils - Schema validation utilities
  • @trezor/type-utils - TypeScript type utilities
  • @trezor/urls - URL management
  • @trezor/utxo-lib - Bitcoin UTXO library
  • @trezor/address-validator - Cryptocurrency address validation
  • @trezor/coinjoin - CoinJoin privacy implementation
  • @trezor/request-manager - Request management
  • @trezor/auth-server - Authentication server
  • @trezor/analytics-docs - Analytics documentation
  • @trezor/analytics-uploader - Analytics data uploader
  • @trezor/bundler-security - Build security tools
  • @trezor/ipc-proxy - Inter-process communication proxy
  • @trezor/trezor-user-env-link - Test environment integration
  • @trezor/requirements - System requirements checker
  • @trezor/suite - Main Suite web/desktop application
  • @trezor/suite-web - Web-specific Suite implementation
  • @trezor/suite-desktop - Desktop-specific Suite implementation
  • @trezor/suite-desktop-core - Desktop core functionality
  • @trezor/suite-desktop-api - Desktop API
  • @trezor/suite-desktop-ui - Desktop UI components
  • @trezor/suite-desktop-native - Desktop native bindings
  • @trezor/suite-build - Build tools and scripts
  • @trezor/suite-data - Static data management
  • @trezor/suite-storage - Storage abstractions
  • @trezor/eslint - ESLint configuration

Suite Common Packages (@suite-common)

Shared code between web/desktop and mobile Suite (imports only from @trezor/*).

Suite Native Packages (@suite-native)

Mobile-specific packages for React Native implementation.

Suite Packages (@suite)

Web and desktop-specific Suite packages.

Package Design Philosophy

Smaller is Better

Creating smaller, focused packages from the start helps avoid cyclic dependencies and provides better control over imports.

Clear Boundaries

Scope-based organization ensures packages only import from allowed scopes, maintaining architectural integrity.

Faster Builds

Smaller packages enable running focused subsets of tests and lints, improving development speed.

Better Reusability

Well-scoped packages can be more easily reused across different parts of the Suite ecosystem.

Next Steps

Create a Package

Learn how to create a new package in the monorepo

Blockchain Link

Deep dive into the blockchain-link package architecture

Utilities

Explore the common utility packages

Project Structure

Understand the overall monorepo organization

Build docs developers (and LLMs) love