Link to this headingERC

Link to this headingEIP-155: Simple replay attack protection

To prevent replay attacks by adding a block_node_number to the elements

Source

Link to this headingERC-20 Token Standard

This standard provides basic functionality to transfer tokens, as well as allow tokens to be approved so they can be spent by another on-chain third party.

Link to this headingERC-1967 Proxy

Standard: EIP-1967

Purpose: Defines standardized storage slots for proxy contracts to avoid conflicts with implementation contract data.

Common Use: Widely used in upgradeable smart contracts via the Transparent Proxy and UUPS (Universal Upgradeable Proxy Standard) patterns.

Key Features:

  • Uses specific storage slots (e.g., 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC for implementation address) to avoid storage collisions.
  • Enables upgradeability by separating logic (implementation contract) from storage (proxy contract).
  • Facilitates delegatecall to the implementation contract.

Security Considerations:

  • Access control is crucial—usually combined with Ownable or AccessControl.
  • Improper upgrades can brick the proxy.

In Practice:

  • Used by OpenZeppelin’s TransparentUpgradeableProxy and UUPSUpgradeable.
  • Compatible with EIP-1822 (UUPS) for self-upgradeability.

Link to this headingERC-1822: Universal Upgradeable Proxy Standard (UUPS)

Creates a universal way to make a proxy contract that separates the code from the proxy.

Link to this headingERC2771

Link to this headingEIP-150