HomeTutorialCách tự tay tạo token ERC-20 đầu tiên của chính bạn
blockchain

Cách tự tay tạo token ERC-20 đầu tiên của chính bạn

CyStack blog 4 phút để đọc
CyStack blog06/05/2025
Locker Avatar

Đức Hacker

My passion is hunting down the latest attack trends—ransomware, APTs, you name it—while passing on knowledge to help businesses forge ironclad defenses. I’ve left my mark on data encryption projects and intrusion detection tools now widely used across Vietnam. I’m the shadow that strikes before the enemy does.

Locker logo social

My passion is hunting down the latest attack trends—ransomware, APTs, you name it—while passing on knowledge to help businesses forge ironclad defenses. I’ve left my mark on data encryption projects and intrusion detection tools now widely used across Vietnam. I’m the shadow that strikes before the enemy does.

Reading Time: 4 minutes

Sau một thời gian tự mày mò, mình đã triển khai thành công token ERC 20 đầu tiên trên testnet. Hôm nay mình sẽ chia sẻ lại từng bước, để bạn cũng có thể rút ngắn thời gian tìm hiểu về quá trình này nhé!

ERC20 là gì? Token ERC20 là gì?

Hiểu một cách đơn giản:

  • ERC là viết tắt của Ethereum Request for Comment — một phương thức đề xuất tiêu chuẩn kỹ thuật trong mạng Ethereum.
  • ERC20 là tiêu chuẩn kỹ thuật dành riêng cho việc tạo ra các token trên blockchain Ethereum. 20 bạn hiểu đơn giản là mã số nhận diện đề xuất này.

Token ERC20 giống như “hững đồng coin được xây dựng trên Ethereum, sử dụng các quy tắc chung để giao dịch, quản lý và tích hợp với hệ sinh thái Ethereum lớn hơn.

Tiêu chuẩn ERC-20 quy định rõ những yêu cầu cơ bản mà một token cần tuân thủ:

  • Chuyển token giữa các ví
  • Truy cập thông tin về số dư, nguồn cung
  • Cho phép bên thứ ba sử dụng token thay mặt chủ sở hữu

Chính sự đồng nhất này đã giúp token ERC20 dễ dàng lưu trữ, giao dịch trên bất kỳ erc20 address wallet nào như Metamask, TrustWallet… và trở thành chuẩn mực không thể thiếu của thị trường crypto.

Các quy tắc chính của ERC20

Cộng đồng Ethereum đã đặt ra:

  • 6 quy tắc bắt buộc: totalSupply, balanceOf, transfer, transferFrom, approve, allowance
  • 3 quy tắc tùy chọn: tên token (name), ký hiệu (symbol), và số thập phân (decimals – tối đa 18 chữ số)

Nhờ những tiêu chuẩn này, erc coin có thể giao tiếp mượt mà với hợp đồng thông minh, sàn giao dịch, và các dịch vụ DeFi.

Có thể bạn quan tâm: Nhập môn về ICO Token (Initial Coin Offering)

ERC20 và mối quan hệ với Ethereum

Một điều khá thú vị mình từng thắc mắc: Ether (ETH) — đồng coin gốc của Ethereum — có phải là token ERC20 không?

Câu trả lời là KHÔNG.

ETH không tuân theo tiêu chuẩn ERC20. Tuy nhiên, để tiện cho việc giao dịch, cộng đồng đã tạo ra Wrapped Ether (WETH) — một phiên bản đóng gói của ETH tương thích với ERC20, tỷ lệ 1:1.

Bạn có thể mua bán token ERC20 bằng ETH, hoặc dùng WETH để tương tác với các giao thức yêu cầu ERC20.

Những vấn đề từng xảy ra với ERC20

Mặc dù rất thành công, ERC-20 cũng từng đối mặt với một số lỗ hổng:

  • Một số token đã vô tình bị phá hủy khi dùng sai cách trong smart contract, thiệt hại hàng triệu đô.
  • Lỗi batchOverflow năm 2018 từng khiến nhiều sàn giao dịch phải tạm ngừng giao dịch ERC20.
  • Vẫn chưa có giải pháp bảo mật hoàn toàn cho các lỗi này, dù đã có đề xuất chuẩn mới như ERC223.

Dù vậy, cho đến hiện tại, token ERC20 vẫn là nền tảng vững chắc cho phần lớn các dự án blockchain.

Đọc thêm: ZK Rollup là gì?

5 bước tự tạo Token ERC20 cho riêng mình

Bước 1: Chuẩn bị môi trường phát triển

Để tạo token ERC20, mình đã dùng các công cụ là:

  • Hardhat: Một framework cực mạnh để phát triển và deploy smart contract Ethereum.
  • Alchemy: Một nền tảng blockchain giúp mình kết nối với mạng Ethereum (ở đây mình dùng testnet Rinkeby).

Nếu bạn chưa cài, chỉ cần làm theo hướng dẫn trên trang Hardhat là xong.

Bước 2: Viết hợp đồng thông minh ERC20

Sau khi setup xong project Hardhat, mình bắt đầu tạo smart contract. Đây là bước cực kỳ thú vị vì bạn sẽ đặt tên cho erc coin của riêng mình!

Mình sẽ hướng dẫn dựa trên một ví dụ, bạn có thể thay đổi theo ý thích:

  1. Vào thư mục /contracts và tạo file mới, ví dụ: MyFirstToken.sol.
  2. Mở file và dán đoạn code sau:
solidity
CopyEdit
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyFirstToken is ERC20 {
    uint constant _initial_supply = 1000 * (10**18);
    constructor() ERC20("MyFirstToken", "MFT") {
        _mint(msg.sender, _initial_supply);
    }
}

Một vài điều mình rút ra là:

  • MyFirstToken là tên token và file .sol cũng nên trùng tên.
  • “MFT” là ký hiệu token (symbol), bạn có thể đặt bất kỳ tên nào ngắn gọn.
  • _initial_supply là tổng lượng token ban đầu, mình đặt là 1000 token.

Nhớ sửa lại tên nếu bạn muốn tạo token với thương hiệu riêng nhé!

Bước 3: Viết script để deploy token

Sau khi có smart contract, mình cần viết script để deploy nó:

  1. Vào thư mục /scripts và tạo file mới deploy.js.
  2. Thêm đoạn code sau:
javascript
CopyEdit
async function main() {
  const [deployer] = await ethers.getSigners();
  console.log("Deploying contracts with the account:", deployer.address);

  const Token = await ethers.getContractFactory("MyFirstToken");
  const token = await Token.deploy();

  console.log("Token deployed at address:", token.address);
}

main()
  .then(() => process.exit(0))
  .catch((error) => {
    console.error(error);
    process.exit(1);
});

Đừng quên thay "MyFirstToken" nếu bạn đặt tên khác cho smart contract.

Bước 4: Deploy token ERC20 lên blockchain

Bây giờ tới phần mình háo hức nhất: Deploy!

Chạy lệnh sau:

bash
CopyEdit
npx hardhat run scripts/deploy.js --network rinkeby

Nếu mọi thứ suôn sẻ, bạn sẽ nhận được địa chỉ contract – chính là địa chỉ ví ERC20 address wallet của token mới!

Bạn có thể vào trang Rinkeby Etherscan và dán địa chỉ contract để kiểm tra nhé.

Bước 5: Thêm token vào ví ERC20 ETH Wallet

Để nhìn thấy token của bạn trong ví:

  1. Mở Metamask.
  2. Chọn “Import Token” (Nhập token).
  3. Dán địa chỉ contract mà bạn vừa deploy.
  4. Bấm “Next” và xác nhận.

Vậy là token ERC20 của bạn đã xuất hiện trong ví erc20 eth wallet! Bây giờ bạn có thể gửi token này cho bạn bè, tạo sự kiện airdrop, hoặc xây dựng một mini game nhỏ dựa trên token này cũng được luôn nhé! Nhờ tiêu chuẩn ERC20, bất kỳ ai cũng có thể tự tạo một đồng  ERC cho riêng mình. Mình đã tự tạo thành công token đầu tiên chỉ sau một buổi tối, và cảm giác nó thực sự rất là yomost!

Nội dung liên quan:

0 Bình luận

Đăng nhập để thảo luận

CyStack blog

Mẹo, tin tức, hướng dẫn và các best practice độc quyền của CyStack

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.