Интеграция кошелька с Trust Wallet

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция кошелька с Trust Wallet
Простая
~2-3 рабочих дня
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1258
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1170
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    873
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1092
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    830

Интеграция кошелька с Trust Wallet

Trust Wallet — мобильный first кошелёк с встроенным DApp браузером. Интеграция отличается от MetaMask в одном важном аспекте: пользователь либо открывает ваш dApp прямо в браузере Trust Wallet, либо использует Trust Wallet через WalletConnect. Два совершенно разных пути подключения, которые нужно обрабатывать корректно.

Механизмы подключения

Встроенный браузер Trust Wallet

Когда пользователь открывает dApp в браузере внутри приложения Trust Wallet, тот инжектирует window.ethereum провайдер. Это стандартный EIP-1193 провайдер — работает как MetaMask. Идентифицировать Trust Wallet можно по window.ethereum.isTrust или window.trustwallet:

const isTrustWalletBrowser = window.ethereum?.isTrust || !!window.trustwallet

Для этого пути достаточно стандартного ethers.js или viem с window.ethereum:

import { createWalletClient, custom } from "viem"
import { mainnet } from "viem/chains"

const client = createWalletClient({
  chain: mainnet,
  transport: custom(window.ethereum)
})

const [address] = await client.requestAddresses()

WalletConnect v2

Для пользователей десктопного браузера Trust Wallet подключается через WalletConnect. WalletConnect v2 — это WebSocket-релей с end-to-end шифрованием, подключение через QR-код или deep link.

WalletConnect v1 задеплоирован. Мигрируйте на v2. С июня 2023 года v1 серверы выключены.

Для реализации используем wagmi + @web3modal/wagmi или RainbowKit — они уже включают WalletConnect коннектор и Trust Wallet. Вручную:

import { WalletConnectConnector } from "@wagmi/connectors/walletConnect"

const connector = new WalletConnectConnector({
  options: {
    projectId: "YOUR_WC_PROJECT_ID",  // от cloud.walletconnect.com
    metadata: {
      name: "My dApp",
      description: "Description",
      url: "https://app.example.com",
      icons: ["https://app.example.com/icon.png"]
    }
  }
})

Рекомендуемый подход: wagmi + WalletConnect

Самый правильный путь — не писать интеграцию с нуля, а использовать wagmi с RainbowKit или ConnectKit. Trust Wallet поддерживается из коробки.

import { TrustWalletConnector } from "@wagmi/connectors/trustWallet"
import { createConfig, configureChains } from "wagmi"
import { mainnet, polygon } from "wagmi/chains"
import { alchemyProvider } from "wagmi/providers/alchemy"

const { chains, publicClient } = configureChains(
  [mainnet, polygon],
  [alchemyProvider({ apiKey: process.env.ALCHEMY_KEY! })]
)

const config = createConfig({
  autoConnect: true,
  connectors: [
    new TrustWalletConnector({ chains }),
    // WalletConnect как fallback
  ],
  publicClient
})

Deep Links для мобильных пользователей

Trust Wallet поддерживает deep link схему для открытия dApp прямо в своём браузере:

https://link.trustwallet.com/open_url?coin_id=60&url=https%3A%2F%2Fapp.example.com

coin_id=60 — это Ethereum. Для других сетей: 195 (TRON), 714 (BNB Chain), 966 (Polygon).

Кнопка «Открыть в Trust Wallet» на мобильной версии сайта — UX improvement, который реально увеличивает конверсию в подключение на мобильных устройствах.

Подписание транзакций и сообщений

Trust Wallet поддерживает стандартные методы:

  • personal_sign — подпись произвольного сообщения
  • eth_signTypedData_v4 — EIP-712 структурированные данные
  • eth_sendTransaction — отправка транзакций

Нюанс: при отображении транзакции Trust Wallet показывает decoded данные если знает ABI. Для лучшего UX — верифицируйте контракт на Etherscan, тогда пользователь видит читаемый вид транзакции, а не hex data.

Сроки

Базовая интеграция через wagmi + Trust Wallet connector + WalletConnect v2 — 1 день. Включая мобильный deep link и тестирование в реальном приложении Trust Wallet — 2 дня.