Overview: What is the Developer Portal?
Welcome to the Trezor Suite Developer Portal — the gateway for developers, product teams, and security engineers who want to integrate hardware-backed wallet flows into apps, exchanges, services, or internal tooling. The portal aggregates documentation, SDKs, sample projects, and security guidance so you can prototype and ship integrations that let users manage seed-backed wallets with a Trezor device.
Why build with Trezor Suite?
- Hardware-backed security: private keys never leave the device.
- Open-source: many components are open for audit and contribution.
- Cross-platform: Trezor Suite runs on desktop, web, and via bridge/CLI.
- Developer-first tooling: well-documented APIs and robust SDKs.
Who is this guide for?
Whether you're a frontend engineer integrating wallet flows, a backend engineer building transaction broadcasting services, or a security researcher vetting wallet interactions, this guide gets you from zero to a working prototype using Trezor Suite and related developer tooling.
Getting started: Setup & prerequisites
System requirements
- macOS, Windows, or Linux for Trezor Suite desktop development.
- Node.js & npm/yarn for running example apps and tools.
- A Trezor device (Model T or One) and latest firmware recommended.
Install Trezor Suite
Download and install the official Trezor Suite desktop app or use the web version when experimenting. Ensure your device firmware is up to date via Suite before continuing — firmware updates include important security fixes and UX improvements.
Development environment
Create a project folder, initialize npm, and install developer dependencies. Example:
mkdir trezor-dev && cd trezor-dev
npm init -y
npm install --save @trezor/connect
Using Trezor Bridge vs WebUSB
Trezor devices can be connected using Trezor Bridge (a local helper service) or WebUSB in supported browsers. For most developer workflows, using the official @trezor/connect library abstracts the connection detail so your code works across environments.
SDKs, Libraries & APIs
@trezor/connect
The primary JavaScript library to communicate with Trezor devices from web and Node.js. It exposes functions for requesting public keys, signing transactions, and interacting with supported coins.
import TrezorConnect from '@trezor/connect';
TrezorConnect.getPublicKey({ path: "m/44'/0'/0'/0/0" })
.then(response => console.log(response))
.catch(err => console.error(err));
REST & RPC endpoints (what to expect)
Trezor Suite itself is primarily a client application, but integrations often pair the client with backend services: transaction broadcasting, fee estimation, block explorers, and analytics. Use public blockchain APIs or run your own nodes; keep private keys on the device.
Language bindings & community SDKs
While official JS libraries are the most mature, the community provides bindings in Python, Go, and Rust. Search GitHub for up-to-date wrappers when building cross-platform tooling.
Common development workflows
1. Reading public keys & addresses
Typical flow: User connects device → app requests public key/address for a derivation path → display address for verification → optionally generate watch-only accounts.
2. Signing transactions
Prepare transaction data on the server or client, send it to the device for signing, then broadcast the signed transaction via an API. Keep the UX clear: show transaction details on the host app and verify that Trezor shows the same data on its screen.
3. Recovering & onboarding
Onboarding flows that include seed recovery should emphasize user safety: never request or transmit seed phrases. Use the device's recovery UI rather than re-implementing recovery in your app.
Security best practices
Never transmit private keys or mnemonic phrases
Under no circumstances should your backend or frontend request a user's mnemonic or private keys. Trezor's design keeps keys inside the device — keep it that way.
Verify on the device
Always show human-readable transaction details in your app and instruct users to confirm the same details on the Trezor device display. Encourage users to verify destination addresses by comparing what the device shows with your app.
Secure your backend
Even though signing happens on-device, backend systems that prepare transactions or broadcast them should be hardened: use rate limits, input validation, strong keys for API access, and monitoring.
Examples & sample projects
Simple address display (web)
import TrezorConnect from '@trezor/connect';
async function showAddress(){
const res = await TrezorConnect.getAddress({
path: "m/49'/0'/0'/0/0",
coin: 'Bitcoin'
});
if(res.success) console.log('Address:', res.payload.address);
}
Signing a Bitcoin transaction (outline)
- Gather UTXOs and construct a PSBT on the backend.
- Send the PSBT to the client and request Trezor to sign it.
- Receive signatures and finalize the transaction.
- Broadcast via your preferred node or API.
Integration tips
- Keep the UI stateful: show connection, device unlocked, and transaction verification stages.
- Fallbacks: detect Bridge/WebUSB availability and show clear install instructions.
- Testing: use testnets and disposable wallets while developing.
UX & design recommendations
Clear microcopy improves safety: show exact amounts, fees, and addresses; explain what signing does; and avoid asking users for their seed. Use progressive disclosure for advanced settings and provide a clear help path back to official Trezor documentation.
FAQ
Can I store encrypted user data on my servers?
Yes — storing user metadata (labels, preferences) encrypted at rest is common. Do not store seeds, private keys, or unencrypted sensitive transaction secrets.
Which coins are supported?
Trezor supports many major cryptocurrencies. For coin-specific features (e.g., Ethereum smart contract signing), consult the official docs for exact capability lists and parameters.
Conclusion & next steps
Building with Trezor Suite gives you access to hardware-secured wallet flows and a developer-friendly set of tools. Start small: read public keys, display addresses, and then progress to signing transactions and building polished UX flows. Prioritize device verification and never compromise on private key safety.
Happy building — ship safe, ship secure. Explore resources