پس اجازه بدید هر آنچه را که باید در مورد NFT بدانید رو به شما آموزش بدم. اگر به یادگیری زبان های برنامه نویسی علاقمند هستید، می توانید مقاله آموزش سالیدیتی را مطالعه کنید.
راهنمایی جذاب برای ساخت و ایجاد NFT، استاندارد ERC-721 برای ایجاد کلکسیون، آثارهنری و دارایی های منحصر به فرد در زنجیره.
NFTها (توکن غیرقابل تعویض) اعضای جدید و پرطرفدار در فضای قراردادهای هوشمند هستند. اگر سال 2022 سال DeFi بود، سال 2023 متعلق به NFT ها است. NFT استاندارد مشابه ERC20 است.
در واقع توکن غیر قابل تعویض، یک توکن منحصر به فرد است که هیچ توکن دیگری مانند آن ندارد. این ویژگی ان اف تی کاملا بر عکس ERC20 قابل تعویض است. Fungible به معنای “قابل تعویض” یا “قابل معاوضه” است.
به عنوان مثال، بدون توجه به اینکه از چه اسکناس دلاری استفاده می کنید، اسکناس دلار شما 1 دلار ارزش دارد. شاید شماره سریال روی اسکناس دلار متفاوت باشد، اما اسکناسها قابل تعویض هستند، زیرا بدون در نظر گرفتن هر چیز دیگری، ارزش آنها یک دلار خواهد بود.
تعداد ERC20 زیادی وجود دارد، از جمله MKR، AAVE و SNX اما NFT (یا ERC721) زیادی وجود ندارد. در واقع، تنها یکی از هر کدام وجود دارد، و این دلیل منحصر به فرد بودن آن است. می توانNFT را درست مانند قراردادهای هوشمند معمولی، برای انجام هر کاری، ساخته و برنامهریزی کرد.
اما از آنجایی که تاریخچه قرارگیری آنها همیشه تضمین شده است، اعتبار آنها از نظر رمزنگاری ثابت شده است. به همین دلیل می تواند مشکلات خاصی را حل کند – به ویژه برای کسانی که در دنیای هنر هستند – با رمزگشایی اصالت یک اثر هنری. همچنین به کمک این ویژگی میتواند مشکلات مربوط به رویالیتی یا حق امتیاز را حل کند، نمادهای وضعیت دیجیتالی ایجاد کند، به برنامههای بازی اجازه دهد تا تعامل پذیر داشته باشند و موارد دیگر.
آنها الان کجا هستند؟
اخیرا Axie Infinity نه قطعه زمین را به قیمت حدود 1.5 میلیون دلار فروخت.
افراد در مورد اونها خیلی هیجان زده می شوند. NFT یک سرمایه گذاری جدید هست که با ظهور بلاک چین و قراردادهای هوشمند امکان پذیر شده و افراد چیزهای شگفت انگیزی با آن می سازند.
همانطور که اشاره کردیم، NFT با استاندارد توکن ERC721 شروع می شوند، که بسیار شبیه ERC20s هستند – البته با چند اختلاف کوچک.
برای اینکه یک قرارداد NFT در نظر گرفته شود، تنها کاری که باید انجام دهد این است که از این استاندارد پیروی کند. ما فقط با وارد کردن استاندارد در قراردادهایمان کار را آسان می کنیم تا مجبور نباشیم هر بار که می خواهیم کار جدیدی انجام دهیم دوباره از اول شروع کنیم. کد زیر را ببینید تا متوجه شوید منظور من چیست.
NFT دارای یک متغیر tokenURI هستند که در ادامه، بطور مفصل در مورد آن صحبت خواهیم کرد، و آنها نقشه ای از یک tokenId برای صاحب آن دارند، که در آن هر توکن “مالک” خود را دارد. این ویژگی آنها را از ERC20 ها که فقط نگاشت یک آدرس را دارند، متمایز می کند.
ERC721 هنوز به افراد اجازه می دهد توکن ها را انتقال دهند، مجوزها را روی توکن ها قرار داده و خیلی کارهای دیگر. در واقع ERC721 یک استاندارد سبک است به طوری که ما می توانیم هر آنچه را که می خواهیم با آن بسازیم.
اینجاست که همه چیز شروع به متفاوت بودن می کند. فراداده. وقتی به OpenSea (یک بازار محبوب NFT) می روید، مجموعه ای از تصاویر را مشاهده می کنید. از آنجایی که NFT در بلاک چین قرار دارند، تمام داده های آنها باید روی زنجیره باشد درست است؟ خوب، نه کاملا.
ذخیره سازی داده ها در زنجیره می تواند بسیار گران باشد. توسعه دهندگان اتریوم و قراردادهای هوشمند متوجه شدند که آپلود حتی یک تصویر 1 مگابایتی می تواند حساب های بانکی آنها را خراب کند، بنابراین آنها می خواستند راهی برای نمایش آثار بدون نیاز به آپلود کل تصویر بیابند.
یکی از راه حل های این مشکل، tokenURI است که اکثرNFT ها آن را دارا هستند. tokenURI یک شناسه جهانی منحصر به فرد برای تمام جنبه های تصویر NFT است. این شناسه ارائه تصاویر NFT را آسان تر می کند. URI یک شناسه منبع یکسان است که می تواند یک تماس API HTTPS باشد، چیزی از طریق IPFS یا نوع دیگری از شناسه منحصر به فرد. این ابرداده به شکل زیر نشان داده می شود:
آنها فایل های JSON هستند که دارای:
این موارد معمولاً در یک API یا در IPFS ذخیره می شوند.
حالا، اگر مثل من هستید، به این فکر میکنید، “صبر کن… یعنی تصویر از یک مکان متمرکز میاد. هدف من از استقرار در بلاک چین رو مختل می کنه.”
به نظر من اگر میخواید NFT شما کار جالبی انجام بده،باید ویژگیهای درون زنجیره داشته باشه. مثلا: اگر میخواهید آمار نبردهایی مثل Pokemon یا برخی از آمارهای کمیاب را به آنها بدید، یا اینکه از نظر رمزنگاری کمیابی را تضمین کنند. خصوصیات آنها باید درون زنجیره ای باشد.
در حال حاضر، پلتفرمهای NFT راههای خوبی برای ارائه خصوصیات درون زنجیرهای ندارند، بنابراین شما فقط می توانید یک TokenURI با NFT ضرب شده ایجاد کنید.
یکی از رایج ترین رویکردها در tokenURI استفاده از IPFS برای ذخیره داده های شما است. دادههای خود را در آنجا آپلود میکنید و سپس از سرویس پین کردن استفاده میکنید تا مطمئن شوید دادهها برای همیشه در آنجا باقی میمانند. تعامل بیشتر بین پلتفرمهای قرارداد هوشمند و فضای ذخیرهسازیمان من رو هیجانزده می کنه. برای کسب اطلاعات بیشتر در مورد توکن های مختلف می توانید مقاله آموزش ساخت توکن را بررسی کنید.
صادقانه بگویم، من در ابتدا فکر می کردم NFT موضوعی احمقانه هست. و بعد از اون، از اون آدمهایی هستم که فکر میکردم آثارهنری احمقانه هستند… اما باید به خاطر داشته باشم که عاشق موسیقی، فیلم و بازیهایی با جلوههای بصری خوب هستم. NFT مشکل حق امتیاز و اعتبار دنیای هنر را حل می کنند.
اکنون یک سرویس حسابرسی غیرمتمرکز داریم. اگر میخواهید از هنر شخصی استفاده کنید، میتوانید همه چیز را در مورد آن اثر درون زنجیره ببینید.
خالق اصلی گربه Nyan نسخه NFT آن را به قیمت 300 اتر فروخت. اصالت ارزش دارد. اگر چیزی شگفت انگیز خلق کنید، نادر بودن آن ارزش دارد.
به همین دلیل است که فکر میکنم داشتن NFTهای Chainlink VRF بسیار شگفتانگیز است، چراکه با کمک آنها میتوانید کلکسیونهایی بسازید که آنقدر کمیاب هستند که این شانس وجود دارد که فقط شما آن را داشته باشید. وقتی کسی یک بازی از نوع پوکمون را روی این پلتفرمها میسازد، اثری شگفا انگیز خلق می کند.
تعداد زیادی پلتفرم NFT وجود دارد که ارزش آنها فوق العاده بالا هست، و ما میتوانیم کارهای بسیار جالبی با اونها انجام دهیم.
بیایید به nft-mix من که روی پلتفرم Brownie درست کردم نگاهی بندازیم. اگر میخواهید یک نسخه نمایشی اند تو اند نشان دهد که چگونه میتوانید در IPFS آپلود کنید، وبلاگ Chainlink و سیاهچال کوچک و اژدهای قسمت بالا را بررسی کنید. توضیحات را چک کنید تا کد و وبلاگ مربوط به آن را ببینید.
اجازه بدید به کد یک NFT ساده نگاه کنیم. تمام کدهای مربوط به این مورد را می توان در nft-mix repo در GitHub و کد Dungeons and Dragons را نیز در GitHub یافت.
این ساده ترین راه برای ایجاد قرارداد NFT است. این ترکیب برای Truffle، Hardhat و Brownie است و در Remix کار نخواهد کرد. من عاشق کار با قراردادهای OpenZeplin هستم چون خیلی خوب هستن و همه ابزارهایی که معمولاً برای شروع به آن نیاز داریم را دارند. پس حتما این موارد را نصب کنید:
npm install @openzeppelin/contracts
یک توکن با نماد DOG ایجاد می کنیم و نام اون رو Dogie میذاریم. بعد، میتوانیم با استفاده از تابع createCollectible، که هر بار که این کار را انجام میدهیم، یک tokenId جدید برای ما ذخیره میکنه، به تعداد دلخواه DOG ضرب کنیم. تنها کاری که باید انجام دهیم این است که یک tokenURI انتقال دهیم، فقط URL/URI است که به چیزی در فرمت JSON متاداده اشاره می کند:
{
"name": "Name",
"description": "Description",
"image": "URI",
"attributes": []
}
الان داریم حرف میزنیم! این یکی از Chainlink VRF برای ارائه آمار تصادفی NFT استفاده می کند. در این مورد، ما از عمل تصادفی برای دادن نژاد تصادفی به سگ خود استفاده می کنیم!
این بار وقتی createCollectible را فراخوانی می کنیم، در واقع درخواستی را به یک اوراکل Chainlink ارسال می کنیم تا یک عدد تصادفی تایید شده رمزنگاری شده را بازگرداند. به این ترتیب، ما هیچ گونه دستکاری که می تواند عادلانه بودن بازی ما را از بین ببرد، نداریم.
درخواست غیرهمزمان است و باید منتظر بمانیم تا Chainlink اوراکل تراکنش دوم را با شماره تصادفی انجام دهد.
هنگامی که اوراکل Chainlink انجام شد، تابع fullRandomness را با شماره تصادفی خود فراخوانی میکند و این همان چیزی است که NFT را تحریف میکند. نگاشتها برای اطمینان از اینکه هر کسی که در ابتدا تابع createCollectible را میزند، مالک NFT میشود استفاده میشود.
به این صورت هست که می توانیم ساخت NFT های پویا با ویژگی های فوق العاده قدرتمند و کمیاب واقعی را شروع کنیم.
برای آشنایی با NFT پیشرفته، این راهنما را بررسی کنید.
توضیحات این قسمت کامل است:
و این بخش پیشرفته آن است:
نتیجه
NFT ها عالی هستند. کاربردهای جذاب، سرگرم کننده و فوق العاده NFT همه رو شگفت زده می کند. برای بررسی موارد بیشتر در این زمینه وب سایت وایت وال را بررسی کنید