About this project

OpenZeppelin Contracts is a widely-used library for secure smart contract development on Ethereum and other EVM-compatible blockchains. It offers community-vetted implementations of popular token standards such as ERC20, ERC721, ERC1155, and ERC6909, along with flexible role-based permissioning (access control) and reusable Solidity utilities for building custom contracts and complex decentralized systems. The library is versioned using semantic versioning, and the storage layout is considered incompatible across major versions, so upgrades between major versions (e.g., from 4.9.3 to 5.0.0) are unsafe without migration. NPM tags distinguish audited releases (`latest`), final but unaudited versions (`dev`), and release candidates (`next`). Installation is supported via npm for Hardhat projects and via git for Foundry, with clear warnings against using the `master` branch for production. Usage involves importing contracts directly into Solidity code, and the library is designed to deploy only the contracts and functions you actually use, minimizing gas costs. The project includes extensive documentation, guides on access control, tokens, and utilities, and a full API reference. Security is a primary focus, with a detailed security policy, a bug bounty program on Immunefi, and past audits available in the repository. The library is released under the MIT License and is maintained by OpenZeppelin.