
ساخت nft با کد نویسی
ساخت nft با کد نویسی، می توان گفت NFT یا Non-Fungible Tokens، یک نوع ویژه از رمزنگاری هستند که در بلاکچین اتریوم ساخته می شوند. آنها از استاندارد ERC-721 یا ERC-1155 استفاده می کنند که هر دو نوعی از Smart Contract ها هستند.
در اینجا یک مثال ساده از چگونگی ساخت NFT با استفاده از Solidity (زبان برنامه نویسی بلاکچین اتریوم) و استاندارد ERC-721 را می بینید:
“`solidity // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import “@openzeppelin/contracts/token/ERC721/ERC721.sol”; import “@openzeppelin/contracts/access/Ownable.sol”; contract MyNFT is ERC721, Ownable { uint256 public tokenCounter; constructor () public ERC721 (“MyNFT”, “MNFT”){ tokenCounter = 0; } function createCollectible(string memory tokenURI) public onlyOwner returns (uint256) { uint256 newItemId = tokenCounter; _safeMint(owner(), newItemId); _setTokenURI(newItemId, tokenURI); tokenCounter = tokenCounter + 1; return newItemId; } } “`این قطعه کد یک توکن NFT را ایجاد می کند. برای ساخت توکن، شما باید تابع `createCollectible` را فراخوانی کنید و یک URI را به عنوان ورودی ارائه دهید. این URI می تواند به یک JSON فایل اشاره کند که مشخصات توکن را شرح می دهد.
این کد فقط یک مثال است و احتمالاً برای یک پروژه واقعی، شما نیاز به تغییرات و اضافات دیگری دارید. قبل از اجرای این کد، شما باید کتابخانه OpenZeppelin را نصب کنید که حاوی استاندارد ERC-721 است.
برای این کار، شما می توانید از دستور npm یا yarn استفاده کنید:
“` npm install @openzeppelin/contracts “` یا “` yarn add @openzeppelin/contracts “`همچنین شما باید این کد را در محیطی که از Solidity پشتیبانی می کند (مانند Remix Ethereum یا Truffle) اجرا کنید.
اکنون که شما یک توکن NFT ایجاد کرده اید، شما باید آن را در بلاکچین اتریوم deploy کنید. برای این کار، شما می توانید از یک فریمورک مانند Truffle استفاده کنید. زیرا این کار با Truffle نسبتاً ساده است.
مراحل زیر را برای deploy کردن توکن NFT با Truffle دنبال کنید:
1. ابتدا، باید Truffle را نصب کنید. اگر هنوز Truffle را نصب نکرده اید، می توانید از دستور زیر در terminal استفاده کنید:
“` npm install -g truffle “`2. سپس، باید یک پروژه Truffle جدید ایجاد کنید. در محلی که می خواهید پروژه را ایجاد کنید، دستور زیر را وارد کنید:
“` truffle init “`3. حال، باید فایل قرارداد خود را در پوشه `contracts` قرار دهید.
4. بعد از آن، شما باید فایل migration برای قرارداد خود ایجاد کنید. مایگریشنها اسکریپتهایی هستند که به شما کمک میکنند تا قراردادهای خود را به بلاکچین deploy کنید. در پوشه `migrations`، یک فایل جدید با نامی مانند `2_deploy_contracts.js` ایجاد کنید و کد زیر را در آن قرار دهید:
“`javascript const MyNFT = artifacts.require(“MyNFT”); module.exports = function (deployer) { deployer.deploy(MyNFT); }; “`5. بعد از آن، شما باید یک فایل `truffle-config.js` داشته باشید که به Truffle می گوید که چگونه و کجا باید قراردادها را deploy کند. در این فایل، شما باید یک شبکه اتریوم تعریف کنید (مانند Ganache برای توسعه محلی یا Infura برای روی شبکه اصلی یا testnets).
6. نهایتا، شما می توانید توکن خود را deploy کنید. در terminal، دستور زیر را وارد کنید:
“` truffle migrate –network “`که در آن `<network-name>` باید با نام شبکه ای که در `truffle-config.js` تعریف کردید، جایگزین شود.
به یاد داشته باشید که این فقط یک مثال ساده است و ممکن است نیاز باشد که بسته به نیازهای خاص پروژه شما، تغییراتی در این کد ایجاد کنید. همچنین، deploy کردن قراردادهای بلاکچین هزینه ای به نام “gas” دارد که باید با اتر پرداخت شود، بنابراین شما باید از داشتن مقدار کافی اتر در حساب خود اطمینان حاصل کنید قبل از اینکه قرارداد خود را deploy کنید.
بعد از اینکه توکن NFT خود را ساخته و آن را به بلاکچین deploy کرده اید، ممکن است بخواهید با آن تعامل داشته باشید. به عنوان مثال، شما ممکن است بخواهید توکن های جدید را ایجاد کنید، یا مالکیت توکن های موجود را تغییر دهید. برای این کار، شما می توانید از truffle console یا یک وب سایت با استفاده از Web3.js یا ethers.js استفاده کنید.
به عنوان مثال، در truffle console، شما می توانید از دستورات زیر استفاده کنید تا یک توکن جدید ایجاد کنید:
“`javascript let instance = await MyNFT.deployed() let result = await instance.createCollectible(“https://my-website.com/token.json”) “`در این مثال، “https://my-website.com/token.json” باید با آدرس واقعی به فایل JSON شما جایگزین شود که اطلاعات توکن را توصیف می کند.
برای تعامل با توکن خود از طریق وب سایت، شما باید از یک کتابخانه مانند Web3.js یا ethers.js استفاده کنید. این کتابخانه ها به شما امکان می دهند تا توکن های خود را از طریق وب سایت خود مدیریت کنید. برای مثال، شما می توانید یک دکمه “ساخت توکن” اضافه کنید که با فشار دادن آن، یک توکن جدید ایجاد می کند.
همچنین، برای اطمینان از اینکه توکن های شما قابل مشاهده و خرید در بازارهای NFT مانند OpenSea هستند، باید مطمئن شوید که قرارداد شما متناسب با استانداردهای مربوطه است و توکن های شما به درستی فراخوانی می شوند و متادیتای مناسبی دارند. برای اطلاعات بیشتر در این زمینه، به توضیحات و مستندات وب سایت بازار NFT مراجعه کنید.
در صورت تمایل به آموزش برنامه نویسی بلاکچین، پکیج آموزش برنامه نویسی بلاکچین را ملاحظه نمایید.

مریم گوهرزاد
مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین و توسعهدهنده بلاکچین | متخصص Solidity | توسعهدهنده وب Full-Stackمن یک توسعهدهنده علاقهمند به فناوریهای بلاکچین و وب ۳ هستم و در زمینه Solidity، توسعه قراردادهای هوشمند و ساخت برنامههای غیرمتمرکز (DApps) فعالیت میکنم. تمرکز من بر طراحی و پیادهسازی راهکارهایی است که در کنار بهرهگیری از فناوریهای نوین، عملکرد مناسب، امنیت و تجربه کاربری مطلوبی ارائه دهند.در مسیر حرفهای خود، تجربه کار با قراردادهای هوشمند و معماری راهکارهای مبتنی بر بلاکچین را به دست آوردهام و همواره تلاش میکنم دانش خود را با آخرین تغییرات و پیشرفتهای این حوزه بهروز نگه دارم. برای من، بلاکچین تنها یک فناوری جدید نیست؛ بلکه بستری برای ایجاد راهکارهای متفاوت و کاربردی در دنیای واقعی است.در کنار تخصص در حوزه بلاکچین، به عنوان یک توسعهدهنده وب Full-Stack نیز در طراحی و توسعه وبسایتها و برنامههای تحت وب فعالیت میکنم. تجربه کار در بخشهای Front-End و Back-End به من این امکان را داده است که پروژهها را از مرحله ایده و طراحی تا توسعه و اجرا، با دیدی جامع دنبال کنم. در فرآیند توسعه، توجه ویژهای به کدنویسی تمیز، معماری مناسب، طراحی واکنشگرا، عملکرد مطلوب و تجربه کاربری روان دارم.همیشه به دنبال یادگیری، تجربه فناوریهای جدید و پیدا کردن راههای بهتر برای حل مسائل فنی هستم. از مواجهه با چالشهای پیچیده استقبال میکنم و معتقدم بهترین نتایج زمانی شکل میگیرند که دانش فنی، خلاقیت و همکاری مؤثر در کنار یکدیگر قرار بگیرند.اگر به دنبال همکاری در یک پروژه بلاکچینی، Web3 یا توسعه وب هستید، خوشحال میشوم با یکدیگر در ارتباط باشیم و ایدهها را به راهکارهای واقعی و قابل اجرا تبدیل کنیم.



