पढ़ने में 12 मिनट लगेंगे
अवलोकन
क्रिप्टोकिट्टीज़ के लॉन्च के बाद से ERC-721 मानक के अनुकूल डिजिटल संग्रहणीय वस्तुएं (NFT) बहुत लोकप्रिय हो गई हैं और हाल के महीनों में इनका व्यापक रूप से उपयोग होने लगा है। यह गाइड ओपनज़ेपेलिन मानक का उपयोग करके NFT (ERC-721) बनाने और उसे तैनात करने का तरीका बताएगी।
क्या आप वीडियो के माध्यम से सीखना पसंद करेंगे? राडेक के साथ जुड़ें और जानें कि 20 मिनट में ERC-721 (NFT) कैसे बनाएं और डिप्लॉय करें।
आप क्या करेंगे
- नॉन-फंजिबल टोकन (एनएफटी) और उनके उपयोग के बारे में जानें।
- आपके द्वारा बनाए जाने वाले ERC-721 टोकन के लिए मेटाडेटा बनाएं
- अपनी फाइलों को एक विकेन्द्रीकृत संग्रहण प्रणाली (IPFS) पर अपलोड करें।
- Remix.IDE का उपयोग करके एक ERC-721 टोकन बनाएं और तैनात करें।
आपको क्या चाहिए होगा
- एक क्विकनोड एंडपॉइंट (आप इसे यहां मुफ्त में बना सकते हैं)
- एक वेब3 वॉलेट (जैसे, मेटामास्क, कॉइनबेस वॉलेट, फैंटम, या वॉलेटकनेक्ट-संगत वॉलेट) जिसमें टेस्ट ईटीएच हो (आप मल्टी-चेन क्विकनोड फाउसेट से कुछ ईटीएच प्राप्त कर सकते हैं)।
- IPFS CLI स्थापित हो गया है
- एक आधुनिक वेब ब्राउज़र (जैसे, क्रोम)
नॉन-फंजिबल टोकन क्या है?
फंजीबल का अर्थ है समान या विनिमेय होना। उदाहरण के लिए, एथेरियम टोकन में, एक विशेष टोकन वर्ग के सभी टोकनों का मूल्य समान होता है। कार्डानो टोकनों के बारे में भी यही कहा जा सकता है। फंजीबल टोकन 1:1 अनुपात में विनिमेय होते हैं।
इस बात को ध्यान में रखते हुए, एनएफटी अद्वितीय होते हैं; प्रत्येक एक अलग होता है। हर टोकन की अपनी अनूठी विशेषताएं और मूल्य होते हैं। एनएफटी के रूप में संग्रहणीय कार्ड, कलाकृतियाँ, हवाई जहाज के टिकट आदि जैसी चीजें हो सकती हैं। ये सभी एक दूसरे से स्पष्ट रूप से भिन्न होते हैं और इन्हें आपस में बदला नहीं जा सकता। नॉन-फंजिबल टोकन (एनएफटी) को दुर्लभ संग्रहणीय वस्तुओं की तरह समझें; प्रत्येक की अपनी अनूठी विशेषताएं, विशिष्ट गुण और अक्सर उसका मेटाडेटा होता है।
ERC-721 क्या है?
ERC का पूरा नाम Ethereum Request for Comment है, और 721 प्रस्ताव का पहचान संख्या है। ERC, Ethereum इकोसिस्टम में एप्लिकेशन-स्तरीय मानक हैं। ये ERC-20 जैसे टोकन के लिए स्मार्ट कॉन्ट्रैक्ट मानक हो सकते हैं। ERC के लेखक की ज़िम्मेदारी होती है कि वे Ethereum समुदाय के साथ सहमति बनाएँ, और एक बार समुदाय द्वारा प्रस्ताव की समीक्षा और अनुमोदन हो जाने के बाद, यह एक मानक बन जाता है। आप हाल ही के ERC प्रस्ताव को यहाँ देख सकते हैं। ERC-721 को स्मार्ट कॉन्ट्रैक्ट के भीतर NFT को ट्रैक और ट्रांसफर करने की सुविधा का प्रस्ताव देने के लिए बनाया गया था।
ERC-721 एक खुला मानक है जो EVM (एथेरियम वर्चुअल मशीन) के अनुकूल ब्लॉकचेन पर नॉन-फंजिबल टोकन बनाने की विधि का वर्णन करता है; यह नॉन-फंजिबल टोकन के लिए एक मानक इंटरफ़ेस है; इसमें नियमों का एक समूह है जो NFT के साथ काम करना आसान बनाता है। NFT केवल ERC-721 प्रकार के ही नहीं होते; वे ERC-1155 टोकन भी हो सकते हैं।
निम्नलिखित कार्य और घटनाएँ ERC-721 मानक में परिभाषित हैं:
ईआरसी-721 फ़ंक्शन
balanceOf : इस फ़ंक्शन का उपयोग किसी विशिष्ट पते के स्वामित्व वाले NFT (नॉन-फंजिबल टोकन) की संख्या लौटाने के लिए किया जाता है।
ownerOf : यह फ़ंक्शन किसी विशिष्ट टोकन के स्वामी का पता लौटाता है। प्रत्येक ERC721 टोकन अद्वितीय होता है, जिसे एक ID द्वारा दर्शाया जाता है। यह फ़ंक्शन उपयोगकर्ताओं या अनुप्रयोगों को टोकन की अद्वितीय ID के आधार पर उसके स्वामी का पता लगाने की अनुमति देता है।
safeTransferFrom (बिना डेटा के): यह फ़ंक्शन किसी विशिष्ट टोकन के स्वामित्व को एक पते से दूसरे पते पर सुरक्षित रूप से स्थानांतरित करता है। यह फ़ंक्शन जाँचता है कि प्राप्तकर्ता एक स्मार्ट कॉन्ट्रैक्ट है या नहीं। यदि है, तो उसे स्थानांतरण स्वीकार करने के लिए एक विशिष्ट फ़ंक्शन (onERC721Received) को लागू करना होगा।
transferFrom : इस फ़ंक्शन का उपयोग टोकन के स्वामित्व को एक पते से दूसरे पते पर स्थानांतरित करने के लिए किया जाता है। इसका उपयोग आमतौर पर तब किया जाता है जब प्रेषक को टोकन स्थानांतरित करने की अनुमति मिल चुकी हो।
अनुमोदन : इस फ़ंक्शन का उपयोग किसी पते को विशिष्ट टोकन स्थानांतरित करने की अनुमति देने के लिए किया जाता है। यह प्रतिनिधि हस्तांतरण की सुविधा देता है, जहाँ एक मालिक किसी अन्य पक्ष को अपनी ओर से टोकन स्थानांतरित करने की अनुमति दे सकता है।
getApproved : इस फ़ंक्शन का उपयोग किसी विशिष्ट टोकन के लिए स्वीकृत पता प्राप्त करने के लिए किया जाता है। यदि टोकन के लिए कोई स्वीकृत पता नहीं है, तो यह फ़ंक्शन एक शून्य पता लौटाएगा।
setApprovalForAll : यह फ़ंक्शन एक या अधिक टोकन के स्वामी को किसी ऑपरेटर को उनके सभी टोकन प्रबंधित करने की अनुमति देने या रद्द करने की अनुमति देता है।
isApprovedForAll : इस फ़ंक्शन का उपयोग यह जांचने के लिए किया जाता है कि क्या किसी ऑपरेटर को मालिक के सभी टोकन को प्रबंधित करने की अनुमति है।
safeTransferFrom (डेटा सहित): यह फ़ंक्शन safeTransferFrom (डेटा रहित) के समान है, लेकिन इसमें एक अतिरिक्त डेटा पैरामीटर शामिल है। इस अतिरिक्त डेटा का उपयोग स्थानांतरण के दौरान अतिरिक्त जानकारी देने के लिए किया जा सकता है, यदि प्राप्तकर्ता एक स्मार्ट कॉन्ट्रैक्ट है। यह फ़ंक्शन यह भी जांचता है कि प्राप्तकर्ता एक स्मार्ट कॉन्ट्रैक्ट है या नहीं और क्या यह onERC721Received फ़ंक्शन को लागू करता है।
ईआरसी-721 घटनाएँ
स्थानांतरण : यह इवेंट तब उत्सर्जित होता है जब किसी टोकन का स्वामित्व एक पते से दूसरे पते पर स्थानांतरित होता है। इस इवेंट में प्रेषक (फ्रॉम), प्राप्तकर्ता (टू) और स्थानांतरित किए गए विशिष्ट टोकन (आईडी द्वारा) के बारे में विवरण शामिल होता है। यह इवेंट यूआई या अन्य अनुबंधों जैसे बाहरी श्रोताओं को स्थानांतरण पर प्रतिक्रिया करने की अनुमति देता है।
अनुमोदन : यह इवेंट तब ट्रिगर होता है जब किसी पते को किसी विशिष्ट टोकन को स्थानांतरित करने के लिए अनुमोदित किया जाता है। इसमें टोकन का वर्तमान स्वामी (मालिक), टोकन स्थानांतरित करने के लिए अनुमोदित पता (अनुमोदित), और स्थानांतरण के लिए अनुमोदित विशिष्ट टोकन (आईडी द्वारा) शामिल होते हैं। यह इवेंट एप्लिकेशन को टोकन के अनुमोदन को ट्रैक करने और तदनुसार प्रतिक्रिया करने में सक्षम बनाता है।
ApprovalForAll : यह इवेंट तब जारी होता है जब कोई मालिक अपने सभी टोकन को प्रबंधित करने के लिए किसी ऑपरेटर को दी गई अनुमति को स्वीकार या अस्वीकार करता है। इसमें मालिक का पता (owner), ऑपरेटर का पता (operator) और एक बूलियन मान शामिल होता है जो यह दर्शाता है कि ऑपरेटर को अनुमति दी गई है या नहीं (approved)। यह इवेंट एप्लिकेशन को यह ट्रैक करने में सक्षम बनाता है कि किन पतों को किसी विशेष मालिक के सभी टोकन को प्रबंधित करने का अधिकार दिया गया है।
नॉन-फंजिबल टोकन (एनएफटी) के उपयोग के उदाहरण
-
डिजिटल कला (या भौतिक कला): कलाकृतियाँ एनएफटी के सबसे लोकप्रिय उपयोगों में से एक हैं। डिजिटल कला की नीलामी एनएफटी का पहला अनुप्रयोग था और इसका प्रचलन लगातार बढ़ रहा है।
-
गेमिंग: गेम के अंदर खरीदारी और संग्रहणीय वस्तुएं उपलब्ध कराना।
-
रियल एस्टेट: संपत्तियों और स्मार्ट अनुबंधों को टोकनाइज़ करना और उनकी खरीद-बिक्री करना।
-
वित्त: ऋण, वायदा और अन्य देनदारियों जैसे वित्तीय साधन।
-
सॉफ्टवेयर शीर्षक: पायरेसी विरोधी और गोपनीयता सुनिश्चित करने के लिए सॉफ्टवेयर लाइसेंस।
-
कॉन्सर्ट टिकट/स्पोर्ट्स मैच टिकट: यह सुनिश्चित करने के लिए कि टिकटों की बिक्री में कोई धोखाधड़ी न हो और प्रशंसकों को पिछले अनुभवों को देखने के लिए एक ही स्थान मिल सके।
-
केवाईसी अनुपालन: किसी विशिष्ट उपयोगकर्ता के केवाईसी के लिए टोकन बनाना।
टेस्ट ईटीएच प्राप्त करें
अब जब हम जान चुके हैं कि ERC-721 टोकन क्या होते हैं और वे कैसे काम करते हैं, तो आइए देखें कि हम अपने खुद के टोकन कैसे बना और तैनात कर सकते हैं।
हम अपना कॉन्ट्रैक्ट एथेरियम सेपोलिया टेस्टनेट पर डिप्लॉय करेंगे। शुरू करने के लिए, आपको मेटामास्क ब्राउज़र एक्सटेंशन (या कोई अन्य संगत वेब3 वॉलेट; फैंटम, वॉलेटकनेक्ट-संगत) और कुछ टेस्ट ETH की आवश्यकता होगी, जिसे आप क्विकनोड मल्टी-चेन फाउसेट पर जाकर प्राप्त कर सकते हैं। बस अपना वॉलेट कनेक्ट करें या पता पेस्ट करें और जारी रखें पर क्लिक करें। आपको बोनस के लिए एक ट्वीट शेयर करने के लिए कहा जाएगा (हम इसकी सलाह देते हैं!); अन्यथा, बस "नहीं धन्यवाद, मुझे बस 0.05 ETH भेजें " पर क्लिक करें। ध्यान दें कि EVM फाउसेट का उपयोग करने के लिए एथेरियम मेननेट पर 0.001 ETH का मेननेट बैलेंस होना आवश्यक है।

IPFS में फ़ाइलें जोड़ना
अपना NFT कॉन्ट्रैक्ट लिखने से पहले, हमें NFT के लिए अपनी कलाकृति को होस्ट करना होगा और एक मेटाडेटा फ़ाइल बनानी होगी; इसके लिए हम IPFS का उपयोग करेंगे - एक पीयर-टू-पीयर फ़ाइल स्टोरेज और शेयरिंग डिस्ट्रीब्यूटेड सिस्टम। IPFS प्रोटोकॉल के साथ जुड़ने के कई तरीके हैं। आप या तो अपने सिस्टम पर IPFS को सेटअप और संचालित कर सकते हैं, या Quicknode को एक आसान समाधान के रूप में चुन सकते हैं। Quicknode अंतर्निहित इंफ्रास्ट्रक्चर को प्रबंधित करके IPFS तक आपकी पहुँच को सरल बनाता है। यह तरीका आपको अपनी सामग्री पर ध्यान केंद्रित करने की अनुमति देता है, जिससे आपको डेटा पिनिंग के लिए स्थानीय IPFS नोड को बनाए रखने की ज़िम्मेदारी से मुक्ति मिलती है। Quicknode के साथ, तकनीकी जटिलताएँ आपके लिए संभाली जाती हैं।
हम आईपीएफएस पर आपकी फाइलों को अपलोड करने के दोनों तरीकों को कवर करते हैं: मानक आईपीएफएस सीएलआई का उपयोग करके या सुव्यवस्थित क्विकनोड आईपीएफएस सेवा का उपयोग करके।
मानक विधि: IPFS CLI का उपयोग करना
अपने ऑपरेटिंग सिस्टम के आधार पर IPFS CLI को डाउनलोड और इंस्टॉल करने के लिए IPFS दस्तावेज़ों में दिए गए इंस्टॉलेशन गाइड का पालन करें।
इमेज और मेटाडेटा फ़ाइल को होस्ट करने के लिए निम्नलिखित चरण हैं।
चरण 1: IPFS रेपो बनाना
टर्मिनल/सीएमडी विंडो में निम्नलिखित टाइप करके आईपीएफएस रेपो को प्रारंभ करें।
ipfs init
चरण 2: IPFS डेमॉन को प्रारंभ करना
IPFS डेमॉन शुरू करें, एक अलग टर्मिनल/सीएमडी विंडो खोलें और निम्नलिखित टाइप करें।
आईपीएफएस डेमॉन
चरण 3: IPFS में एक छवि जोड़ना
पहले टर्मिनल विंडो पर जाएं और इमेज को IPFS में जोड़ें (यहां art.png फ़ाइल जोड़ें)।
ipfs add art.png

Qm से शुरू होने वाले हैश को कॉपी करें और उसमें “ https://ipfs.io/ipfs/ ” उपसर्ग जोड़ें; यह कुछ इस तरह दिखना चाहिए: https://ipfs.io/ipfs/QmQEVVLJUR1WLN15S49rzDJsSP7za9DxeqpUzWuG4aondg
चरण 4: IPFS में JSON फ़ाइल जोड़ना
nft.json नाम की एक JSON फ़ाइल बनाएं और उसे इमेज वाली ही डायरेक्टरी में सेव करें।
JSON फ़ाइल प्रारूप:
{
"name": "NFT Art",
"description": "This image shows the true nature of NFT.",
"image": "https://ipfs.io/ipfs/QmZzBdKF7sQX1Q49CQGmreuZHxt9sVB3hTc3TTXYcVZ7jC"
}
अब, JSON फ़ाइल जोड़ें।
ipfs add nft.json
Qm से शुरू होने वाले हैश को लें और उसके आगे “ https://ipfs.io/ipfs/ ” जोड़ें; यह कुछ इस तरह दिखना चाहिए: https://ipfs.io/ipfs/QmUFbUjAifv9GwJo7ufTB5sccnrNqELhDMafoEmZdPPng7
इस यूआरएल को सेव कर लें। हमें एनएफटी बनाने के लिए इसकी आवश्यकता होगी।
क्विकनोड आईपीएफएस समाधान: एक आसान विकल्प
Quicknode IPFS की कीमत संबंधी जानकारी के लिए, हमारे मूल्य निर्धारण प्लान यहां देखें।
यदि आप अधिक सरल तरीका खोज रहे हैं, तो Quicknode की IPFS सेवा आपके NFT एसेट्स को अपलोड करने के लिए एक आसान और कुशल समाधान प्रदान करती है। Quicknode के साथ, इंफ्रास्ट्रक्चर प्रबंधन की जटिलता समाप्त हो जाती है, जिससे आप स्थानीय IPFS नोड को बनाए रखने के बजाय अपनी सामग्री पर ध्यान केंद्रित कर सकते हैं।
IPFS के लिए Quicknode का उपयोग शुरू करने के लिए, इन चरणों का पालन करें:
चरण 1: क्विकनोड में लॉग इन करना
Quicknode में लॉग इन करें और बाईं ओर के साइडबार से IPFS विकल्प चुनें:

चरण 2: क्विकनोड का उपयोग करके IPFS में एक छवि जोड़ना
अपनी इमेज फ़ाइल को ड्रैग और ड्रॉप करके या फाइंडर/फ़ाइल एक्सप्लोरर विंडो से फ़ाइलें चुनकर जल्दी से अपलोड करें। इस गाइड में, हम नीचे दी गई इमेज का उपयोग कर रहे हैं।

अपलोड करने के बाद, फ़ाइल टैब में फ़ाइल नाम पर क्लिक करें और कॉपी IPFS URL बटन पर क्लिक करें। नीचे दिए गए स्क्रीनशॉट के समान।
https://qn-shared.quicknode-ipfs.com/ipfs/QmQEVVLJUR1WLN15S49rzDJsSP7za9DxeqpUzWuG4aondg

चरण 3: क्विकनोड का उपयोग करके आईपीएफएस में JSON फ़ाइल जोड़ना
एक JSON फ़ाइल बनाएँ जिसका नाम हो nft.jsonअपने IPFS URL को बदलें छवि फ़ील्ड भरें और उसे सेव करें। सेव करने के बाद, पिछले चरण की तरह ही अपनी JSON फ़ाइल को IPFS पर अपलोड करें।
{
"name": "NFT Art",
"description": "This image shows the true nature of NFT.",
"image": "https://qn-shared.quicknode-ipfs.com/ipfs/QmQEVVLJUR1WLN15S49rzDJsSP7za9DxeqpUzWuG4aondg"
}
अपलोड करने के बाद, फ़ाइल टैब में फ़ाइल नाम पर क्लिक करें और IPFS URL कॉपी करें। यह नीचे दिए गए URL जैसा दिखना चाहिए।
https://qn-shared.quicknode-ipfs.com/ipfs/QmeVHZzKGEDbEbG5MVz4hUucNf4qZTRfW18AgdJNTrv22m
इस यूआरएल को सेव कर लें। हमें एनएफटी बनाने के लिए इसकी आवश्यकता होगी।
अपना खुद का टोकन बनाना
सुविधा और सुरक्षा के लिए, हम अपने NFT को बनाने के लिए OpenZeppelin ERC-721 कॉन्ट्रैक्ट का उपयोग करेंगे। OpenZeppelin के साथ, हमें पूरा ERC-721 इंटरफ़ेस लिखने की आवश्यकता नहीं है। इसके बजाय, हम लाइब्रेरी कॉन्ट्रैक्ट को इम्पोर्ट कर सकते हैं और इसके फ़ंक्शन का उपयोग कर सकते हैं।
Ethereum Remix IDE पर जाएं और एक नई Solidity फ़ाइल बनाएं, उदाहरण के लिए - MyToken.sol
निम्नलिखित कोड को अपनी नई सॉलिडिटी स्क्रिप्ट में पेस्ट करें:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts@5.0.0/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts@5.0.0/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts@5.0.0/token/ERC721/extensions/ERC721Burnable.sol";
import "@openzeppelin/contracts@5.0.0/access/Ownable.sol";
contract MyToken is ERC721, ERC721URIStorage, ERC721Burnable, Ownable {
constructor(address initialOwner)
ERC721("MyToken", "MTK")
Ownable(initialOwner)
{}
function safeMint(address to, uint256 tokenId, string memory uri)
public
onlyOwner
{
_safeMint(to, tokenId);
_setTokenURI(tokenId, uri);
}
// The following functions are overrides required by Solidity.
function tokenURI(uint256 tokenId)
public
view
override(ERC721, ERC721URIStorage)
returns (string memory)
{
return super.tokenURI(tokenId);
}
function supportsInterface(bytes4 interfaceId)
public
view
override(ERC721, ERC721URIStorage)
returns (bool)
{
return super.supportsInterface(interfaceId);
}
}
ऊपर दिए गए कोड की व्याख्या:
पंक्ति 1: SPDX लाइसेंस प्रकार को MIT के रूप में निर्दिष्ट करना। यह दर्शाता है कि कोड MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है, जो एक अनुमेय ओपन-सोर्स लाइसेंस है जो कोड को बहुत कम प्रतिबंधों के साथ उपयोग करने, संशोधित करने और वितरित करने की अनुमति देता है।
पंक्ति 2: सॉलिडिटी संस्करण को ^0.8.20 के रूप में घोषित करना। यह इंगित करता है कि कोड सॉलिडिटी संस्करण 0.8.20 या संगत संस्करण का उपयोग करके लिखा गया है।
पंक्ति 4-7: ओपनज़ेपेलिन लाइब्रेरी से आवश्यक अनुबंधों का आयात करना।
-
ERC721.sol: यह कॉन्ट्रैक्ट OpenZeppelin लाइब्रेरी से आयात किया गया है और ERC721 मानक के मूल कार्यान्वयन को दर्शाता है। ERC721 गैर-फंजिबल टोकन (NFT) का मानक है।
-
ERC721URISTorage.sol: यह कॉन्ट्रैक्ट ERC721 का विस्तार है और NFT से जुड़े मेटाडेटा URI को स्टोर और मैनेज करने की कार्यक्षमता जोड़ता है। मेटाडेटा URI आमतौर पर NFT के बारे में अतिरिक्त जानकारी को इंगित करते हैं।
-
ERC721Burnable.sol: यह कॉन्ट्रैक्ट ERC721 का विस्तार करता है और NFT को बर्न (नष्ट) करने की क्षमता जोड़ता है। यह NFT को प्रचलन से स्थायी रूप से हटाने के लिए एक फ़ंक्शन प्रदान करता है, और इसे केवल मालिक ही उपयोग कर सकता है।
-
Ownable.sol: इस कॉन्ट्रैक्ट का उपयोग एक्सेस कंट्रोल के लिए किया जाता है। यह आपको एक ऐसे स्वामी को निर्दिष्ट करने की अनुमति देता है जिसे कॉन्ट्रैक्ट के भीतर विशेष विशेषाधिकार प्राप्त होते हैं। स्वामी कुछ ऐसे कार्य कर सकता है जो अन्य उपयोगकर्ता नहीं कर सकते।
पंक्ति 9: अनुबंध शुरू करना जिसका नाम है माईटोकन और यह उल्लेख करते हुए कि यह ERC721, ERC721URISTorage और Ownable अनुबंधों का विस्तार करता है। इसका अर्थ यह है कि माईटोकन यह अनुबंध इन अनुबंधों में परिभाषित कार्यक्षमता और गुणों को विरासत में प्राप्त करता है।
पंक्ति 10: कंस्ट्रक्टर फ़ंक्शन यहाँ से शुरू होता है। सॉलिडिटी में कंस्ट्रक्टर विशेष फ़ंक्शन होते हैं जो कॉन्ट्रैक्ट डिप्लॉयमेंट के दौरान केवल एक बार निष्पादित होते हैं। यह कंस्ट्रक्टर एक आर्गुमेंट लेता है। प्रारंभिक स्वामीजो कि एक एथेरियम एड्रेस है।
पंक्ति 11: यह पंक्ति "MyToken" और "MTK" आर्गुमेंट के साथ ERC721 अनुबंध के कंस्ट्रक्टर को कॉल करती है। यह NFT अनुबंध को "MyToken" नाम और "MTK" प्रतीक के साथ आरंभ करती है।
पंक्ति 12: यह पंक्ति ओनएबल अनुबंध के कंस्ट्रक्टर को कॉल करती है, जो माईटोकन अनुबंध के प्रारंभिक स्वामी को प्रारंभिक स्वामी के रूप में प्रदान किए गए पते पर सेट करती है।
पंक्ति 15: फ़ंक्शन की घोषणा सेफमिंट इसमें तीन तर्क होते हैं: to (NFT टोकन प्राप्तकर्ता का पता), tokenId (टोकन के लिए अद्वितीय पहचानकर्ता), और uri (टोकन से जुड़ी JSON फ़ाइल का URI)। इस फ़ंक्शन को केवल अनुबंध स्वामी (द्वारा निर्दिष्ट) द्वारा ही कॉल किया जा सकता है। केवल मालिक संशोधक)।
पंक्ति 19: कॉल करके एक नया टोकन बनाना _सेफमिंट यह फ़ंक्शन ERC721 अनुबंध से विरासत में मिला है। यह एक नया टोकन बनाता है और इसे निर्दिष्ट प्राप्तकर्ता के पते पर असाइन करता है।
पंक्ति 20: टोकन से जुड़े टोकन यूआरआई (मेटाडेटा यूआरआई) को सेट करना _सेटटोकनयूआरआई फ़ंक्शन विरासत में मिला है ईआरसी721यूआरआईस्टोरेज अनुबंध। यूआरआई प्रदान किए गए टोकनआईडी और यूआरआई के आधार पर सेट किया जाता है।
पंक्ति 25-32: सॉलिडिटी द्वारा आवश्यक ओवरराइड को लागू करना ERC721 और ईआरसी721यूआरआईस्टोरेज अनुबंध। टोकनयूआरआई यह एक फ़ंक्शन है जो दिए गए tokenId से जुड़े मेटाडेटा URI को पुनर्प्राप्त करता है। इसे सार्वजनिक और दृश्य के रूप में चिह्नित किया गया है, जिसका अर्थ है कि यह केवल पढ़ने योग्य फ़ंक्शन है और इसे कोई भी कॉल कर सकता है।
पंक्ति 34-41: supportsInterface फ़ंक्शन को लागू करना, जो कि आवश्यक है ERC721 और ईआरसी721यूआरआईस्टोरेज अनुबंध। यह फ़ंक्शन जांचता है कि क्या दिया गया इंटरफ़ेस आईडी अनुबंध द्वारा समर्थित है और तदनुसार एक बूलियन मान लौटाता है।
इन कार्यात्मकताओं और अनुबंधों को मिलाकर, कोड एक कस्टम ERC721 टोकन अनुबंध बनाता है जिसका नाम है माईटोकनयह अनुबंध अनुबंध स्वामी को नए टोकन सुरक्षित रूप से बनाने, उनके साथ मेटाडेटा यूआरआई को संबद्ध करने की अनुमति देता है, और ईआरसी721 मानक द्वारा परिभाषित आवश्यक इंटरफेस का समर्थन करता है।
अब, यदि आप चाहें तो स्मार्ट कॉन्ट्रैक्ट को अपनी जानकारी के साथ अनुकूलित करने के लिए एक मिनट का समय लें। आप निम्नलिखित पंक्ति को अपडेट करके टोकन नाम और प्रतीक को अपडेट कर सकते हैं - ERC721("MyToken", "MTK").
जब आप काम पूरा कर लें, तो स्मार्ट कॉन्ट्रैक्ट को कंपाइल करें और उसे डिप्लॉय करें। इंजेक्शन प्रदाता (कॉन्ट्रैक्ट को कंपाइल करने से पहले मेटामास्क पर सेपोलिया टेस्टनेट का चयन करना सुनिश्चित करें)। फिर, अपने वॉलेट का पता बॉक्स में पेस्ट करें जो इसके ठीक बगल में है। तैनात करना बटन को परिभाषित करने के लिए प्रारंभिक स्वामी कंस्ट्रक्टर फ़ंक्शन का पैरामीटर। अंत में, क्लिक करें। तैनात करना Remix.IDE पर।

यदि आपको परिनियोजन से पहले "यह अनुबंध अमूर्त हो सकता है" जैसा त्रुटि संदेश प्राप्त होता है, तो सुनिश्चित करें कि आप अनुबंध टैब के अंतर्गत उपयुक्त अनुबंध का चयन करें।
Metamask में लेनदेन की पुष्टि करें:

अब Remix में “Deployed Contracts” सेक्शन में जाएं और डिप्लॉयड कॉन्ट्रैक्ट को एक्सपैंड करें। आपको कई सारे फंक्शन/मेथड दिखाई देंगे। उनमें से किसी एक को एक्सपैंड करें। सेफमिंट फ़ंक्शन का उपयोग करें और निम्नलिखित विवरण जोड़ें:
- _to फ़ील्ड में अपना वॉलेट पता जोड़ें।
- _tokenId फ़ील्ड में कोई भी बड़ी संख्या दर्ज करें। हम '1' का उपयोग करने का सुझाव देते हैं क्योंकि यह मिंट किए जा रहे पहले टोकन को दर्शाता है।
- के लिए _uri इस फ़ील्ड में, उस JSON फ़ाइल का URI दर्ज करें जो पिछले चरणों में आपके द्वारा उपयोग की गई विधि से मेल खाती हो:
- यदि आपने मानक IPFS CLI विधि का उपयोग किया है: IPFS CLI का उपयोग करने के मानक तरीके वाले अनुभाग में IPFS पर अपनी फ़ाइल अपलोड करने के बाद प्राप्त URI का उपयोग करें। यह IPFS लिंक https://ipfs.io/ipfs/ से शुरू होगा, जिसके बाद आपकी फ़ाइल का हैश होगा।
- यदि आपने Quicknode की IPFS सेवा चुनी है: Quicknode IPFS समाधान: एक आसान विकल्प अनुभाग में अपनी फ़ाइल अपलोड करने के बाद Quicknode द्वारा प्रदान की गई URI का उपयोग करें। Quicknode आपकी फ़ाइल के लिए एक अद्वितीय URI जनरेट करता है, जिसे आपको यहां डालना चाहिए।

ट्रांजैक्ट पर क्लिक करें और मेटामास्क से ट्रांजैक्शन की पुष्टि करें। इसमें कुछ मिनट लग सकते हैं, लेकिन आप हमेशा ईथरस्कैन जैसे ब्लॉक एक्सप्लोरर के माध्यम से ट्रांजैक्शन के सफल होने की पुष्टि कर सकते हैं। अब आपका NFT सेपोलिया चेन पर मौजूद है।
आप अन्य विवरण भी देख सकते हैं जैसे नाम, प्रतीक, मालिक, या टोकनयूआरआई पहले बताए गए टोकन आईडी को दर्ज करके।

निष्कर्ष
अपना खुद का NFT बनाने पर आपको बहुत-बहुत बधाई! अपने कलाकार मित्रों को उनकी कलाकृतियों को एथेरियम ब्लॉकचेन पर प्रदर्शित करने में मदद करें, या स्वयं एक कलाकार बनें। अधिक उदाहरणों के लिए OpenZeppelin के विजार्ड को देखें।
एथेरियम पर और भी लेख और गाइड पाने के लिए हमारे न्यूज़लेटर को सब्सक्राइब करें। अगर आपके पास कोई सुझाव है, तो बेझिझक ट्विटर के ज़रिए हमसे संपर्क करें। आप हमारे डिस्कॉर्ड कम्युनिटी सर्वर पर भी हमसे चैट कर सकते हैं, जहाँ आपको कुछ बेहतरीन डेवलपर्स मिलेंगे :)
हमें आपकी प्रतिक्रिया बहुत पसंद है!
अगर आपके पास कोई सुझाव या नए विषयों के लिए कोई अनुरोध हो तो हमें जरूर बताएं । हमें आपसे सुनना अच्छा लगेगा।
