TRC10 & TRC20 Tokens
Token Issuance
In the TRON network, every account is capable of issuing tokens at the expense of 1024 TRX. Users can lock their tokens in separately. To issue tokens, the issuer needs to specify a token name, total capitalization, the exchange rate to TRX, circulation duration, description, website, maximum bandwidth points consumption per account, total bandwidth points consumption, and token freeze.
For example:
assetissue password abc 1000000 1 1 2018-5-31 2018-6-30 abcdef a.com 1000 1000000 200000 180 300000 365
Tokens named abc are issued with the above command, with a capitalization totaling 1 million. The exchange rate of abc to TRX is 1:1. The duration of circulation is May 31-June 30, 2018. The token has a description of abcdef
. The provided website is a.com
domain.
A maximum of 1000 bandwidth points can be charged from the issuer’s account per day. A maximum of 1,000,000 bandwidth points can be charged from the issuer’s account for all token holders’ transactions each day. In total capitalization, 200,000 tokens are locked for 180 days and 300,000 tokens are locked for 365 days.
TRC10 & TRC20 Comparison
TRC-10 is a technical token standard supported by the TRON blockchain natively. TRC-20 is a technical standard used for smart contracts on the TRON blockchain for implementing tokens with the TRON Virtual Machine (TVM). It is fully compatible to ERC-20. Below is the interface:
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);
}
The following are some comparisons between TRC-10 and TRC-20, and how these differences might be significant for each of the communities. The highlights are that TRC-10 has about 1000 times lower transaction fee than TRC-20 and can be accessed via API.
Developers
Features | TRC-10 | TRC-20 | Others |
---|---|---|---|
Developers Learning Curve* | Easy | Medium | Medium to Hard |
Interface Customization? | No | Yes | Yes |
Accessible by Smart Contract? | Yes | Yes | Yes |
Accessible by API?** | Yes | No | No |
Lost Token Protection | No | No | ERC223 allows avoiding accidentally losing tokens inside contracts not designed to work with sent tokens. |
Handle Incoming Token Transactions | No | ERC223 & ERC777 allow contract developers to handle incoming token txns | |
GUI for ICO | Yes | No | No |
Deposit from Contract Address | No | No | |
Can contracts & addresses control/reject which tokens are sent? | No | No | By ERC777, this can be done by registering a tokensToSend hook. (Rejection is done by reverting in the hook function.) |
Can token holders authorize/revoke operators sending tokens on their behalf?*** | No | No | Available ERC777 |
* Each TRC-20 can have more interfaces
** For example, Create Token API
*** These operators are intended to be verified contracts, such as an exchange, a check processor, or an automatic charging system.
## Investors
Features | TRC-10 | TRC-20 | Others |
---|---|---|---|
Token Structure Learning Curve | Easy (Common structure) | Medium (Need to learn each token structure before sending to contract address) | Medium to Hard (Need to learn each token structure) |
## Exchanges/Wallets
Features | TRC-10 | TRC-20 | Others |
---|---|---|---|
Token Structure Learning Curve | Easy (Common structure) | Medium (Need to learn each token structure before sending to contract address) | Medium to Hard (Need to learn each token structure) |
## Platform
Features | TRC-10 | TRC-20 | Others |
---|---|---|---|
Easy to Track | Easy - Built In | Need 3rd-party platform to track | Hard |
In Development | TVM support are in developers | Compatible with ERC20 | Some popular standards are available and widely used |
Token Name Management | Name can be duplicated | Name can be duplicated | Name can be duplicated |
Decimal | Up to 6 | Not Required | Up to 18 |
Tron-Scan Observable | Yes | Yes | No |
## Bugs/Security
Features | TRC-10 | TRC-20 | Others |
---|---|---|---|
batchOverflow | Medium article on batchOverflow Bug in ERC20 Smart Contracts (CVE-2018-10299) |
## Cost
Features | TRC-10 | TRC-20 | Others |
---|---|---|---|
Transaction Fee | ~ 1000 times lower than TRC20 (using API, not by smart contract) | ~ 1000 times (dynamic) higher than TRC10 | |
Transfer | Can use API to transfer, but costs bandwidth points; transfer in smart contract costs both bandwidth points and energy. | Energy & Bandwidth Points | ERC223 transfer to contract consumes half as much gas as ERC20 approve and transferFrom at receiver contract. |
Deposit | Can use API to deposit, but costs bandwidth points; deposit in smart contract costs both bandwidth points and energy. | Energy & Bandwidth Points | ERC223 allows depositing tokens into contract with a single transaction. |
## Community
Features | TRC-10 | TRC-20 | Others |
---|---|---|---|
Resources | Relatively less, since it is new. | High amount of resources. | Fair amount of resources. |
## Links
Features | TRC-10 | TRC-20 | Others |
---|---|---|---|
Token Listing Website | Tronscan Token List | ||
ICO Website | Tronscan Token Creation | ||
Participation Website | Participate in TRON Token Issuance | ||
Developers Documentation | Developers API Documentation | ||
Smart Contract Templates |
Updated over 5 years ago