آموزش ایجاد توکن روی پلتفرم اتریوم؛ راهنمای جامع

ایجاد توکن ERC-20 در بلاک چین اتریوم سادهتر از آن چیزی است که فکر میکنید؛ پس اگر علاقمند به ساخت ارز دیجیتال شخصی خود هستید و میخواهید یکی از توسعهدهندهها باشید، جای درستی آمدهاید.
توکنهای اتریومی از محبوبترین و در دسترسترین گزینهها برای توسعهدهندگان در دنیای رمزارزها شناخته میشوند. این توکنها میتوانند نمایانگر هر چیزی، از سهام و کالا گرفته تا پروژههای غیرمتمرکز و دیفای باشند. اگر میخواهید توکن خود را بسازید، با این آموزش ایجاد توکن روی پلتفرم اتریوم شما به یک توسعهدهنده حرفهای تبدیل خواهید شد.
توکن چیست؟

توکن (Token) به دارایی دیجیتالی گفته میشود که بر بستر یک بلاکچین ساخته شده و میتواند اهداف مختلفی مانند پرداخت، سرمایهگذاری، رایگیری، یا دسترسی به خدماتی خاص داشتهباشد. توکنها بلاکچین اختصاصی و بومی ندارند و تحت بلاک چینهای موجود، مانند اتریوم، راهاندازی میشوند.
توکنها باتوجه به کاربردی که دارند، به انواع مختلفی دستهبندی میشوند که برخی از آنها عبارتند از:
- توکنهای حاکمیتی
- توکنهای پرداخت
- توکنهای بهادار
- توکنهای کاربردی
بهعلاوه، توکنها میتوانند نقشهای کلیدی در یک بلاکچین داشته باشند و در بازار ارزهای دیجیتال نیز قابل خرید و فروش هستند.
زبان سالیدیتی چیست؟
سالیدیتی (Solidity) یک زبان برنامهنویسی پیشرفته است که جهت طراحی قراردادهای هوشمند روی شبکه اتریوم و سایر بلاکچینهای سازگار با ماشین مجازی اتریوم (EVM) استفاده میشود. زبان سالیدیتی شیگرا و مشابه جاوا اسکریپت و پایتون است و به توسعهدهندگان اجازه طرح قراردادهای خوداجرایی را داده که بدون نیاز به واسطه عمل میکنند.
در صورتی که بخواهید یک توکن ERC-20 را در شبکه اتریوم بسازید، ابتدا باید یک قرارداد هوشمند مطابق با استانداردهای مربوطه بنویسید. این قرارداد مواردی از قبیل عملکرد توکن، نحوه انتقال، میزان عرضه، مدیریت مالکیت و دیگر ویژگیها را تعیین میکند و به کدنویسی نیاز دارد.
ERC-20 یا توکن های قابل تعویض چیست؟
ERC-20 کوچکشده عبارت “Ethereum Request for Comment 20” ، استانداردی برای ایجاد و مدیریت توکنهای قابلتعویض (Fungible Tokens) روی بلاکچین اتریوم است.
این استاندارد مجموعهای از قوانین و توابع را تعریف کرده که توکنها باید از آن پیروی کنند تا با کیف پولها، صرافیها و سایر قراردادهای هوشمند سازگار باشند.
درواقع، توکنهای ERC-20 داراییهای بلاکچینی مشابه ارزهای رمزنگاریشده مانند بیتکوین هستند، اما با استفاده از مکانیزم گس (Gas) جهت پرداخت کارمزد تراکنشها، روی بلاکچین اتریوم کار میکنند. استاندارد ERC-20 مبادله توکنها را ساده و عملیات انتقال آنها در شبکه را تسهیل میکند.
هزینههای ایجاد و پیادهسازی توکن ERC-20 (Gas Fee)

ساخت و پیادهسازی یک توکن ERC-20 روی شبکه اتریوم، شامل هزینههایی است که باید بهعنوان Gas Fee (کارمزد گس) پرداخت شود. این هزینهها بسته به پیچیدگی قرارداد، میزان شلوغی شبکه و قیمت گس در زمان اجرا متغیر هستند. برخی از هزینههای ایجاد توکن ERC-20 عبارتند از:
- نوشتن قرارداد هوشمند: اگر خودتان یک قرارداد هوشمند را بنویسید هزینهای برای شما ندارد، اما اگر بخواهید این کار توسط یک برنامهنویس انجام شود، بسته به پیچیدگی قرارداد ممکن است از ۵۰۰ تا ۵۰۰۰ دلار متغیر باشد.
- پیادهسازی (Deploy) قرارداد در شبکه اصلی اتریوم: هزینه گس یا همان کارمزد شبکه برای پیادهسازی کد قرارداد هوشمند در اتریوم، معمولا بین ۰.۰۵ واحد تا ۰.۲ واحد ارز ETH است.
- ایجاد نقدینگی در صرافیهای غیرمتمرکز (اختیاری): برای لیستکردن توکن در صرافیهای غیرمتمرکز، نیاز به تامین نقدینگی دارید که معمولا ۱۰۰۰ دلار یا بیشتر است. این هزینه حکم ارزش بازار توکن مربوطه هنگام راهاندازی در شبکه را دارد.
- تأیید و تعامل با قرارداد: هر تراکنش (مانند ارسال، تایید و تعامل با قرارداد) یک کارمزد گس داشته که بسته به شلوغی شبکه اتریوم، در هر ساعت متفاوت است.
مراحل ایجاد یک توکن ERC-20 در زبان برنامهنویسی سالیدیتی
در اولین قدم از آموزش ایجاد توکن روی شبکه اتریوم، به برنامهنویسی با زبان سالیدیتی نیاز دارید. در ادامه، مراحل ایجاد یک توکن ERC-20 در زبان برنامهنویسی سالیدیتی را بررسی کردهایم.
تنظیم تعداد توکن های عرضه اولیه کوین
در ابتدای نگارش قرارداد هوشمند، باید عرضه اولیه توکن خود را تعیین کنید. این مقدار مشخص میکند که چند توکن در ابتدا صادر شوند و آیا قرار است تعداد محدودی از آن تولید شود یا که عرضه آن نامحدود است.
برای مثال:
uint256 public totalSupply = 1000000 * (10 ** uint256(decimals));
با استفاده از این کد، میزان عرضه کل توکن را مشخص میکنید که در این مثال، ۱ میلیون واحد مشخص شده است. در قسمت “decimals” هم، تعداد رقم اعشار قابلمحاسبه در هر واحد از توکن را با نگارش یک عدد مشخص میکنید.
وارد کردن عرضه کلی توکن
در مرحله بعد جهت نمایش مقدار کل توکنهای موجود، تابع “totalSupply” در قرارداد تعریف شده و مقدار اولیه آن تعیین میشود.
مثال:
function totalSupply() public view returns (uint256) {
return totalSupply;}
مانده توکن مالک
در قدم بعدی برای تعیین موجودی هر حساب، باید یک مپینگ (mapping) بهمنظور نگهداری مانده حساب ایجاد کنیم.
مثال:
mapping(address => uint256) public balanceOf;
سپس هنگام ایجاد قرارداد، کل عرضه اولیه به مالک توکن داده میشود:
مثال:
balanceOf[msg.sender] = totalSupply;
انتقال توکن به یک حساب دیگر
برای ارسال توکن از یک آدرس به آدرسی دیگر، تابع “transfer” را پیادهسازی میکنیم.
function transfer(address _to, uint256 _value) public returns (bool success) {
require(balanceOf[msg.sender] >= _value, “Not enough tokens”);
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
return true;
}
بر اساس این کد، هنگام انتقال توکن ابتدا موجودی حساب فرستنده بررسی شده و در صورت در اختیارداشتن مقدار کافی، عملیات انتقال انجام میشود.
تایید انتقال برای برداشت توکنها
گاهی اوقات، کاربران نیاز دارند که شخص دیگری به نمایندگی از آنها توکن خرج کند یا انتقال دهد. برای این کار از تابع “approve” استفاده میکنیم.
mapping(address => mapping(address => uint256)) public allowance;
دستور “mapping” میگوید که یک آدرس خاص (مثلاً یک قرارداد دیفای) چقدر از توکنهای یک کاربر را میتواند خرج کند. سپس تابع “approve” جهت تنظیم این مقدار استفاده میشود:
function approve(address _spender, uint256 _value) public returns (bool success) {
allowance[msg.sender][_spender] = _value;
return true;
}
این تابع اجازه میدهد “spender” که کاربر خرجکننده توکن است، تنها بتواند مقدار مشخصی از توکن مربوطه را از طرف کاربر اصلی برداشت کند. این کد در صرافیهای غیرمتمرکز اهمیت بسیار زیادی دارد.
تعداد توکنهای تایید شده برای برداشت
پس از تأیید، حساب گیرنده یا مقصد باید بررسی کند که چه مقدار از توکنها قابل برداشت است. تابع “allowance” این مقدار را نمایش میدهد. این تابع به کاربران میگوید که یک آدرس کیف پول، چه مقدار از توکنهایش را میتواند مصرف کند.
function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
return allowance[_owner][_spender];
}
لایبرری سیفمت سالیدیتی

در زبان برنامهنویسی سالیدیتی، لایبرری یا کتابخانه “SafeMath” یکی از پرکاربردترین ابزارها جهت انجام عملیات ریاضی بهصورت امن است. این لایبرری بهخصوص برای جلوگیری از بروز خطاهای عددی مانند سرریز (Overflow) و کمریز (Underflow) در قراردادهای هوشمند بهکار میرود.
در نسخههای قدیمیتر سالیدیتی (قبل از نسخه ۰.۸.۰)، عملیات ریاضی بهطور خودکار بررسی نمیشد و میتوانست باعث بروز خطاهای امنیتی شود. مثلا، اگر یک متغیر uint256 مقدار بیشتری از حداکثر مجاز دریافت میکرد، دوباره به مقدار صفر برمیگشت و بهاصطلاح Overflow میشد. اما SafeMath از این مشکل جلوگیری میکند.
با این حال در نسخههای جدید زبان سالیدیتی، خود زبان بهصورت پیشفرض این تمهیدات را انجام میدهد. بنابراین دیگر نیازی به استفاده از سیفمت نیست. بهجای این کار، میتوان مستقیم از عملگرهای + و – بدون نگرانی از خطاهای عددی استفاده کرد.
پیادهسازی و اجرای قرارداد هوشمند اتریوم
در مرحله آخر از آموزش ایجاد توکن روی پلتفرم اتریوم، باید قرارداد هوشمند را در شبکه اتریوم پیادهسازی کنید. برای این کار، مراحل زیر را دنبال کنید:
- ابزارهای لازم مثل فریمورکهای هاردهت (Hardhat) یا ترافل (Truffle) را نصب کنید.
- قرارداد هوشمند خود را نوشته و در پوشه “contracts” یک فایل جدید بهنام “MyToken.sol” ایجاد و سپس کد قرارداد هوشمند را در آن جایگذاری کنید.
- تنظیمات Hardhat را اجرا کنید.
- یک فایل جدید در پوشه”scripts” با نام “deploy.js” بسازید و کد قرارداد را در آن بگذارید.
- حالا قرارداد را روی شبکه آزمایشی (Testnet) اتریوم اجرا کنید تا از کارکرد آن مطمئن شوید.
سپس در صورت اطمینان از عملکرد صحیح قرارداد هوشمند توکن، میتوانید آن را به شبکه اصلی اتریوم منتقل کنید. در ادامه، میتوانید از طریق کیف پول متامسک (Metamask)، Web3.js و یا Ethers.js با آن تعامل کنید.
ایجاد توکن بر بستر اتریوم؛ قدم به دنیای توسعه
اتریوم یکی از امنترین و پایدارترین بلاک چینهای جهان است و با آموزش ایجاد توکن روی پلتفرم اتریوم، شما میتوانید به یک دنیای پرپتانسیل قدم بگذارید. توکنی که بر بستر اتریوم میسازید، میتواند در پروژههای دیفای، بازیهای بلاکچینی یا حتی بهعنوان یک دارایی دیجیتال منحصربهفرد مورد استفاده قرار گیرد.
سوالات پرتکرار درباره ایجاد توکن روی پلتفرم اتریوم
- آیا برای ساخت توکن روی اتریوم به برنامهنویسی نیاز دارم؟
بله، برای ایجاد یک توکن ERC-20 باید با زبان سالیدیتی (Solidity) آشنا باشید. با این حال، میتوانید از ابزارهایی مانند “OpenZeppelin” جهت سادهسازی کدنویسی و امنیت بیشتر استفاده کنید.
- چقدر هزینه دارد تا یک توکن روی شبکه اصلی اتریوم ایجاد کنم؟
هزینه راهاندازی توکن بستگی به گس فی (Gas Fee) شبکه اتریوم دارد که معمولاً بین ۵۰ تا ۳۰۰ دلار متغیر است. شما میتوانید ابتدا روی شبکه تست “Sepolia”، قرارداد هوشمند توکن خود را آزمایش کنید.
- چگونه میتوانم توکن خود را در صرافیها لیست کنم؟
برای لیستشدن در صرافیهای غیرمتمرکز مانند یونی سواپ (Uniswap)، کافی است استخر نقدینگی توکن را ایجاد کنید. اما برای صرافیهای متمرکز مانند بایننس (Binance)، نیاز به مراحل ثبت و احراز هویت پروژه دارید.