Інтеграція гаманця з Trezor

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція гаманця з Trezor
Середній
~3-5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1306
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1218
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    920
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1147
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    610
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    885

Trezor Wallet Інтеграція

Trezor — другий за популярністю hardware wallet після Ledger, з принципово іншою архітектурою комунікації. Якщо Ledger використовує нативний WebHID/WebUSB, Trezor працює через власний мост — Trezor Suite Bridge або WebUSB-транспорт. Це впливає на те, як будувати інтеграцію та які сценарії обробляти.

Архітектура комунікації

Trezor Connect SDK (@trezor/connect-web) працює через iframe з доменом connect.trezor.io. Це означає: ваш код не спілкується з пристроєм напрямку — запит йде в iframe, той спілкується з Trezor Suite Bridge (нативне застосунок) або через WebUSB, отримує відповідь, повертає її через postMessage.

Такий підхід дає безпеку (ключі не покидають контрольований домен Trezor) та зручність (не потрібно встановлювати додаткове ПЗ при WebUSB), але створює залежність від інфраструктури Trezor.

Для застосунків, яким потрібна повна автономність, існує @trezor/connect (без iframe) — використовується в Trezor Suite напрямку. Але для web-інтеграції @trezor/connect-web — стандартний вибір.

Базова інтеграція

Ініціалізація:

import TrezorConnect from "@trezor/connect-web";

await TrezorConnect.init({
  lazyLoad: true,
  manifest: {
    email: "[email protected]",
    appUrl: "https://yourproject.com",
  },
});

Manifest обов'язковий — Trezor використовує його для ідентифікації застосунку та відображення його користувачу на екрані пристрою.

Отримання адреси:

const result = await TrezorConnect.ethereumGetAddress({
  path: "m/44'/60'/0'/0/0",
  showOnTrezor: true,
});

if (result.success) {
  console.log(result.payload.address);
} else {
  console.error(result.payload.error);
}

Підпис транзакції через TrezorConnect.ethereumSignTransaction. На відміну від Ledger, Trezor приймає не RLP, а об'єкт з полями:

const result = await TrezorConnect.ethereumSignTransaction({
  path: "m/44'/60'/0'/0/0",
  transaction: {
    to: "0xRecipient",
    value: "0xDE0B6B3A7640000", // 1 ETH у hex
    data: "0x",
    chainId: 1,
    nonce: "0x5",
    gasLimit: "0x5208",
    maxFeePerGas: "0x...",     // EIP-1559
    maxPriorityFeePerGas: "0x...",
  },
});

EIP-712 Підпис

Trezor підтримує ethereumSignTypedData починаючи з firmware 2.4.3 (Model T) та 1.10.5 (Model One). Важливий нюанс: Model One має обмежений екран та не може відображати складні структури — для нього використовується metamask_v4_compat: true режим з хешуванням на стороні хоста.

const result = await TrezorConnect.ethereumSignTypedData({
  path: "m/44'/60'/0'/0/0",
  data: typedData, // стандартний EIP-712 об'єкт
  metamask_v4_compat: true,
});

Типові проблеми

Bridge не запущений. Якщо користувач не встановив Trezor Suite Bridge та браузер не підтримує WebUSB — SDK не знайде пристрій. Рішення: в UI спрямовувати на сторінку встановлення, детектувати через TrezorConnect.getFeatures().

Popup заблокований. @trezor/connect-web відкриває popup для відображення дозволів. Браузерні блокувальники popup можуть це запобігти. Потрібно ініціювати виклики лише з user gesture (click).

Версія firmware. Старий firmware не підтримує EIP-1559 транзакції. Рекомендується перевіряти версію через TrezorConnect.getFeatures() та показувати попередження про оновлення.

Відмінності від Ledger в реалізації

Аспект Ledger Trezor
Транспорт WebHID/WebUSB напрямку iframe + Bridge/WebUSB
Залежність від інфраструктури Ні connect.trezor.io
Формат транзакції RLP-encoded Об'єкт з полями
Offline використання Так Обмежено
EIP-712 на бюджетних моделях Обмежено metamask_v4_compat

Базова інтеграція з Trezor (адреса + підпис транзакцій + EIP-712) — 1–2 тиж включаючи тестування на Model T та Model One та обробку всіх edge cases.