Интеграция с WalletConnect Chat

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с WalletConnect Chat
Простая
~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

Интеграция с WalletConnect Chat

WalletConnect Chat (переименован в WalletConnect Notify / Push — часть WalletConnect v2 экосистемы) — это протокол для encrypted peer-to-peer messaging между кошельками. В отличие от XMTP или Push Protocol, Chat API интегрирован непосредственно в WalletConnect SDK, что упрощает добавление messaging в dApp, который уже использует WalletConnect для wallet connection.

Что это и зачем

Основной кейс: dApp хочет отправлять нотификации пользователям непосредственно в их кошелёк (MetaMask, Rainbow, Coinbase Wallet), без email и номера телефона. Примеры:

  • DeFi протокол уведомляет о приближении liquidation
  • NFT маркетплейс сообщает о новом оффере на токен
  • DAO уведомляет о новом proposal

Второй кейс: wallet-to-wallet messaging — пользователи общаются, используя ENS имена или адреса кошельков как идентификаторы.

Подключение WalletConnect Notify

import { NotifyClient } from "@walletconnect/notify-client";

const notifyClient = await NotifyClient.init({
  projectId: process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID,
  relayUrl: "wss://relay.walletconnect.com",
  logger: "error",
});

// Подписка кошелька на уведомления от dApp
const subscription = await notifyClient.subscribe({
  appDomain: "yourdapp.com",
  account: `eip155:1:${walletAddress}`, // CAIP-10 формат
});

Для того чтобы dApp мог отправлять уведомления, нужна верификация домена через WalletConnect Cloud Dashboard — размещаем .well-known/walletconnect.txt файл.

Отправка уведомлений с бэкенда

Нотификации отправляются через WalletConnect REST API, не через клиентский SDK:

// Backend: отправка уведомления
async function sendNotification(
  account: string,
  type: string,
  title: string,
  body: string,
  url?: string
) {
  const response = await fetch(
    `https://notify.walletconnect.com/${projectId}/notify`,
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: `Bearer ${process.env.WALLETCONNECT_NOTIFY_SECRET}`,
      },
      body: JSON.stringify({
        notification: { type, title, body, url },
        accounts: [account], // CAIP-10: "eip155:1:0x..."
      }),
    }
  );
  
  return response.json();
}

// Пример: уведомление о liquidation risk
await sendNotification(
  `eip155:1:${userAddress}`,
  "liquidation-warning",
  "Риск ликвидации",
  `Ваша позиция приближается к liquidation threshold. Health factor: 1.05`,
  "https://yourdapp.com/position/123"
);

Типы уведомлений

Notification types регистрируются в WalletConnect Cloud и отображаются пользователю как категории, которые он может включать/отключать:

{
  "types": [
    {
      "name": "Liquidation Warning",
      "description": "Предупреждения о приближении ликвидации",
      "id": "liquidation-warning"
    },
    {
      "name": "New Offer",
      "description": "Новые офферы на ваши NFT",
      "id": "new-offer"
    },
    {
      "name": "Governance",
      "description": "Новые proposals для голосования",
      "id": "governance"
    }
  ]
}

Получение и отображение уведомлений в dApp

import { useNotifications } from "@walletconnect/notify-react";

function NotificationBell() {
  const { address } = useAccount();
  const { data: notifications } = useNotifications({
    account: address ? `eip155:1:${address}` : undefined,
  });
  
  const unreadCount = notifications?.filter(n => !n.isRead).length ?? 0;
  
  return (
    <div>
      <BellIcon />
      {unreadCount > 0 && <Badge>{unreadCount}</Badge>}
    </div>
  );
}

Альтернативы и сравнение

WalletConnect Notify — не единственный вариант. Выбор зависит от требований:

Протокол Сильные стороны Ограничения
WalletConnect Notify Интеграция с WC, нет своего SDK у пользователя Требует WC-совместимый кошелёк
XMTP Decentralized, собственные SDK, rich messaging Отдельный sign-in, не все кошельки
Push Protocol (EPNS) Зрелый протокол, governance token Сложнее интеграция
Custom (email/Telegram) Полный контроль Требует PII, не web3-native

Для большинства dApp рекомендую WalletConnect Notify если уже используется WC для connection — минимальная дополнительная работа. Для богатого messaging (чат, файлы, group channels) — XMTP.