## ethereum token standards ### tl; dr * EIP stands for Ethereum Improvement Proposals. * ERC stands for Ethereum request for comments (technical documents written by Ethereum developers for Ethereum community). * Each such document contains a set of rules required to implement tokens for the Ethereum ecosystem.
--- ### erc-20 * In the case of ERC20, a transaction sending ether to an address changes the state of an address. - a transaction transferring a token to an address only changes the state of the token contract, not the state of the recipient address. * one of the main reasons for the success of EIP-20 tokens is in the interplay between `approve` and `transferFrom`, which allows for tokens to not only be transferred between externally owned accounts (EOA). - but to be used in other contracts under application specific conditions by abstracting away `msg.sender` as the mechanism for token access control. * a limiting factor lies from the fact that the EIP-20 `approve` function is defined in terms of `msg.sender`. - this means that user’s initial action involving EIP-20 tokens must be performed by an EOA. - if the user needs to interact with a smart contract, then they need to make 2 transactions (`approve` and the smart contract internal call `transferFrom`), with gas costs.
--- ### in this dir * [ERC20](erc20.md) * [ERC777](erc777.md) * [ERC721](erc721.md)
--- ### resources