//  By the end this snippet of code should sum it all up
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract Coin is ERC20, Ownable{
}

https://www.canva.com/design/DAGX2bNokA4/GxsU4k_ZwuyNJrqcK4LaNw/edit


In Solana, anytime you want to create a token, you can just call an existing SPL Token Program (a pre-deployed smart contract), and then make tokens using a program that has already been deployed on the blockchain. Each wallet needs an Associated Token Account (ATA) to hold tokens for a specific mint.

But on Ethereum, you typically deploy a new smart contract for every token—though this is often done using factory patterns or templates like OpenZeppelin’s contracts.

  1. Ethereum tokens (like ERC-20, ERC-721, etc.) are implemented as smart contracts that adhere to specific standards defining functions like transfer, balanceOf, or approve.
  2. To create an ERC-20 token, you write or use a template contract (e.g., OpenZeppelin's ERC-20 implementation), customize it (name, symbol, supply, etc.), and deploy it to the Ethereum blockchain.

Native Tokens

Where are native token balances stored?

The diagram shows how data (like balances) is organized and stored in Ethereum's World State, which is like a universal ledger.

image.png

The diagram shows how data (like balances) is organized and stored in Ethereum's World State, which is like a universal ledger.

There are two main types of addresses in Ethereum:

  1. EOA (Externally Owned Account): This is a regular wallet (like your personal bank account).
  2. Contract Address: This belongs to a smart contract (like a vending machine holding tokens and performing automated actions).

Custom Tokens

Any token on the blockchain other than the native token

example: USDT, USDC: they have all been created using the ERC 20 token