#1 Having a standard like ERC20 makes it possible for all apps, tokens etc. to be on the same page and not creating confusion. Also allowing wallets to provide token balances for hundreds of different tokens and creating a means for exchanges to list more tokens by providing nothing more than the address of the token’s contract. A standard is needed.
#2totalSupply() - returns - (uint);
balanceOf(address tokenOwner) - returns - (uint balance);
allowance(address tokenOwner, address spender) - returns - (uint remaining);
transfer(address to, uint tokens) -returns- (bool success);
approve(address spender, uint tokens) - returns - (bool success);
transferFrom(address from, address to, uint tokens) - returns - (bool success);