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
- Why OpenZeppelin
- Access Control
- Token Extensions
- Upgradeable Contracts