Your gateway to integrating hardware wallet functionality, step by step, with clarity and confidence.
This Official Site® for Trezor Suite® is designed to help developers—from beginners to advanced engineers—get started with integrating and leveraging the power of Trezor hardware wallets in your applications. Our mission is to simplify cryptographic security, provide transparent APIs, and foster a collaborative environment that keeps user security front and center.
On this portal, you'll find structured documentation, clear code samples, interactive tutorials, and a technical reference of all methods and interfaces. Whether you're building a web wallet, exchange module, or a blockchain tool, this page serves as your launchpad.
Let’s walk through each stage: from setup and installation, through API usage, to advanced examples and community resources.
Before diving into code, it’s essential to have your development environment ready. Below is a checklist to make sure everything works smoothly.
Once your environment is primed, you're ready to install the libraries and test connectivity.
Let’s install the tools and write a minimal sample to verify that your Trezor device is reachable via code.
mkdir trezor‑project && cd trezor‑project
npm init -y
npm install @trezor/connect
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Trezor Test</title>
</head>
<body>
<script type="module">
import TrezorConnect from '@trezor/connect';
TrezorConnect.init({
connectSrc: 'https://connect.trezor.io/8/',
popup: true,
}).then(() => {
return TrezorConnect.getPublicKey({ path: "m/44'/0'/0'/0/0" });
}).then(response => {
if (response.success) {
console.log('Public Key:', response.payload.publicKey);
} else {
console.error('Error:', response.payload.error);
}
});
</script>
</body>
</html>
This small snippet initializes the Trezor Connect library, opens a popup for user confirmation, and then reads a public key at the BIP‑44 example path. If successful, it logs the key; otherwise, displays an error.
Test this file using a simple HTTP server (e.g. `npx http‑server`) because some browser APIs require a server context rather than `file://`.
The API reference is the core of this portal. Below is a curated summary of the most commonly used methods, their parameters, and return patterns. For full reference, see our dedicated pages.
init(options)
— initialize the library with options like connectSrc
, popup
, lazyLoad
.getPublicKey(params)
— fetch a public key for a BIP32 path.signTransaction(params)
— sign transactions in supported coins (Bitcoin, Ethereum, etc.).ethereumSignMessage(params)
— sign arbitrary messages in Ethereum context.applySettings(params)
— change Trezor device settings (e.g. passphrase, language).wipeDevice()
, resetDevice()
— reset or wipe device states.path
(string) — BIP32 path, e.g. "m/44'/60'/0'/0/0"
coin
(string) — coin symbol, e.g. "btc"
, "eth"
inputs
/ outputs
— arrays describing transaction structuremessage
(string) — in signing message flowsu64
, buffer
— used in lower‑level or specialized callsIn every method call, you’ll receive a consistent response structure:
// Success
{ success: true, payload: { /* method‑specific result */ } }
// Failure
{ success: false, payload: { error: "Error description or code" } }
We maintain an error catalog that outlines common error codes such as ActionCancelled
, Device_Not_Found
, Transport_Error
, and more. Use this catalog to map user‑friendly error messages in your UI.
Walkthroughs and sample projects help you grasp best practices. Below are a few tutorials you can try immediately.
Build a minimal frontend that allows a user to connect, view address, and sign transactions.
getPublicKey()
to display the address or public key.signTransaction()
.For an Ethereum-based dApp, you may ask users to sign messages instead of full transactions for login or consent flows.
TrezorConnect.ethereumSignMessage({
path: "m/44'/60'/0'/0/0",
message: "Login nonce: 12345",
hex: false
}).then(response => {
if (response.success) {
console.log("Signature:", response.payload.signature);
} else {
console.error("Error:", response.payload.error);
}
});
The Official Site® Trezor Suite® Developer Portal is community-driven. We encourage feedback, contributions, and open collaboration.
trezor-connect
)By participating, you help refine the usability, security, and reach of the Trezor developer ecosystem.
Click a color box below to reveal its hex code:
Hex: —