פיתוח הרשאת גישה באמצעות TON Connect אינו רק התקנת ספרייה. בעיות אופייניות: דליפת proof עקב ניתוב שגוי, חוסר תאימות לחלק מהארנקים עקב גרסאות bridge, ושגיאות אימות בשרת שמתעלמות מחותמות זמן. פתרנו זאת ביותר מ-20 פרויקטים, כולל כאלה עם 10K+ משתמשים פעילים יומיים, ואנחנו מכירים את כל המלכודות. אנו מציעים הטמעה מקצה לקצה: מארכיטקטורה ועד פריסה ב-Telegram Mini Apps עם אינטגרציה לשרת שלכם. תוך 2–5 ימים תקבלו הרשאת גישה יציבה ותואמת ל-Tonkeeper, MyTonWallet, Tonhub וארנקי Telegram.
כיצד TON Connect מבטיח אבטחת הרשאת גישה
TON Connect משתמש בשירות bridge כדי להעביר הודעות בין ה-dApp לארנק. המשתמש לא צריך להיות על אותו מכשיר — קישורי deep link וקודי QR עובדים בין מכשירים. סשן מתמשך נשמר בארנק: חיבור מחדש אינו דורש QR חדש, וה-proof מאשר אוטומטית בעלות על המפתח. ה-proof מבוסס על TonProof, תקן חתימת הודעות הדומה ל-EIP-712. זה מבטל התקפות man-in-the-middle.
חתימת עסקאות — TON Connect לא רק מאשר את המשתמש אלא גם מאפשר לבקש חתימות עסקאות ישירות מה-dApp. זה נוח ליישומי DeFi ולשווקי NFT. לדוגמה, באפליקציית DeFi, משתמש מאשר החלפה בלחיצה אחת מבלי לעזוב את הממשק. בהשוואה ל-SIWE (Sign-In with Ethereum), שדורש עסקה נפרדת — TON Connect נותן 40% פחות פעולות.
| היבט | TON Connect | SIWE/WalletConnect |
|---|---|---|
| ארנקים | Tonkeeper, MyTonWallet, Tonhub | Metamask, WalletConnect |
| Bridge | Bridge מובנה | דורש bridge |
| Telegram Mini App | אינטגרציה טבעית | לא נתמך |
| Proof | TonProof (חתימת הודעה) | חתימת הודעה (EIP-712) |
צד לקוח: הטמעת החיבור
עבור React, אנו משתמשים ב-@tonconnect/ui-react. אתחול עם קובץ manifest:
import TonConnectUI from '@tonconnect/ui-react';
import { TonConnectButton, useTonConnectUI, useTonAddress } from '@tonconnect/ui-react';
const App = () => (
<TonConnectUIProvider manifestUrl="https://your-app.com/tonconnect-manifest.json">
<YourApp />
</TonConnectUIProvider>
);ה-import TonConnectUI from '@tonconnect/ui-react'; import { TonConnectButton, useTonConnectUI, useTonAddress } from '@tonconnect/ui-react'; const App = () => ( <TonConnectUIProvider manifestUrl="https://your-app.com/tonconnect-manifest.json"> <YourApp /> </TonConnectUIProvider> ); המוכן מספק גישה לכל הארנקים. קבלת הכתובת:
function WalletInfo() { const address = useTonAddress(); return <div>Connected: {address}</div>; } חשוב: בפרויקטים אמיתיים, אנו מגדירים את רשימת הארנקים הנתמכים באמצעות TonConnectButton כדי לסנן גרסאות שאינן עובדות.
tonconnect-manifest.json: קובץ חובה
הניחו אותו בכתובת URL ציבורית. המשתמש רואה אותו בעת החיבור כדי לוודא לגיטימיות:
{
"url": "https://your-app.com",
"name": "Your App Name",
"iconUrl": "https://your-app.com/icon.png",
"termsOfUseUrl": "https://your-app.com/terms",
"privacyPolicyUrl": "https://your-app.com/privacy"
}טעות: רבים משתמשים בנתיבים יחסיים — הארנק לא יכול לטעון את ה-manifest. כתובת HTTPS מוחלטת היא חובה.
צד שרת: אימות proof
ה-proof מהלקוח חייב להיות מאומת בשרת. אנו משתמשים ב-tonweb:
import { TonProofItemReplySuccess } from '@tonconnect/protocol';
import TonWeb from 'tonweb';
async function verifyTonProof(
proof: TonProofItemReplySuccess['proof'],
publicKey: string,
walletAddress: string
): Promise<boolean> {
const tonweb = new TonWeb();
const result = await tonweb.utils.verifyTonConnectProof(
proof,
publicKey,
walletAddress
);
return result;
}
app.post('/api/ton-auth', async (req, res) => {
const { walletInfo } = req.body;
if (walletInfo.connectItems?.tonProof?.type === 'ton_proof') {
const isValid = await verifyTonProof(
walletInfo.connectItems.tonProof.proof,
walletInfo.account.publicKey,
walletInfo.account.address
);
if (isValid) {
req.session.user = { address: walletInfo.account.address };
res.json({ success: true });
}
}
});
שימו לב: ה-proof חייב להיות טרי (פסק זמן של 5 דקות), אחרת התקפות replay אפשריות. אנו מוסיפים בדיקת חותמת זמן — פרט זה מוזנח לעיתים קרובות.
למה חשוב לבדוק את חותמת הזמן ב-proof?
ללא בדיקת זמן החתימה, תוקף יכול ליירט את ה-proof ולהשתמש בו מאוחר יותר. אנו קובעים חלון מותר של 5 דקות ודוחים פגי תוקף. נוהג זה מתואר במפרט TON Connect — אנו ממליצים ללמוד אותו.
Telegram Mini App: אינטגרציה ללא QR
ב-Telegram Mini App, הארנק נפתח בתוך הממשק. השתמשו ב-useTonConnectUI:
function TelegramMiniAppConnect() {
const [tonConnectUI] = useTonConnectUI();
const handleConnect = async () => {
if (window.Telegram?.WebApp) {
await tonConnectUI.openModal();
}
};
}זה מאיץ את חוויית המשתמש: אין צורך לסרוק QR, רק ללחוץ על כפתור. שילבנו את TON Connect בכמה Telegram Mini Apps — זמן החיבור הממוצע ירד ל-3 שניות. בפרויקט אחד עם 50K משתמשים, שיעור ההמרה להרשאת גישה עלה ב-25% לאחר המעבר לממשק פנימי.
מה כלול בעבודה?
אנו מספקים:
- תיעוד על ארכיטקטורת האינטגרציה (דיאגרמת אינטראקציה: dApp ↔ bridge ↔ ארנק).
- קוד מקור לרכיבי React עם תמיכה ב-Telegram Mini Apps.
- מודול אימות לשרת (Node.js, Docker).
- סקריפטי פריסה לקובץ ה-manifest ומיגרציות.
- גישה לשרת ה-bridge (אם נדרש מותאם אישית).
- ייעוץ אבטחה והנחיות QA.
- תמיכה לאחר השקה למשך 30 יום — תיקוני תקלות, תיקונים לגרסאות SDK חדשות.
אנו מבטיחים תאימות לכל הארנקים המרכזיים וללא רגרסיות בעדכון SDK של TON Connect. הניסיון שלנו מאושר על ידי הסמכת TON Foundation.
תהליך ולוח זמנים
| שלב | משך |
|---|---|
| אנליטיקה ועיצוב | יום אחד |
| הטמעת צד לקוח | 1–2 ימים |
| אימות צד שרת | יום אחד |
| אינטגרציית Telegram Mini App | יום אחד |
| בדיקות ופריסה | יום אחד |
סה"כ: 2–5 ימים. העלות מחושבת באופן אישי לפי מורכבות הפרויקט (מספר ארנקים, נוכחות Telegram Mini App, עומס). צרו קשר להערכת מחיר — נייעץ על ארכיטקטורה ולוח זמנים. קבלו ייעוץ על אינטגרציית TON Connect עוד היום.







