The difference between Ether and Token:
Ether is the basic payment unit on the Ethereum blockchain.
Using the private key of a given public address, we can transfer ether from this address to any other Ethereum address, even if no account or contract with that address has been created.
The only exception to this is that if a contract does exist on the destination address, then it must implement a designated function to receive the funds, otherwise the transfer will revert.
We can read the ether balance of any public address; there is no need for a private key, nor for any coding infrastructure in case the address is that of a contract.
Using the basic payment unit (ether) along with contract-programming, we can implement other types of payment units.
These payment units are commonly known as Tokens.
As with ether, we’d like to be able to transfer tokens from one address to another.
But in contrast with ether, this functionality is not “embedded into the system”.
We need to deploy a contract which implements token-transferring infrastructure.
A good analogy for this:
- Ether-transferring is already supported at the hardware-level
- Token-transferring should be implemented at the software-level