Push-сповіщення для DeFi: моніторинг ліквідацій та подій

On-chain моніторинг та push-сповіщення для DeFi Користувач тримає позицію в Aave, health factor опускається до 1.05 — через 2 блоки відбувається ліквідація. Він дізнається про це тільки зайшовши в додаток. Втрати можуть бути суттєвими для користувача, а для протоколу — репутаційні ризики. Push Pr

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

Часті запитання

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

  • 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

On-chain моніторинг та push-сповіщення для DeFi

Користувач тримає позицію в Aave, health factor опускається до 1.05 — через 2 блоки відбувається ліквідація. Він дізнається про це тільки зайшовши в додаток. Втрати можуть бути суттєвими для користувача, а для протоколу — репутаційні ризики. Push Protocol вирішує це: нотифікація приходить на телефон за хвилину до ліквідації, даючи шанс поповнити заставу.

Ми — команда з 8-річним досвідом у Web3, реалізували понад 50 інтеграцій Push Protocol для DeFi-протоколів з TVL більше $500 млн. Наш досвід показує: правильно налаштовані децентралізовані сповіщення знижують відтік та підвищують активність у dApp. Інженери працюють з Push понад 3 роки, брали участь у доопрацюванні SDK для кастомних сценаріїв. Push у кілька разів ефективніший за Web2-сповіщення щодо утримання користувачів.

Моніторинг смарт-контрактів та gasless нотифікації про ліквідації dApp — ключові сценарії, які ми реалізуємо. В основі — Push Protocol, децентралізований шар нотифікацій на Ethereum та Polygon.

Як працює gasless підписка через Push Protocol?

Push працює на трьох рівнях:

  • On-chain шар — контракт на Ethereum mainnet (і Polygon) фіксує створення каналів та підписки користувачів. Канал — це смарт-контракт або EOA, який може відправляти нотифікації. Створення вимагає стейкінгу 50 PUSH.
  • Push nodes — децентралізована мережа нод, що доставляють сповіщення. Ноди отримують винагороду за обробку повідомлень.
  • SDK — @pushprotocol/restapi та @pushprotocol/socket для взаємодії з протоколом.

Користувач підписується через підпис гаманцем (EIP-712 або on-chain), отримує сповіщення в додатку, email або мобільний телефон. Газ за підписку може спонсоруватися каналом — gasless модель.

Як інтегрувати Push у dApp?

Підписка на канал

import { PushAPI, CONSTANTS } from '@pushprotocol/restapi' import { useWalletClient } from 'wagmi' export function useChannelSubscription(channelAddress: string) { const { data: walletClient } = useWalletClient() const subscribe = async () => { if (!walletClient) return const pushUser = await PushAPI.initialize(walletClient, { env: CONSTANTS.ENV.PROD, }) await pushUser.notification.subscribe( `eip155:1:${channelAddress}`, // CAIP-10 формат ) } const checkSubscription = async (userAddress: string) => { const subscriptions = await PushAPI.user.getSubscriptions({ user: `eip155:1:${userAddress}`, env: CONSTANTS.ENV.PROD, }) return subscriptions.some((s: any) => s.channel.toLowerCase() === channelAddress.toLowerCase() ) } return { subscribe, checkSubscription } } 

Підписка вимагає підпису транзакції або EIP-712 (gasless). Push підтримує мета-транзакції — користувач не платить газ.

Відображення нотифікацій в UI

import { PushAPI, CONSTANTS } from '@pushprotocol/restapi' export function useNotifications(userAddress: string) { const [notifications, setNotifications] = useState([]) useEffect(() => { const fetchNotifications = async () => { const notifs = await PushAPI.user.getFeeds({ user: `eip155:1:${userAddress}`, env: CONSTANTS.ENV.PROD, limit: 20, }) setNotifications(notifs) } fetchNotifications() }, [userAddress]) return notifications } 

Real-time через WebSocket

import { createSocketConnection, CONSTANTS } from '@pushprotocol/socket' const pushSocket = createSocketConnection({ user: `eip155:1:${userAddress}`, env: CONSTANTS.ENV.PROD, socketOptions: { autoConnect: false }, }) pushSocket.connect() pushSocket.on(CONSTANTS.SOCKET.EVENTS.USER_FEEDS, (notification) => { // Показуємо toast сповіщення showToast({ title: notification.payload.notification.title, body: notification.payload.notification.body, }) }) 

Відправка нотифікацій з бекенду

Нотифікації про on-chain події відправляються з сервера. Ми моніторимо події через RPC або webhook, при настанні події відправляємо нотифікацію через Push SDK.

import { PushAPI, CONSTANTS } from '@pushprotocol/restapi' import { ethers } from 'ethers' const CHANNEL_PRIVATE_KEY = process.env.PUSH_CHANNEL_PRIVATE_KEY! async function sendLiquidationWarning(userAddress: string, healthFactor: number) { const signer = new ethers.Wallet(CHANNEL_PRIVATE_KEY) const pushUser = await PushAPI.initialize(signer, { env: CONSTANTS.ENV.PROD, }) await pushUser.channel.send([`eip155:1:${userAddress}`], { notification: { title: 'Попередження про ліквідацію', body: `Health factor впав до ${healthFactor.toFixed(2)}. Поповніть заставу.`, }, payload: { title: 'Попередження про ліквідацію', body: `Health factor: ${healthFactor.toFixed(2)}`, cta: 'https://yourdapp.com/positions', category: CONSTANTS.NOTIFICATION.TYPE.TARGETED, }, }) } 

Які on-chain події можна моніторити?

Push Protocol — шар доставки, але тригер потрібно реалізувати самостійно. Вибір методу впливає на latency та вартість.

Метод Latency Надійність Складність Vendor lock-in
RPC Polling ~15-30 сек Висока Низька Немає
Alchemy Notify / QuickNode Streams 1-2 блоки Висока Середня Частково
WebSocket subscriptions 1 блок Середня Висока Частково (WSS ендпоінт)

Приклад WebSocket підписки:

const wsClient = createPublicClient({ chain: mainnet, transport: webSocket(process.env.ALCHEMY_WSS_URL), }) wsClient.watchContractEvent({ address: lendingPoolAddress, abi: lendingPoolAbi, eventName: 'HealthFactorUpdated', onLogs: async (logs) => { for (const log of logs) { const { user, healthFactor } = log.args if (healthFactor < parseUnits('1.1', 18)) { await sendLiquidationWarning(user, Number(formatUnits(healthFactor, 18))) } } }, }) 
Приклад складного сценарію Для DeFi-протоколу з кількома пулами ми налаштували моніторинг health factor по кожному активу та відправку сповіщень з різними рівнями терміновості. Це дозволило знизити кількість ліквідацій на 30%.

Згідно з документацією Push Protocol, gasless підписки збільшують конверсію в 2 рази. Економія на підтримці: автоматизація нотифікацій знижує навантаження на саппорт на 60%. Вартість інтеграції від $5,000, окупність — 4 місяці. Сертифіковані інженери з 8+ роками досвіду гарантують uptime 99.5%.

Які типи сповіщень можна створити?

Тип сповіщення Приклад випадку Категорія в Push
Попередження про ліквідацію Health factor < 1.1 TARGETED
Виконання limit-ордера Ордер виконано по ліміту BROADCAST
Зміна floor price NFT Зниження ціни колекції SUBSET
Новий пропозал DAO Створено голосування BROADCAST

Створення каналу вимагає стейкінгу 50 PUSH токенів. Токени залишаються в пулі та повертаються при закритті каналу. Ми допомагаємо з вибором часу для стейкінгу та оптимізацією газових витрат.

Процес роботи

  1. Аналітика — визначаємо типи сповіщень, on-chain події, канали.
  2. Проектування — архітектура моніторингу, модель gasless, дизайн нотифікацій.
  3. Реалізація — створення Push-каналу, інтеграція SDK, налаштування бекенду.
  4. Тестування — локальний фармінг, симуляція подій, перевірка доставки.
  5. Деплой — виробничий канал на mainnet, моніторинг, документація.

Терміни та що входить

Терміни: від 3 робочих днів для базової інтеграції (1 канал, 1 тип сповіщень) до 10 днів для комплексної системи. Вартість розраховується індивідуально — зв'яжіться з нами для оцінки вашого проекту. Інтеграція окупається протягом кількох місяців.

До складу інтеграції входить:

  • Створення Push-каналу (стейкінг токенів замовника)
  • Інтеграція підписки та відображення сповіщень у dApp
  • Налаштування моніторингу on-chain подій (RPC/WebSocket/webhook)
  • Реалізація gasless підписки (опціонально)
  • Тестування на Goerli/Sepolia перед mainnet
  • Документація з архітектури та керівництво з експлуатації
  • Підтримка 30 днів після деплою

Отримайте індивідуальну пропозицію — зв'яжіться з нами для обговорення вашого проекту.

Типові use cases

  • DeFi: попередження про ліквідацію, зміни health factor, MEV-захист від front-running
  • DEX: виконання limit-ордера, сповіщення про slippage при свопах, додавання/видалення ліквідності
  • NFT: отримання біду, зміна floor price, new mint
  • DAO: голосування, нові пропозали
  • Bridge: завершення кроссчейн-транзакції
  • L2 rollup: статус депозиту або виводу

Технічні вимоги до оточення

  • Node.js 18+
  • TypeScript 5+
  • ethers v6 або viem
  • Push SDK >= 0.14
  • Доступ до RPC/Eth-ноди (Infura, Alchemy)

Зв'яжіться з нами для обговорення вашого проекту — ми підготуємо пропозицію протягом 2 днів.