I. TRON (TRX) là gì?

TRON là một blockchain công khai dành riêng cho việc cung cấp cơ sở hạ tầng, cho phép các nhà phát triển tạo ra các hợp đồng thông minh và các ứng dụng phi tập trung, tự do xuất bản, sở hữu và lưu trữ dữ liệu hay các nội dung khác.

TRON triển khai Cơ chế đồng thuận Proof-of-Stake được ủy quyền (DPoS) để tránh vấn đề về thời gian thông lượng giao dịch thấp và phí giao dịch cao giữa các blockchain công khai Proof-of-Work (PoW) (ví dụ: Bitcoin)

TRON có 2 loại mã token là TRC10 và TRC20

II. Phân biệt TRC10 và TRC20

TRC10

Mã token TRC10 hoàn toàn được tạo bởi mạng TRON. Token này có sẵn rộng rãi trên mạng chính TRON. Token này không phụ thuộc vào máy ảo TRON (TVM). TRC10 tương thích với hầu hết các ví điện tử hiện nay.

TRC20

TRC20 là một tiêu chuẩn kỹ thuật được sử dụng cho các hợp đồng thông minh trên chuỗi khối TRON để triển khai token với máy ảo TRON (TVM). Nó hoàn toàn tương thích với ERC20 (chuẩn token trên Ethereum network). Interface của TRC20 giống với Interface của ERC20.

contract TRC20Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

III. Tạo token TRC20

Về cơ bản thì để tạo một token TRC20 cũng khá đơn giản. Mọi thứ đã được hỗ trợ. Bạn chỉ cần biết một ít kiến thức về ngôn ngữ solidity để có thể edit source.
Sau đây là 9 bước để tạo và deploy thành công một token TRC20 trên mạng testnet.

1. Cài đặt ví TronLink (extention) cho browser

  • Vào link https://www.tronlink.org/
  • Chọn browser extention (Chrome, Firefox) phù hợp với trình duyệt bạn đang sử dụng.
  • Sau khi cài đặt xong. Hãy tạo 1 ví điện tử cho riêng mình. Mình chọn mạng testnet là Nile.

129CYaCei89F_TYwCT46fhRdtaSgMFjvq

2. Xin TRX token

  • Để deploy được smartcontrct lên TRON network (hay bất kì blockchain network nào) thì cũng cần một lượng phí nhỏ. Vì đang sử dụng TRON network, nên phí cũng chính là TRX token.
  • Vào link https://nileex.io/join/getJoinPage để xin TRX token cho mạng Nile.
  • Copy địa chỉ ví vào và click Obtain. Sau khi submit thành công, bạn sẽ thấy ví mình có token TRX.

1xx0w8LZXoAklIgZtwx3DGm8ZzH0nkwMW

3. Download code template trên github

1-MbvKo9pu8Z-L0a3nL04HDChfrNmA9le

4. Edit thông tin token của bạn

  • Sau khi tải source code mẫu về. Bạn mở file Token.sol và thay đổi thông tin tương ứng với thông tin token mà bạn muốn deploy.
    • EDX5234 - DoLan: là tên token mà mình muốn deploy.
    • EDX5234: là kí hiệu cho token của mình
    • 1000000000: là tổng cung. Ở ví dụ này mình khai báo là 1tỷ, tức là mình sẽ phát hành ra 1tỷ token tên là EDX5234 - DoLan và có ký hiệu là EDX5234

1I1kjRej5vDq_LNppf1C8BCyQubtn9igz

5. Sử dụng development tool của TRON network để deploy

  • Nếu ở Ethereum thì bạn có thể sử dụng IDE online như Remix để deploy smartcontract. Thì với Tron, họ cũng hỗ trợ một development tool, để các bạn có thể upload source để deploy một cách dễ dàng.
  • Truy cập vào development tool ở mạng NileTestnet https://nile.tronscan.org

1EH39dxreS40XTh38VuldlX8-Nj4G01rI

  • Sau đó hãy connect ví TronLink

1UkrM4IpjC37yWPdzYlPz1dFG0AVqn31l

  • Vào Top menu > Blockchain > Contract Deployment

1p-VF6hyjxTj-Ecob8LXPdyCEdyszsHyS

6. Upload hết files lên

1lq4LvxpJf7ZAXCDWk2OdQYZcBGFTzJIK

7. Compile source code

  • Click Compile để biên dịch ra mã máy. Sau khi click compile sẽ hiện ra 1 popup chọn Solidity version. Smartcontract của bạn sử dụng phiên bản solidity bao nhiêu thì bạn chọn biên dịch với version tương ứng. Để biết smartcontract sử dụng phiên bản nào, bạn xem lại file Token.sol, trong ví dụ này mình đã sử dụng pragma solidity ^0.5.0, tức là mình đã định nghĩa smartcontract với version 0.5.0, nên mình sẽ chọn compile với version tầm 0.5

1ekPBYsRjrg-Gam9wVHjnw-4CQmVRBvdl

8. Deploy

  • Sau khi compile thành công, bạn click tiếp nút Deploy
  • Nó sẽ hiện ra popup, bạn chọn file định nghĩa token của bạn là file Token
  • Sau đó click Confirm để tiến hành deploy

1LnMrpqhU5ijJmbBHHbyIchCrZC6drzd6

  • Sau khi deploy thành công, chỗ console sẽ hiển thị 2 thông tin khá quan trọng:
    • Mã TX: từ mã này có thể xem thông tin transaction đã tạo token của bạn trên mạng TRON
    • Contract address: là địa chỉ smartcontract của bạn

1sg86ZNQ6T50bBxMptXudnubBmrBZ8n9z

9. Hiển thị token trên ví

  • Bạn copy contract address, vào TronLink, chọn phần add token (custom token), và dán địa chỉ contract vào

1CK6M3oxuoM6G9QqGq9i6zwxsXY4LvGWK

Vậy là hoàn tất quá trình tạo một token cho riêng mình.

IV. Transfer token

Sau khi tạo thành công một token TRC20 của riêng mình trên mạng lưới TRON network, mình sẽ thử gửi token cho người bạn của mình, để xem bạn mình có nhận được không nhé.

  • Mình demo có 2 wallet:
    • Main Wallet: là ví của mình có chứa token mình vừa tạo
    • Other Wallet: là ví của bạn mình, lúc này token EDX5234 có số dư là 0 (chưa có sở hữu token nào)

1ljpymK-g5wPv87BCduHInqs7foAfxj4k

  • Thực hiện 1 transfer token EDX5234 với số lượng là 1000 token đến ví của bạn mình

1d4aonr6Tka9BsfX-BUdOWSaeknNAauyT

  • Kiểm tra lượng token của 2 ví. Ví mình thì số lượng token đã giảm đi, còn ví của bạn mình thì đã tăng lên 1000 token

1C0acccY3zN6b_s4uLuSynczzNeVOQnmE

V. Kiểm tra thông tin giao dịch

  • Mỗi một giao dịch trên blockchain network đều sinh ra một TX - là mã hash cho 1 transaction. Từ mã này bạn có thể truy cứu thông tin giao dịch của mình như gửi từ ai, gửi cho ai, gửi bao nhiêu, mất bao nhiêu phí, có bao nhiêu confirms, v.v...

1jbKIx4dCu7nGuSaXYqCwG9QsvuydOCG5

1-Dpii2ucLJoIcdOSmtjO64jaDPk9Feum

1rZ5dkeMUfUBgMsZ74RV8F0qcaRHpWYTZ

VI. Tổng kết

Việc tạo một token cũng khá là đơn giản. Mình cũng đã có quay video demo, bạn có thể xem và thực hành luôn.
Chúc các bạn thành công.

VII. Tài liệu tham khảo