שילוב Push Protocol להתראות dApp

משתמשי יישומי DeFi מפספסים התראות חשובות — אימייל וטלגרם אינם מקושרים לארנק, ולכן אינם מגיעים לקהל. אנו מפתחים מערכת התראות ל-dApp באמצעות Push Protocol, תוך שילוב ערוצים על-גבי הרשת המספקים הודעות ישירות לארנק. הצוות שלנו מספק את הפרויקט במפתח מלא — מיצירת הערוץ ועד להגדרת מנוי ללא גז, תוך הבטחת תקשורת אמינה עם המשתמשים ותמיכה מתמשכת.

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1481
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1335
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1034
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1293
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    738
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1031

שילוב Push Protocol להתראות dApp

התראות דוא"ל ב-DeFi לא עובדות — למשתמשים אין דוא"ל, רק כתובת ארנק. בוטים של טלגרם דורשים הרשמה נפרדת ואינם מקושרים לזהות on-chain. Push Protocol (לשעבר EPNS) הוא פרוטוקול הודעות מבוזר המקושר לכתובות ארנק. הוא מאפשר ל-dApps לשלוח התראות on-chain ו-off-chain למנויים ללא דוא"ל או טלגרם. הפרוטוקול חינמי לשליחה; יצירת ערוץ דורשת החזקת מטבעות PUSH (מינימום 50 מטבעות ב-Ethereum או Polygon, כיום כ-$25–$50). בזכות הצטרפות ללא גז (מנוי מבוסס חתימה), המנוי למשתמשים אינו דורש גז, דבר קריטי לאימוץ. הצוות שלנו עם ניסיון של 10+ שנים ב-Web3 שילב את Push ביותר מ-50 פרויקטים, וחסך ללקוחות עד 70% על תשתית התראות (שמתורגם ל-$500–$2,000 לחודש בהתאם להיקף) והגדיל את מעורבות המשתמשים ב-25%. צרו קשר להערכה חינמית של הפרויקט שלכם.

הגדרה ועקרון פעולה

Push Protocol הוא שכבת הודעות ל-Web3, שבה התראות מקושרות לארנק. הוא משתמש בתקן EIP-712 להצטרפות ללא גז ושולח הודעות דרך ה-SDK שלו. ניתן למצוא מידע נוסף על הפרוטוקול ב-GitHub או בתיעוד הרשמי.

למה Push עדיף על ערוצים מסורתיים

השוואה לדוא"ל וטלגרם מראה יתרונות שאין להכחיש:

קריטריון דוא"ל טלגרם Push Protocol
קישור לארנק לא לא כן, on-chain
ביזור לא לא כן (IPFS)
עלות שליחה תלוי בשירות חינם חינם
מנוי ללא גז - - כן (EIP-712)
התראות בזמן אמת לא כן כן
שילוב dApp לא דרך בוט SDK / WebSocket

Push מספק תקשורת ישירה עם המשתמש ללא מתווכים, ומבטיח מסירת אירועי on-chain עם זמן השהיה של פחות משתי שניות.

יישום הצטרפות ללא גז

הצטרפות ללא גז (מנוי מבוסס חתימה) מאפשרת למשתמשים להירשם ללא שליחת עסקת on-chain, באמצעות חתימת EIP-712. זה מוריד את חסם הכניסה ומגדיל את המרת המנויים ב-40%. ה-SDK של Push מספק שיטות לבדיקת מנוי ומנוי מבוסס חתימה. אנו ממליצים להשתמש בהצטרפות ללא גז כדי להימנע מדרישת תשלום גז מהמשתמש.

איך ליישם התראות Push ב-dApp?

  1. יצירת ערוץ. דרך app.push.org, החזיקו מטבעות PUSH (ב-Ethereum או Polygon). ציינו שם, תיאור, אייקון. הגדירו את הערוץ למותג שלכם.

  2. שליחת התראות. השתמשו ב-@pushprotocol/restapi מהשרת. דוגמה להתראה ממוקדת:

import * as PushAPI from '@pushprotocol/restapi'
import { ethers } from 'ethers'

const CHANNEL_PRIVATE_KEY = process.env.PUSH_CHANNEL_PRIVATE_KEY!
const signer = new ethers.Wallet(CHANNEL_PRIVATE_KEY)

async function sendNotification(
  recipientAddress: string,
  title: string,
  body: string,
  cta?: string
) {
  await PushAPI.payloads.sendNotification({
    signer,
    type: 3,
    identityType: 2,
    notification: {
      title,
      body,
    },
    payload: {
      title,
      body,
      cta: cta ?? '',
      img: '',
    },
    recipients: `eip155:1:${recipientAddress}`,
    channel: `eip155:1:${CHANNEL_ADDRESS}`,
    env: 'prod',
  })
}
  1. מאזין on-chain לטריגרים בזמן אמת. הירשמו לאירועי פירוק, החלפה, הצבעה:
import { createPublicClient, http, parseAbiItem } from 'viem'

const client = createPublicClient({
  chain: mainnet,
  transport: http(RPC_URL)
})

client.watchContractEvent({
  address: LENDING_PROTOCOL_ADDRESS,
  abi: lendingAbi,
  eventName: 'LiquidationCall',
  onLogs: async (logs) => {
    for (const log of logs) {
      const { user, collateralAsset, debtToCover } = log.args
      await sendNotification(
        user,
        'Позиция ликвидирована',
        `Ликвидировано ${formatUnits(debtToCover, 18)} USDC. Проверьте ваши позиции.`,
        `https://app.protocol.xyz/positions`
      )
    }
  }
})
  1. הצגה בפרונטאנד. השתמשו ב-React hooks כדי לשלוף התראות ועדכונים בזמן אמת דרך WebSocket:
import * as PushAPI from '@pushprotocol/restapi'
import { createSocketConnection, EVENTS } from '@pushprotocol/socket'
import { useAccount } from 'wagmi'
import { useQuery, useQueryClient } from '@tanstack/react-query'
import { useEffect } from 'react'

// Хук для получения уведомлений (polling 30s)
export function useNotifications() {
  const { address } = useAccount()
  return useQuery({
    queryKey: ['push-notifications', address],
    queryFn: async () => {
      const feeds = await PushAPI.user.getFeeds({
        user: `eip155:1:${address}`,
        limit: 20,
        env: 'prod',
      })
      return feeds
    },
    enabled: !!address,
    refetchInterval: 30_000,
  })
}

// Хук для real-time socket
export function usePushSocket(address: string | undefined) {
  const queryClient = useQueryClient()
  useEffect(() => {
    if (!address) return
    const socket = createSocketConnection({
      user: `eip155:1:${address}`,
      env: 'prod',
      socketOptions: { autoConnect: true }
    })
    socket.on(EVENTS.USER_FEEDS, (feedItem: any) => {
      queryClient.invalidateQueries({ queryKey: ['push-notifications', address] })
      // Показываем toast уведомление
    })
    return () => socket?.disconnect()
  }, [address])
}

בדיקת מנוי והצטרפות ללא גז

לפני שליחה, בדקו אם המשתמש מנוי:

async function isSubscribed(userAddress: string): Promise<boolean> {
  const subscriptions = await PushAPI.user.getSubscriptions({
    user: `eip155:1:${userAddress}`,
    env: 'prod',
  })
  return subscriptions.some(
    (sub: any) => sub.channel.toLowerCase() === CHANNEL_ADDRESS.toLowerCase()
  )
}

להצטרפות ללא גז, השתמשו ב-SDK לחתימה מואצלת — מנוי ללא גז (מנוי מבוסס חתימה). המשתמש חותם על הודעה, ואנו שולחים את החתימה ל-Push Protocol.

טעויות נפוצות: ודאו שהחותם הוא בעל הערוץ, השתמשו ב-import * as PushAPI from '@pushprotocol/restapi' import { ethers } from 'ethers' const CHANNEL_PRIVATE_KEY = process.env.PUSH_CHANNEL_PRIVATE_KEY! const signer = new ethers.Wallet(CHANNEL_PRIVATE_KEY) async function sendNotification( recipientAddress: string, title: string, body: string, cta?: string ) { await PushAPI.payloads.sendNotification({ signer, type: 3, identityType: 2, notification: { title, body }, payload: { title, body, cta: cta ?? '', img: '', }, recipients: `eip155:1:${recipientAddress}`, channel: `eip155:1:${CHANNEL_ADDRESS}`, env: 'prod', }) } לבדיקות. לזמן אמת, השתמשו ב-WebSocket; מינימום פולסינג הוא 10–30 שניות.

מה כוללת עבודת השילוב?

אנו מספקים פתרון מלא:

  • ביקורת על הארכיטקטורה הנוכחית והגדרת הבעיה
  • יצירה והגדרה של ערוץ Push
  • פיתוח שירות שליחת התראות בשרת (TypeScript/Node.js)
  • שילוב מאזיני on-chain לחוזים החכמים שלכם (EVM, Solana)
  • פיתוח רכיב התראות בפרונטאנד (React/Next.js)
  • תיעוד תפעולי
  • תמיכה טכנית לחודש אחד
  • אופטימיזציית ביצועים: מעל 100,000 התראות שנשלחות חודשית עם זמן תגובה מתחת לשתי שניות

טריגרים אופייניים להתראות DeFi

אירוע סוג התראה זמן השהיה
סיכון פירוק (health < 1.2) ממוקדת, דחיפות HIGH זמן אמת
פוזיציה פורקה ממוקדת זמן אמת
קציר תשואה זמין ממוקדת שעתי
הצעת ממשל נוצרה שידור רחב אירוע on-chain
מועד הצבעה בעוד 24 שעות שידור רחב מתוזמן
תנועת מחיר גדולה (>10%) שידור רחב אורקל מחיר

לוח זמנים ועלות

שילוב Push אורך בין 5 ל-10 ימי עסקים בהתאם למורכבות הטריגרים והפרונטאנד. האינטגרציה הבסיסית שלנו במחיר קבוע מתחילה ב-$3,000, עם חיסכון בתשתית עד $2,000 לחודש. העלות מחושבת באופן אישי לאחר ביקורת על ה-dApp שלכם. הזמינו פיתוח — נבחר את הפתרון האופטימלי.

קבלו ייעוץ חינמי לפרויקט שלכם, ונעזור להעריך את ההיקף ולוח הזמנים הנדרשים. השלמנו יותר מ-50 שילובים, והפחתנו את זמן הפיתוח ב-40% בממוצע.