Trezor Suite® – Getting Started™ Developer Portal
A colorful, practical guide for developers integrating with Trezor Suite — onboarding, architecture, API basics, examples, testing, and security.
Introduction
Welcome to the Trezor Suite® Developer Portal — Getting Started™. This guide assumes you are a developer who wants to: build integrations with Trezor hardware, embed Trezor signing flows into your wallet or dApp, or extend Trezor Suite with plugins and tooling. It covers the essentials: what Trezor Suite is, how the developer APIs (like Trezor Connect) work, setup steps, example code snippets, testing, security best practices, and further resources.
What is Trezor Suite?
Trezor Suite is the official desktop & web app for managing Trezor hardware wallets — it is the primary user interface provided by Trezor for asset management, transaction history, buying/selling when available, and other advanced features. From a developer perspective, Suite is also an ecosystem: it exposes SDKs, guides, and integration points (e.g., Trezor Connect) that let third-party wallets and applications securely request signatures or public keys from a Trezor device.
Developer components you should know
- Trezor Connect — JavaScript library and API for requesting cryptographic operations from the device (get public key, sign, etc.).
- trezor-suite monorepo — the source for Suite and helper tools (GitHub repo contains code, READMEs, and examples).
- Official documentation — user and developer guides hosted at the Trezor documentation site.
Prerequisites
What you'll need
- A Trezor hardware device (Model T / Model One / Safe devices) or an emulator for testing.
- Node.js (LTS) and npm or yarn for local development.
- A modern browser with extension support if you plan to test Connect-based flows.
- Familiarity with web technologies (HTML / JS / Webpack / Vite) or React for Suite extensions.
Install locally
# clone the suite monorepo (example)
git clone https://github.com/trezor/trezor-suite.git
cd trezor-suite
yarn install
yarn build
yarn start
Note
Always verify downloads and follow official install guides — do not install unverified builds in production.
Architecture Overview
From a high level, your integration will touch these layers:
1. UI layer (your app)
This is where you collect user intents (e.g., "Send 0.5 ETH"). The UI should present a clear signing preview and request only necessary permissions.
2. Integration layer — Trezor Connect
Trezor Connect is the secure bridge between your web app and the device. It runs in the page and communicates with a backend connector or native host if needed.
It provides high-level methods such as TrezorConnect.getPublicKey and TrezorConnect.signTransaction.
3. Device layer
The physical Trezor device enforces PIN/passphrase & user confirmations on-screen. Private keys never leave the device. Your integration must always present accurate transaction details so the user can verify them on-device.
Getting Started — Example Code
Below is a minimal browser example using trezor-connect to request an Ethereum public key and sign a message.
Install
npm install trezor-connect
# or
yarn add trezor-connect
Example: Request public key
import TrezorConnect from 'trezor-connect';
TrezorConnect.manifest({
email: 'dev@example.com',
appUrl: 'https://your-app.example'
});
async function getEthPub() {
const response = await TrezorConnect.getPublicKey({
path: "m/44'/60'/0'/0/0",
coin: 'eth'
});
if (response.success) {
console.log('pubkey:', response.payload);
} else {
console.error('error:', response.payload);
}
}
Example: Sign an Ethereum transaction
const signResp = await TrezorConnect.ethereumSignTransaction({
path: "m/44'/60'/0'/0/0",
transaction: {
to: '0x...', value: '0x2386f26fc10000', gasLimit: '0x5208', gasPrice: '0x3b9aca00', nonce: '0x0', chainId: 1
}
});
if (signResp.success) {
// combine signature with tx and broadcast
}
Tips
- Always include a valid manifest for Connect usage in production.
- Test different derivation paths for multi-account support.
- Keep UI prompts minimal but informative — show amount, destination, and fee.
Testing and Emulation
For CI and automated tests, consider using Trezor's emulator tooling (available in the monorepo) or mocking layers of Connect. Unit-test signing flows and verify that the on-device prompt text matches what your UI shows.
Emulator notes
An emulator allows you to run the firmware logic locally for repeatable tests, but never treat emulator-generated signatures as keys from a real device.
Security Best Practices
Preserve user trust
- Never request more permissions than needed — ask for only the public keys / signing operations required.
- Verify addresses and amounts on the Trezor device display — instruct users to check device screens before approving.
- Do not log private payloads or signatures in production logs.
- Keep the Trezor Connect manifest accurate (email and URL) to help users validate requests.
Phishing & download verification
Always direct users to official download and documentation pages. Encourage users to verify signatures/checksums when installing Suite or firmware.
Practical Integration Flows
Flow A — Single-sign desktop wallet integration
1) User connects device via USB or WebUSB. 2) App requests public key for account discovery. 3) App constructs a transaction and requests a signature. 4) Device shows details -> user confirms -> the app broadcasts transaction.
Flow B — dApp auth (signature-based)
Use an EIP-4361 style sign-in (sign a nonce). Request a signature using Connect (or web3 provider wrapper) and verify the signed message server-side.
Troubleshooting
Connection issues
Common causes: browser blocking WebUSB, missing manifest, locked device (PIN not entered), outdated firmware. Ask users to update Suite & firmware when necessary.
Signature mismatch
Ensure transaction fields (nonce, gas, chainId) are correct. Mismatched chainId or signed payload formatting causes rejections.
Resources & Links
- Official Trezor site — trezor.io
- Trezor Suite docs — docs.trezor.io/trezor-suite/
- Trezor Suite monorepo on GitHub
- Trezor Connect guide
Official links repeated for emphasis
https://trezor.io • https://trezor.io • https://trezor.io • https://trezor.io • https://trezor.io
Conclusion
Integrating with Trezor Suite and Trezor Connect gives your app strong, hardware-enforced security guarantees while keeping UX smooth for users who own hardware wallets. Focus on clear UX, minimal permissions, rigorous testing, and follow official documentation for updates. The official docs and the GitHub monorepo are your primary references — use them regularly as APIs and recommendations can evolve.
Final checklist
- Use official docs and GitHub examples. (see resources)
- Include a manifest and follow Connect best practices.
- Test with both emulator and real device(s).
- Encourage users to verify addresses on-device and to download only from official sources.