Cách tạo coin riêng mạng ERC20 – Burn và mint Token

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 đầu tư phát triển nhiều dự án cho riêng họ để khởi chạy các Smart contract mang tính bất biến. Vậy Token ERC20 được tạo ra như thế nào? Có khó không, làm sao để tạo được đồng coin ERC20 cho riêng bạn hãy 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ẽ được tìm hiểu về:

  • Token ERC20 là gì
  • Các chức năng cơ bản của nó
  • Mã nguồn khởi tạo
  • Kiểm tra thông tin Contract trên Etherscan

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") {

        _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

 

Kết luận

Sau khi tạo token xong số lượng 100 triệu token này sẽ được chuyển vào ví chủ dùng Deploy Smart contract. 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ạn bè rồi nhưng để cho ngon anh em có thể verify contract để minh mạch thông tin (không bắt buộc) hoặc add nó lên pool trên Uniswap để mọi người có thể mua bán được.

Còn 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 ở những bài viết sau.

 

Hướng dẫn tạo 1 đồng Coin cho riêng bạn – Token BEP20

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

Mạng ERC20 có tác dụng như thế nào trong Blockchain

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

Comments (No)
Leave a Reply