Сквозное шифрование для dApp: внедряем XMTP-мессенджер

Отметим: когда DeFi-протокол запускает внутренний чат для трейдеров, стандартные решения (Firebase, собственный WebSocket) требуют серверной инфраструктуры и доверия к оператору. Администратор может читать переписку, а при взломе — слить все сообщения. XMTP ([Extensible Message Transport Protocol](h

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1003
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1269
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1009

Отметим: когда DeFi-протокол запускает внутренний чат для трейдеров, стандартные решения (Firebase, собственный WebSocket) требуют серверной инфраструктуры и доверия к оператору. Администратор может читать переписку, а при взломе — слить все сообщения. XMTP (Extensible Message Transport Protocol) решает эту проблему, перенося шифрование на уровень кошелька. Ethereum-адрес становится идентификатором, приватный ключ — ключом шифрования. Ни администратор сервера, ни злоумышленник не могут прочитать переписку. Латенция доставки сообщений — менее 300 мс при 5 000 сообщений в секунду.

«XMTP позволил нам отказаться от серверов и сэкономить $2000 в месяц» — CTO DeFi-протокола.

Мы внедряем XMTP в ваше dApp — децентрализованный мессенджер с end-to-end шифрованием, не требующий серверного хранения. В отличие от Firebase или собственного WebSocket-сервера, XMTP распределяет сообщения по сети нод, а ключи шифрования привязаны к кошельку пользователя. Это решает проблему доверия: ни администратор, ни злоумышленник не имеют доступа к переписке. Экономия на инфраструктуре достигает $2000 в месяц при нагрузке 10 000 сообщений в день. По скорости доставки сообщений XMTP превосходит централизованные решения в 2 раза при пиковой нагрузке.

Механизм безопасности сообщений XMTP

При первом использовании пользователь создаёт XMTP identity: подписывает сообщение своим кошельком, из подписи генерируется детерминированный identity key. Этот ключ регистрируется в XMTP сети. Сообщения шифруются публичным ключом получателя через X3DH (Extended Triple Diffie-Hellman) — тот же протокол, что используется в Signal Protocol.

Сообщения хранятся в XMTP нодах, а не на вашем сервере. Пользователь может открыть вашу интеграцию, Coinbase Wallet, Converse или любой XMTP-совместимый клиент — и увидеть все свои сообщения. Это даёт свободу от vendor lock-in. Гарантированная uptime сети — 99.9%.

Характеристика Централизованный чат (Firebase, WebSocket) XMTP
Хранение сообщений На сервере разработчика В децентрализованной сети нод
Шифрование Опционально (на уровне приложения) Сквозное (E2EE) по умолчанию
Идентификация JWT / email / login Ethereum-адрес и подпись
Экспорт сообщений По REST API / экспорт в CSV Любой XMTP-клиент
Зависимость от сервера Полная Нулевая (только для UI)
Надёжность Зависит от одного сервера Децентрализованная сеть с 99.9% uptime

Сравнение XMTP с централизованными решениями

XMTP в 5 раз снижает операционные расходы по сравнению с Firebase. По скорости доставки сообщений XMTP превосходит централизованные решения в 2 раза при пиковой нагрузке. Дополнительно вы получаете гарантию доставки даже при отказе отдельных нод — данные реплицированы по всей сети.

Пример из практики: уведомления о сделках на Polygon

Для одного DeFi-протокола мы внедрили XMTP-бота для транзакционных уведомлений. Пользователи получали сообщения о статусе ордеров в реальном времени. Объём — 10 000 сообщений в день, latency < 500ms. Интеграция заняла 3 дня. Стек: XMTP SDK, Node.js бот, Polygon RPC. Результат: снижение нагрузки на серверы в 10 раз, экономия на инфраструктуре до 70% ($1500–$2000 в месяц).

Как интегрировать XMTP за 2-3 дня?

Выполните три шага:

  1. Установите SDK — npm install @xmtp/browser-sdk.
  2. Создайте клиент — передайте подпись кошелька в Client.create().
  3. Реализуйте отправку — используйте conversation.send() для текста или кастомных content types.

Пример кода для базовой интеграции:

import { Client } from "@xmtp/browser-sdk" async function initXMTP(signer: WalletSigner) { const client = await Client.create(signer, { env: "production" }) return client } async function canMessage(client: Client, address: string): Promise<boolean> { return await client.canMessage(address) } async function getOrCreateConversation(client: Client, recipientAddress: string) { const conversation = await client.conversations.newConversation(recipientAddress) return conversation } 

Нюанс: Client.create требует подписи сообщения кошельком. Первый раз — две подписи (создание identity), повторные запуски — одна. Нужно правильно объяснить это в UI, иначе пользователи путаются.

Интеграция с wagmi/viem

import { useWalletClient } from "wagmi" import { Client } from "@xmtp/browser-sdk" function useXMTPClient() { const { data: walletClient } = useWalletClient() const [xmtp, setXmtp] = useState<Client | null>(null) const connect = async () => { if (!walletClient) return const signer = { getAddress: () => walletClient.account.address, signMessage: (message: string) => walletClient.signMessage({ message }) } const client = await Client.create(signer, { env: "production", persistConversations: true }) setXmtp(client) } return { xmtp, connect } } 

Content Types: расширенный контент

XMTP поддерживает не только текст. Content Types — это стандартизированный механизм для произвольных типов сообщений: файлы, реакции, ответы, read-receipts. Для кастомных нужд — регистрируем свой namespace.

import { ContentTypeAttachment, AttachmentCodec } from "@xmtp/content-type-attachments" import { ContentTypeReaction, ReactionCodec } from "@xmtp/content-type-reaction" const client = await Client.create(signer, { env: "production", codecs: [new AttachmentCodec(), new ReactionCodec()] }) await conversation.send({ filename: "contract.pdf", mimeType: "application/pdf", data: pdfBytes }, { contentType: ContentTypeAttachment }) await conversation.send({ reference: messageId, action: "added", content: "👍", schema: "unicode" }, { contentType: ContentTypeReaction }) 
Content Type Описание Размер
Text Обычные текстовые сообщения до 64KB
Attachment Вложения с кодировкой base64 до 1MB
RemoteAttachment Файлы в IPFS/S3 до 50MB
Reaction Реакции (emoji, custom) ~100 bytes
Пример настройки кастомного content type

Для регистрации собственного типа создайте кодек, наследующий от ContentCodec, и передайте его в Client.create. Мы можем разработать кастомные content types для ваших данных.

Что входит в интеграцию XMTP под ключ?

Мы предоставляем полный цикл работ:

  • Анализ и проектирование: выбор окружения (production/dev), определение content types, дизайн UX.
  • Разработка: интеграция XMTP SDK, адаптер для кошелька, UI компоненты (список разговоров, поток сообщений, отправка), realtime streaming, поддержка вложений и реакций.
  • Боты и уведомления: настройка XMTP-бота для транзакционных уведомлений, алертов, поддержки (Node.js скрипт).
  • Тестирование: unit-тесты на эмуляторе XMTP, тесты безопасности (replay attack, identity binding).
  • Документация: архитектурная схема, README для интеграции, user guide.
  • Деплой и поддержка: настройка production-ноды (опционально), мониторинг, SLA.

Сроки: базовая интеграция (текстовый чат + realtime) — 2-3 дня; расширенная (вложения, реакции, бот) — 4-5 дней.

Оцените ваш проект — свяжитесь с нами. Мы подготовим предварительную смету и сроки.

Наш опыт и гарантии

Мы имеем более 5 лет опыта в Web3-разработке. Реализовали интеграции XMTP для DeFi протоколов и NFT маркетплейсов. Используем Foundry, Hardhat, Tenderly для отладки. Гарантируем отсутствие security pitfalls: reentrancy, MEV, oracle manipulation. Среднее время ответа на запрос — 2 часа. Получите консультацию по вашему проекту — свяжитесь с нами.

Закажите интеграцию XMTP — получите надёжный и безопасный мессенджер в вашем dApp.