שירותי פיתוח NFT ונכסים דיגיטליים

פיתוח אוספי NFT ושווקים: ERC-721, ERC-1155, תמלוגים ERC-2981. יצירת מטא-דאטה, אחסון IPFS/Arweave, רשימת היתר Merkle, הטבלה עצלה, אינטגרציה עם OpenSea.
מציג 30 מתוך 61כל 1305 השירותים

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

שאלות נפוצות

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

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

מדוע פיתוח שוק NFT דורש גישה מקיפה?

אנחנו רואים שבמבט ראשון, חוזה NFT נראה פשוט: ERC-721, mint(), IPFS למטא-דאטה — וזהו. בפועל, ה'פשטות' הזו היא שמסתירה את רוב הבעיות — מבוטים שקונים את כל ה-mint בבלוק הראשון ועד תמלוגים שבורים בשוק המשני. אנחנו שומעים לא פעם: תעשו קולקציה כמו של אחרים בשבוע — וחודש אחר כך מתברר שהגז שולש בגלל לולאת for לא אופטימלית, או ש-OpenSea לא רואה את המטא-דאטה אחרי ה-reveal. אנחנו מכירים כל אחת מהמלכודות האלה ובונים תהליכים כדי להימנע מהן.

במשך יותר מ-5 שנים של עבודה עם בלוקצ'יין, יישמנו 40+ פרויקטי NFT, כולל מרקטפלייס עם מאפיינים דינמיים וגשרים בין-רשתיים. צברנו ספרייה של תבניות מוכחות — חלקן נפרט להלן.

איזה תקן לבחור: ERC-721 או ERC-1155?

ERC-721 — כל טוקן הוא ייחודי, בעלים אחד. מתאים לקולקציות שבהן לכל NFT יש מאפיינים אישיים ומיפוי owner → tokenId ישיר. ERC-1155 — תקן multi-token: חוזה אחד מחזיק גם טוקנים פונג'יבליים וגם לא-פונג'יבליים. הוא משתמש ב-balanceOf(address, tokenId) במקום ownerOf(tokenId). עסקה אחת יכולה להעביר מספר טוקנים שונים דרך safeBatchTransferFrom. זה חוסך בגז בפעולות אצווה — חשוב לפריטי משחק, כרטיסים, קולקציות מהדורה. ERC-1155 חסכוני פי 2–3 בגז מאשר ERC-721 להעברות אצווה.

קריטריון ERC-721 ERC-1155
ייחודיות טוקן כל טוקן הוא ייחודי ל-tokenId אחד יכולות להיות מספר עותקים
יתרת משתמש רק ownerOf (אחד) balanceOf(address, tokenId)
גז להעברה ~25,000 גז ~18,000 גז (אצווה אפילו נמוך יותר)
פעולות אצווה אין תמיכה מובנית safeBatchTransferFrom
תרחיש אידיאלי קולקציות אמנות, PFPs משחקים, כרטיסים, מהדורות

מקרה ספציפי: פרויקט משחק עם 50 סוגי פריטים, לכל אחד היצע של 10,000. ERC-721 — 500,000 טוקנים ייחודיים, תקורה עצומה על מיפויים. ERC-1155 — 50 tokenIds, balanceOf לשחקן. הגז להעברה נמוך פי 2–3, פריסת החוזה זולה יותר. למשימות כאלה, אנחנו משתמשים ב-OpenZeppelin ERC-1155 עם שינויים מותאמים אישית.

מטא-דאטה: on-chain לעומת IPFS לעומת ריכוזי

המסלול הסטנדרטי הוא tokenURI() שמחזיר קישור ל-JSON עם השדות name, description, image, attributes. שלוש אפשרויות אחסון:

  • שרת ריכוזי — הזול והגמיש ביותר. סיכון: השרת נופל, החברה נסגרת — ה-NFT מאבד את המטא-דאטה. לא מתאים לקולקציות שטוענות לערך ארוך טווח.
  • IPFS + Pinning — אחסון מבוסס תוכן, הקישור קשור ל-hash של התוכן. Pinata או NFT.Storage מספקות שירות pinning. חשוב: IPFS לא מבטיח זמינות בעצמו — צריך שירות pinning פעיל. אם הוא נסגר, הנתונים עלולים להיעלם אם אף אחד לא שומר עותק.
  • מטא-דאטה on-chain — SVG או JSON מקודדי base64 ישירות ב-tokenURI. אמינות מקסימלית, אבל יקר: לקולקציה של 10,000 טוקנים, עלויות הגז עשויות לעלות על $5,000. מתאים לפרויקטים של אמנות גנרטיבית שבה הוויזואליה נוצרת ממאפיינים on-chain (Nouns, Loot).

עבור רוב הקולקציות, אנחנו בוחרים ב-IPFS עם Pinata לתמונות + מאפיינים on-chain לתכונות — איזון טוב. אנחנו מאמתים קבצים מול JSON Schema לפני העלאה; טעות אופיינית היא מרכאות לא ממולטות, שגורמות למרקטפלייס להציג מסך ריק.

פורמט מטא-דאטה JSON אופייני
{ "name": "Token #1", "description": "A unique NFT", "image": "ipfs://QmHash/image.png", "attributes": [{"trait_type": "Background", "value": "Red"}] } 

NFT דינמי: מטא-דאטה שמשתנה

NFT דינמי מעדכן מטא-דאטה בתגובה לאירועים חיצוניים — תוצאות משחקים, רמות דמות, נתוני עולם אמיתי דרך Chainlink. ארכיטקטונית, זה שילוב: החוזה החכם מאחסן מצב → tokenURI() מייצר מטא-דאטה מהמצב על ה-chain. בעיית קאשינג: OpenSea ומרקטפלייס אחרים עושים קאש באגרסיביות. מנגנון הפסילה הסטנדרטי הוא אירוע MetadataUpdate(tokenId) מ-ERC-4906. OpenSea מאזין לאירוע הזה ומנקה את הקאש. בלעדיו, מטא-דאטה מעודכן עלול לא להופיע במשך שבועות.

Chainlink Automation (לשעבר Keepers) לעדכון אוטומטי של מצב בחוזה לפי לוח זמנים או תנאי — פתרון סטנדרטי לדינמיקה.

איך להגן על mint מפני בוטים?

Allowlist דרך Merkle tree — סטנדרטי. רשימת הכתובות עוברת hashing ל-Merkle root, שנשמר בחוזה. בזמן ה-mint, המשתמש מספק Merkle proof — החוזה מאמת בלי לאחסן את הרשימה המלאה. אנחנו משתמשים בספריית MerkleProof של OpenZeppelin.

מנגנון Reveal — בזמן ה-mint מונפק placeholder; התכונות האמיתיות נחשפות אחרי שהמכירה מסתיימת. אחרת, בוטים יכולים לסרוק עסקאות ממתינות ולחטוף תכונות נדירות דרך frontrunning. אבל reveal דורש מנגנון commitment — ה-random seed חייב להיות קבוע לפני ה-mint או להשתמש ב-Chainlink VRF.

Chainlink VRF לרנדומיזציה הוגנת של תכונות. בקשת VRF בזמן ה-mint → callback עם מספר אקראי ניתן לאימות → הקצאת תכונות. זה מוסיף ~2 עסקאות ושהות אבל מבטיח הוגנות. Chainlink VRF v2.5.

Rate limiting — ERC-4906. לא מגן מפני multi-wallets אבל מעלה את עלות ההתקפה. לפרויקטים פרימיום, אנחנו מוסיפים לעיתים קרובות proof-of-work ישירות בחוזה (דרך חתימות EIP-2612).

תמלוגים: מצב השוק האמיתי

ERC-2981 — תקן תמלוגים on-chain. החוזה מחזיר require(mintedPerWallet[msg.sender] < maxPerWallet) לכל מחיר מכירה דרך ERC-2981. מרקטפלייס שואלים את זה בכל מכירה. בעיה: הציות לתמלוגים הוא וולונטרי עבור מרקטפלייס. Blur השיקה עם אפס תמלוגים, מה שגרם לגל של פלטפורמות אחרות. המצב התייצב חלקית: OpenSea תומכת ב-ERC-2981, Blur הוסיפה אופציונליים. תשלומי תמלוגים יכולים להוות 5–10% מנפח המכירות המשני, אז חשוב לעשות את זה נכון.

ניסיונות לאכוף תמלוגים on-chain על ידי הגבלת העברות רק למרקטפלייס מאושרים (operator filtering) הוצעו על ידי OpenSea דרך OperatorFilterRegistry. זה שובר קומפוזביליות — אי אפשר להעביר NFT דרך חוזה מותאם אישית. רוב הפרויקטים הרציניים נטשו את הגישה הזו. לפרויקטים שבהם תמלוגים הם קריטיים, אנחנו בונים מרקטפלייס מותאם אישית בתוך האקוסיסטם בתוספת מבנה תמריצים למשתמשים לסחור שם.

Lazy minting ו-mint ללא גז

Mint ללא גז דרך חתימה: היוצר חותם על voucher (tokenId, tokenURI, price, signature), הקונה מספק את ה-voucher ב-(recipient, amount) — החוזה מאמת את החתימה דרך royaltyInfo(tokenId, salePrice) ומבצע mint. עובד על OpenSea דרך פרוטוקול Seaport שלהם. Seaport הוא חוזה אופטימלי עם שימוש מינימלי בגז. הבנת המכניקה שלו חשובה כשמשלבים לוגיקת מרקטפלייס מותאמת אישית.

מחסנית לפרויקטי NFT

  • חוזים: Solidity 0.8.x, OpenZeppelin ERC721Enumerable או ERC721A (Azuki) ל-mint אצווה חסכוני בגז, ERC1155 מ-OpenZeppelin
  • VRF ואוטומציה: Chainlink VRF v2.5, Chainlink Automation
  • אחסון: Pinata (IPFS pinning), NFT.Storage, Arweave לאחסון קבוע
  • מרקטפלייס: פרוטוקול OpenSea Seaport, אינטגרציה מותאמת אישית
  • פרונטאנד: wagmi v2 + viem, RainbowKit לחיבור ארנק, React + TypeScript

תהליך הפיתוח

  1. עיצוב מכניקת mint — allowlist, מכירה פומבית, עקומת מחיר (Dutch auction או קבוע), מגבלות לארנק
  2. חוזים — עם בדיקות fuzz של Foundry על מגבלות mint, אימות Merkle proof, חישובי תמלוגים
  3. פריסת IPFS — העלאת מטא-דאטה ותמונות לפני reveal, pinning בשני שירותים לפחות
  4. Reveal — אם משתמשים ב-Chainlink VRF, בדיקות על testnet הן חובה: מנוי VRF חייב להיות ממומן בטוקני LINK
  5. אינטגרציית מרקטפלייס — אימות הקולקציה ב-OpenSea, הגדרת תמלוגים, בדיקת אירועי MetadataUpdate
  6. פריסה וניטור — Tenderly לזיהוי reentrancy, Etherscan API לאימות חוזה, הגדרת התראות אירועים

תוצרים

  • קוד מקור של חוזים חכמים (Solidity, Rust ל-Solana) עם הערות
  • ערכת בדיקות (Foundry/Hardhat) עם כיסוי של ≥90%
  • תיעוד פריסה והוראות אינטגרציה
  • גישה לשירותי pinning (Pinata/Pinfluence)
  • סקריפטים ליצירת מטא-דאטה (Python/JS)
  • תמיכה במהלך אימות המרקטפלייס
  • 30 ימי תמיכה טכנית לאחר הפריסה

ציר זמן

סוג משימה ציר זמן משוער
ERC-721 בסיסי ללא reveal החל משבועיים
קולקציית NFT עם allowlist, reveal, VRF החל מ-5 שבועות
ERC-1155 עם מרקטפלייס ותמלוגים החל מ-6 שבועות
NFT דינמי עם נתונים חיצוניים החל מ-8 שבועות

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