# **Optional Items**

Token Name

Token Abbreviation

Token Precision

# **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 an amount of tokens from the smart contract to a specific address.

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

**transferFrom()** This function is used to allow the third party to transfer 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 token is successfully transferred, it has to trigger Transfer Event.

When approval() is successfully called, it has to trigger Approval Event.