Loading...
Loading...
Set up a Solidity smart contract project with OpenZeppelin Contracts. Use when users need to: (1) create a new Hardhat or Foundry project, (2) install OpenZeppelin Contracts dependencies for Solidity, (3) configure remappings for Foundry, or (4) understand Solidity import conventions for OpenZeppelin.
npx skill4agent add openzeppelin/openzeppelin-skills setup-solidity-contractshardhat.config.*foundry.tomlnpx hardhat init # Hardhat v2
npx hardhat --init # Hardhat v3npm install @openzeppelin/contractsnpm install @openzeppelin/contracts-upgradeablecurl -L https://foundry.paradigm.xyz | bash
foundryupforge init my-project
cd my-projectforge install OpenZeppelin/openzeppelin-contracts@v<VERSION>forge install OpenZeppelin/openzeppelin-contracts-upgradeable@v<VERSION>Look up the current version from https://github.com/OpenZeppelin/openzeppelin-contracts/releases. Pin to a release tag — without one,pulls the default branch, which may be unstable.forge install
remappings.txt@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/remappings.txt@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/
@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/Note The above remappings mean that both(including proxy contracts) and@openzeppelin/contracts/come from the@openzeppelin/contracts-upgradeable/submodule and its subdirectories, which includes its own transitive copy ofopenzeppelin-contracts-upgradeableof the same release version number. This format is needed for Etherscan verification to work. Particularly, any copies ofopenzeppelin-contractsthat are installed separately are NOT used.openzeppelin-contracts
@openzeppelin/contracts/token/ERC20/ERC20.sol@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol