Cách tạo Coin mạng ERC20 – Burn và mint Token

SangLV
SangLV
Follow me:

Từ lúc ra mắt, Blockchain Ethereum đã gây sức hút cho rất nhiều Developer, Project manager, chủ doanh nghiệp khởi tạo dự án riêng để chạy các Smart contract mang tính bất biến, tiếp cận dòng vốn trên toàn cầu. Vậy cách tạo coin mạng ERC20 cụ thể ra sao? Cần những kiến thức gì về smart contract..  cùng tham khảo bài viết bên dưới để biết nhé!

Trong bài viết này chúng ta sẽ tìm hiểu về:

  • Token ERC20 là gì
  • Các chức năng cơ bản của nó
  • Source code khởi tạo
  • Kiểm tra thông tin và xác minh Contract trên Etherscan
  • Mint & Burn Token

Token ERC20 là gì?

Token ERC20 là 1 tiêu chuẩn được xây dựng trên máy ảo EVM của Ethereum giúp người dùng dễ dàng triển khai các smart contract và tạo được những token có những chức năng mình mong muốn. Ngày xưa khi BTC phát triển theo hướng trở thành 1 loại tiền tệ thì Ethereum đã rẽ hướng sang phát triển nền tảng mạnh về smart contract, giúp nhiều token được khởi tạo và hoạt động trên mạng lưới. Đến nay đã có hàng ngàn token như vậy được tạo ra trên network Ethereum và đều được gọi là token ERC20.

Khi nhiều token được tạo ra như thế, mạng lưới Ethereum cũng hưởng lợi không nhỏ từ phí giao dịch, bất kể token nào sử dụng để gửi/nhận đều phải tốn phí là ETH.

Ethereum có nhiều tiêu chuẩn, tuy nhiên phổ biến nhất là ERC-20 và ERC-721. Các stablecoin phổ biến hiện nay như USDT, USDC, DAI đa phần cũng đều được tạo trên ERC20.

Các chức năng cơ bản của Token ERC20

Đã muốn tạo token thì bạn phải hiểu luật chơi của nó trước đã..

9 quy tắc bắt buộc

function name() public view returns (string)
function symbol() public view returns (string)
function decimals() public view returns (uint8)
function totalSupply() public view returns (uint256)
function balanceOf(address _owner) public view returns (uint256 balance)
function transfer(address _to, uint256 _value) public returns (bool success)
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
function approve(address _spender, uint256 _value) public returns (bool success)
function allowance(address _owner, address _spender) public view returns (uint256 remaining)

 

 

Token Name: Tên của token.

Symbol: Ký hiệu token.

Decimal (up to 18): Số thập phân nhỏ nhất sau dấu phẩy.

TotalSupply: Tổng lượng token được phát hành.

BalanceOf: Check số dư token trong địa chỉ ví.

Transfer: Chức năng này sẽ quản lý việc chuyển token vào địa chỉ ví user.

TransferFrom: Cho phép người nắm giữ token có thể chuyển tiền cho nhau.

Approve: Kiểm tra các giao dịch và so sánh với TotalSupply để đảm bảo không thiếu/ thừa token.

Allowance: Kiểm tra số dư token xem ví có đủ token để chuyển đi hay không.

 

Và 2 event quan trọng trong hợp đồng

event Transfer(address indexed _from, address indexed _to, uint256 _value) 
event Approval(address indexed _owner, address indexed _spender, uint256 _value)

 

Bản chất để 1 giao dịch xảy ra là các address đó phải có balances để chuyển cho nhau, vậy balances đó xuất hiện từ đâu? Sao các ví lại có số dư để chuyển cho nhau -> Token được tạo ra mới buộc phải có những thứ như: Name, Symbol & TotalSupply

Thì lúc này ví nào khởi tạo hợp đồng sẽ nhận được toàn bộ lượng token đó, và dùng nó để chuyển cho các ví khác.. từ đây hệ sinh thái mới hình thành, mọi người sẽ có token và trao đổi với nhau thông qua mạng lưới Ethereum.

Khi chuyển tiền như vậy sẽ có 2 sự kiện quan trọng là Approval và Transfer. Để tiến hành chuyển coin luôn phải có sự đồng ý của chủ sở hữu ví, đó là lý do tại sao bạn thường thấy giao dịch trên metamask chúng ta luôn phải approve trước khi transfer.

Lúc transfer thực sự xảy ra, mạng lưới chỉ cần cộng thêm Balances cho ví nhận (recipient) và trừ bớt balances trên ví chuyển (sender) là xong 1 event. Các giao dịch này đều được lưu trữ trên blockchain của Ethereum.

Hướng dẫn tạo đồng coin riêng trên mạng ERC20

Bước 1: bạn truy cập trang remix.ethereum.org

Bước 1 để tạo Token ERC20 vào trang Remix của Ethereum

Bước 2: Chọn vào “Create new file” để tạo tập tin và đặt tên theo định dạng abc.sol, trong ví dụ này mình sẽ đặt là TokenERC20.sol

Chọn tạo file để tạo đồng coin riêng trên ERC20

Đặt tên file ERC20 token

Bước 3: Copy mã nguồn vào file token đã tạo để tùy chỉnh smart contract

// SPDX-License-Identifier: MIT 

pragma solidity ^0.8.9; 

import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; 
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; 
import "@openzeppelin/contracts/access/Ownable.sol"; 

contract SangLuu is ERC20, ERC20Burnable, Ownable { 

     constructor() ERC20("SangLV", "SLV") Ownable (msg.sender) { 

         _mint(msg.sender, 100000000 * 10 ** decimals()); 

     } 

     function mint(address to, uint256 amount) public onlyOwner { 
         _mint(to, amount); 
     } 
}

 

 

Copy code ERC20 vào trang Remix

Hướng dẫn chi tiết cách tạo token ERC20

Bạn có thể thay đổi những thông tin bên dưới bao gồm: Name, Symbol và ToltalSupply để tạo ra token mà bạn mong muốn.

Cách tùy chỉnh thông tin token ERC20

Bước 4: Tiếp theo chọn Compiler để check xem contract có báo lỗi gì không

Chọn Compiler token ERC20

Auto compile và optimization 200

Bước 5: Kiểm tra xong nếu mọi thứ đều bình thường chỗ Compiler sẽ hiện tick xanh, sau đó bạn nhấn tiếp vào tab bên dưới để đi sang phần [Deploy Token]

Deploy token ERC20

Bước 6: Ở bước Deploy này bạn chú ý chọn đúng những thao tác sau

  1. Chọn vào tab Remix VM
  2. Chọn mục Injected Provider
  3. Kết nối với ví Metamask

Cách tạo coin riêng mạng ERC

Chọn Injected Provider Metamask

Kết nối metamask để Deploy Token

Bước 7: Nhấn Deploy để public Smart contract Token lên mạng ERC và đợi cho mạng lưới xác nhận.

Tạo contract coin trên mạng ERC20

Lưu ý: phải có số dư tối thiểu trên ví ít nhất 200 đô ETH để làm phí tạo token

Tạo token ERC20 trên ví metamask

Với lưu lượng mạng thông thường thì chỉ cần mất 50-70 đô là tạo thành công, nhưng khi mạng bận, nhiều người sử dụng, phí có thể dao động lên tới 150 đô cho 1 lần Deploy hợp đồng. Nên nếu thấy đắt quá, bạn có thể chọn thời điểm khác để Deploy hợp đồng. Còn chịu chơi luôn thì cứ Accept rồi tiếp tục thôi kk 😆

Bước 8: Sau đó bấm vào chỗ hoạt động trên ví Metamask để kiểm tra tiến độ Deploy của lệnh anh em vừa thực hiện.

Tạo đồng coin riêng trên mạng ERC20 burn token

Bước 9: Nhấn vào Contract đã tạo để kiểm tra thông tin token đã đúng chưa, chứ sai là hơi mệt.. bút sa gà chết!

Contract của token ERC20

Bạn sẽ thấy được thông tin đầy đủ token mình đã tạo trên Etherscan (Block explorer của mạng ETH)

Tạo đồng coin riêng của bạn trên mạng Ethreum

Tạo token SangLV trên network của Ethereum

 

Xác minh contract Token trên Etherscan

Bước tiếp theo để dự án được chất lượng, người dùng tin tưởng ae nên verify contract Token của mình trên trang https://etherscan.io/

Contract Token khi xác minh thành công nó sẽ hiện tích xanh như bên dưới

Contract Token ERC20 đã xác minh trên Etherscan

Cách xác minh cụ thể ae có thể theo dõi trong bài viết này:

 

Burn và mint Token ERC20

Để burn đi số token đã tạo ban đầu, anh em có thể chọn Write contract -> mục số 2 burn -> điền số lượng vào ô amount.

Sau đó chọn [Connect to web3] để kết nối với ví Metamask của anh em, rồi nhấn [Write] để thực hiện. Trong ví dụ bên dưới mình sẽ burn thử 50K token, bạn nhớ điền 18 số 0 phía sau nhé.

Hướng dẫn burn token erc20

Burn 50000 Token ERC trên Etherscan

 

Mint token cũng vậy, bạn chỉ cần chọn vào function mint ở mục số 6 để thao tác

Điền số lượng Token cần Mint để thực hiện

Chi tiết cách Mint token ERC20

Sau khi Mint thì mình chỉ còn 55 triệu Token, mặc dù đã tạo 100 triệu ban đầu.. suy ra các tính năng trên contract Token phải được define sẵn ngay từ đầu nếu muốn sử dụng về sau, chứ code trên hợp đồng sau khi public thì chúng ta không thể sửa xóa được nữa. (một số dự án họ cũng có thể chọn Renounce Ownership – bỏ quyền sở hữu hợp đồng để không thể tương tác với những tính năng trên).

Ae có thể vọc thoải mái 2 tính năng này.. mint hoặc burn để cảm nhận rõ nét cách hoạt động của nó, nhưng nhớ để ý tiền trên ví, vì phí trên mạng ERC cũng tương đối chát..

Kết luận

Anh em chỉ cần lấy contract của token nhập vào ví Metamask là thấy số dư token hiển thị ngay. Lúc này bạn có thể dùng toàn bộ số token trên để chuyển cho bất kỳ ai nhưng để cho ngon lành, anh em có thể add nó lên pool Uniswap để mọi người có thể mua bán được.

Còn có rất nhiều chức năng khác có thể triển khai trên token ERC20, và mình sẽ hướng dẫn thêm cho các bạn ở các bài viết kế tiếp.

 

Cách listing Token lên Coinmarketcap

Bitcoin Ordinals là gì? Cách đúc NFT trên Bitcoin

Kiến thức Crypto căn bản – 3 Tư duy Coin người mới cần khắc sâu

Sign up for an eToro account and access more than 70 popular cryptocurrencies and crypto funds to invest in.

Kéo xuống bên dưới 1 chút nữa bạn sẽ thấy phần bình luận. Hoặc tham gia ngay vào các cộng đồng của mình:

 
Telegram Channel

Thảo luận Blockchain, xu hướng mới 2024

Facebook Group

Check dự án Scam, phân tích Bitcoin & Altcoin

guest

0 Comments
Inline Feedbacks
View all comments