Overview
Welcome to the Trezor Suite® – Getting Started™ Developer Portal. This document gives developers a clear path to integrate, test, and deploy solutions that interact with Trezor hardware wallets via Trezor Suite. It focuses on core concepts, secure development practices, and practical examples while providing official references for deeper study.
Who this is for
Developers building wallet integrations, hardware-supporting services, browser extensions, or third-party applications that require user key management and transaction signing with Trezor devices. Familiarity with JavaScript/TypeScript, web APIs, and basic cryptography will help, but the guide is approachable for intermediate developers as well.
Goals
- Explain the architecture and flows used by Trezor Suite.
- Provide step-by-step quickstart examples.
- Highlight security best practices and testing tips.
- Ship a working demo flow that signs a transaction.
Trust & safety note
Trezor's design centers on device-isolated private keys. Never share seed phrases or private keys. Use the official SDKs and keep firmware and Suite software up to date.
Quickstart: First Integration
This quickstart gets a developer from zero to a working connection to a Trezor device using the official libraries. The minimal flow:
- Install dependencies (Trezor Connect or Embedding Suite).
- Initialize a session and request device permissions.
- Derive an address / get public key.
- Create and sign a transaction.
- Broadcast the signed transaction to the network.
Sample (JavaScript) — initialize and get accounts
// Install (example)
// npm install trezor-connect
import TrezorConnect from 'trezor-connect';
TrezorConnect.init({
connectSrc: 'https://connect.trezor.io/9/',
popup: true,
lazyLoad: true,
});
const response = await TrezorConnect.getPublicKey({
path: "m/44'/0'/0'/0/0",
});
if (response.success) {
console.log('xpub:', response.payload.xpub);
} else {
console.error(response.payload.error);
}
Notes
Use secure hosting (HTTPS) for production. For web apps, prefer popup flows to reduce cross-origin complexity. Always handle user cancellations and device errors gracefully.
Security Best Practices
Security is foundational. Below are concise rules to follow during development and when advising users.
Do
- Keep sensitive operations on-device; never export private keys.
- Validate user actions and show clear transaction summaries before signing.
- Pin supported firmware and library versions in CI to avoid surprises.
Don't
- Transmit or store seed phrases. If a user provides a seed, guide them to restore on their own device only.
- Assume all USB devices are trusted — always request explicit user confirmation on-device.
Testing & CI
Automate integration tests using emulators when available, and include manual device tests in release checklists. Monitor logs for device errors and unexpected behavior.
Developer Flow Examples
Signing a transaction (high level)
1) Build unsigned transaction off-chain. 2) Present a clear human-readable summary. 3) Send signing request to device. 4) Verify signature and broadcast.
UX considerations
Show the receiving address, amount, fee, and any OP_RETURN or memo data on-screen and in the device prompt where possible. Users should be able to confirm every important field on their Trezor screen.
Localization
Localize strings used in transaction summaries with short, precise translations. Avoid truncating critical fields like addresses.