הערה: כאשר פרוטוקול DeFi משיק צ'אט פנימי לסוחרים, פתרונות סטנדרטיים (Firebase, WebSocket מותאם אישית) דורשים תשתית שרת ואמון במפעיל. המנהל יכול לקרוא את ההתכתבות, ופריצה עלולה לדלוף את כל ההודעות. XMTP (פרוטוקול העברת הודעות ניתן להרחבה) פותר זאת על ידי העברת ההצפנה לרמת הארנק. כתובת ה-Ethereum הופכת למזהה, והמפתח הפרטי הופך למפתח ההצפנה. לא מנהל השרת ולא תוקף יכולים לקרוא את ההתכתבות. זמן האספקה של ההודעות הוא מתחת ל-300 אלפיות השנייה ב-5,000 הודעות בשנייה.
"XMTP אפשר לנו לנטוש שרתים ולחסוך 2,000 דולר בחודש" — CTO של פרוטוקול DeFi.
אנו משלבים את XMTP לתוך ה-dApp שלך — מסנג'ר מבוזר עם הצפנה מקצה לקצה שאינו דורש אחסון שרת. בניגוד ל-Firebase או שרתי WebSocket מותאמים אישית, XMTP מפיץ הודעות על פני רשת של צמתים, ומפתחות ההצפנה קשורים לארנק המשתמש. זה פותר את בעיית האמון: לא למנהל ולא לתוקף יש גישה להתכתבות. החיסכון בתשתית יכול להגיע ל-2,000 דולר בחודש בעומס של 10,000 הודעות ביום. מבחינת מהירות אספקת ההודעות, XMTP עולה על פתרונות מרכזיים פי 2 בעומס שיא.
מנגנון האבטחה של הודעות XMTP
בשימוש ראשון, המשתמש יוצר זהות XMTP: חותם על הודעה עם הארנק שלו, שממנה נוצר מפתח זהות דטרמיניסטי. מפתח זה נרשם ברשת XMTP. הודעות מוצפנות עם המפתח הציבורי של הנמען באמצעות X3DH (Extended Triple Diffie-Hellman) — אותו פרוטוקול המשמש ב-Signal Protocol.
הודעות מאוחסנות בצמתי XMTP, לא בשרת שלך. המשתמש יכול לפתוח את האינטגרציה שלך, Coinbase Wallet, Converse, או כל לקוח תואם XMTP ולראות את כל ההודעות שלו. זה נותן חופש מנעילת ספק. זמן פעילות מובטח של הרשת הוא 99.9%.
| מאפיין | צ'אט מרכזי (Firebase, WebSocket) | XMTP |
|---|---|---|
| אחסון הודעות | בשרת המפתח | ברשת מבוזרת של צמתים |
| הצפנה | אופציונלית (ברמת היישום) | מקצה לקצה (E2EE) כברירת מחדל |
| זיהוי | JWT / דוא"ל / התחברות | כתובת Ethereum וחתימה |
| ייצוא הודעות | באמצעות REST API / ייצוא CSV | כל לקוח XMTP |
| תלות בשרת | מלאה | אין (רק לממשק משתמש) |
| אמינות | תלויה בשרת יחיד | רשת מבוזרת עם 99.9% זמן פעילות |
השוואת XMTP לפתרונות מרכזיים
XMTP מפחית עלויות תפעוליות פי 5 בהשוואה ל-Firebase. מבחינת מהירות אספקת ההודעות, XMTP עולה על פתרונות מרכזיים פי 2 בעומס שיא. בנוסף, אתה מקבל ערבויות אספקה גם כאשר צמתים בודדים נכשלים — הנתונים משוכפלים על פני הרשת.
מקרה בוחן: התראות עסקאות על Polygon
עבור פרוטוקול DeFi אחד, שילבנו בוט XMTP להתראות עסקאות. משתמשים קיבלו הודעות סטטוס הזמנה בזמן אמת. נפח: 10,000 הודעות ביום, זמן אחזור < 500 אלפיות השנייה. האינטגרציה ארכה 3 ימים. מחסנית: XMTP SDK, בוט Node.js, Polygon RPC. תוצאה: עומס השרת ירד פי 10, חיסכון בתשתית עד 70% (1,500–2,000 דולר בחודש).
איך לשלב XMTP ב-2-3 ימים?
בצע שלושה שלבים:
- התקן את ה-SDK —
npm install @xmtp/browser-sdk. - צור לקוח — העבר את חתימת הארנק אל
Client.create(). - יישם שליחה — השתמש ב-
conversation.send()לטקסט או סוגי תוכן מותאמים אישית.
דוגמת קוד לאינטגרציה בסיסית:
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
}ניואנס: 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 } דורש חתימת הודעה מהארנק. בפעם הראשונה — שתי חתימות (יצירת זהות), בהפעלות הבאות — אחת. צריך להסביר זאת כראוי בממשק המשתמש, אחרת משתמשים מתבלבלים.
אינטגרציה עם 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 }
} סוגי תוכן: תוכן מורחב
XMTP תומך לא רק בטקסט. סוגי תוכן הם מנגנון מתוקנן לסוגי הודעות שרירותיים: קבצים, תגובות, תשובות, אישורי קריאה. לצרכים מותאמים אישית, אנו רושמים מרחב שמות משלנו.
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 }
) | סוג תוכן | תיאור | גודל |
|---|---|---|
| טקסט | הודעות טקסט רגילות | עד 64KB |
| קובץ מצורף | קבצים מצורפים עם קידוד base64 | עד 1MB |
| RemoteAttachment | קבצים ב-IPFS/S3 | עד 50MB |
| תגובה | תגובות (אמוג'י, מותאם אישית) | ~100 בתים |
דוגמה להגדרת סוג תוכן מותאם אישית
כדי לרשום סוג משלך, צור codec היורש מ-Client.create והעבר אותו אל 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 } } . אנו יכולים לפתח סוגי תוכן מותאמים אישית עבור הנתונים שלך.
מה כלול באינטגרציית XMTP סוהר?
אנו מספקים את מחזור העבודה המלא:
- ניתוח ועיצוב: בחירת הסביבה (ייצור/פיתוח), הגדרת סוגי תוכן, עיצוב UX.
- פיתוח: אינטגרציית XMTP SDK, מתאם ארנק, רכיבי UI (רשימת שיחות, זרם הודעות, שליחה), סטרימינג בזמן אמת, תמיכה בקבצים מצורפים ותגובות.
- בוטים והתראות: הגדרת בוט XMTP להתראות עסקאות, התראות, תמיכה (סקריפט Node.js).
- בדיקות: בדיקות יחידה על אמולטור XMTP, בדיקות אבטחה (התקפת replay, קשירת זהות).
- תיעוד: דיאגרמת ארכיטקטורה, README אינטגרציה, מדריך משתמש.
- פריסה ותמיכה: הגדרת צומת ייצור אופציונלית, ניטור, SLA.
ציר זמן: אינטגרציה בסיסית (צ'אט טקסט + זמן אמת) — 2-3 ימים; מורחבת (קבצים מצורפים, תגובות, בוט) — 4-5 ימים.
קבל הערכה לפרויקט שלך — צור קשר. נכין הערכה מוקדמת וציר זמן.
הניסיון והערבויות שלנו
יש לנו מעל 5 שנות ניסיון בפיתוח Web3. יישמנו אינטגרציות XMTP עבור פרוטוקולי DeFi ושווקי NFT. אנו משתמשים ב-Foundry, Hardhat, Tenderly לניפוי באגים. אנו מבטיחים היעדר מלכודות אבטחה: reentrancy, MEV, מניפולציית אורקל. זמן תגובה ממוצע לפניות הוא שעתיים. קבל ייעוץ לפרויקט שלך — צור קשר.
הזמן אינטגרציית XMTP — קבל מסנג'ר אמין ומאובטח ב-dApp שלך.







