# TRC-20 contract standard

TRC-20 is a set of contract standards for the issuance of token assets, contracts written in compliance with this standard are considered to be a TRC-20 contract. When wallets and exchanges are docking the assets of the TRC-20 contract, from this set of standards, you can know which functions and events the contract defines, so as to facilitate the docking.

## Optional Items

Token Name

Token Abbreviation

Token Precision(Decimals)

## Required Items

**totalSupply()** This function returns the total supply of the token.

**balanceOf()** This function returns the token balance of the specific account.

**transfer()** This function is used to transfer a number of tokens to a specific address.

**approve()** This function is used to authorize the third party (like a DAPP smart contract) to transfer the token from the token owner’s account.

**transferFrom()** This function is used to allow the third party to transfer the token from an owner account to a receiver account. The owner account must be approved to be called by the third party.

**allowance()** This function is used to query the remaining amount of tokens the third party can transfer.

## Event Functions

When the token is successfully transferred, the contract will trigger a Transfer Event.

When `approval()` is successfully called, the contract will trigger an `Approval` Event.