0PricingLogin
Web3 & DApp Development Fundamentals · Lesson

Token Extensions

Pausable, Burnable.

Extending Tokens

The base ERC-20 only handles transfers and approvals. OpenZeppelin provides extensions that add features by inheritance:

  • Pausable — freeze transfers in emergencies.
  • Burnable — let holders destroy tokens.
  • Capped — enforce a maximum supply.
  • Permit — gasless approvals via signatures.

Combining via Inheritance

You mix extensions by listing multiple base contracts:

import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; contract MyToken is ERC20, ERC20Burnable { constructor() ERC20("MyToken", "MTK") {} }
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";

contract MyToken is ERC20, ERC20Burnable {
    constructor() ERC20("MyToken", "MTK") {}
}

All lessons in this course

  1. Why OpenZeppelin
  2. Access Control
  3. Token Extensions
  4. Upgradeable Contracts
← Back to Web3 & DApp Development Fundamentals